<?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 pogodowe - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/sterowanie-pogodowe/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/sterowanie-pogodowe/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 25 Aug 2026 20:18:49 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa sterowanie pogodowe - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/sterowanie-pogodowe/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Zawór mieszający w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 10:25:37 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Zawór mieszający]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacja co]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[zawór dwudrogowy]]></category>
		<category><![CDATA[zawór mieszający]]></category>
		<category><![CDATA[zawór trójdrogowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3159</guid>

					<description><![CDATA[<p>Odpowiednie sterowanie temperaturą w instalacji podłogowej to fundament komfortu i oszczędności energii. Właśnie dlatego zawór mieszający w ogrzewaniu podłogowym odgrywa tak kluczową rolę w nowoczesnych systemach grzewczych. W artykule szczegółowo wyjaśniamy, dlaczego mieszanie temperatur jest niezbędne, jak działają zawory 2- i 3-drogowe, czym różni się sterowanie termostatyczne od elektronicznego oraz jak prawidłowo dobrać zawór do mocy i hydrauliki instalacji. To praktyczny przewodnik zarówno dla inwestorów, jak i instalatorów.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">Zawór mieszający w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
/* Twardy reset typografii oraz CAŁKOWITA BLOKADA ANIMACJI */
#rk-wstep-kompendium,
#rk-wstep-kompendium * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
    transition: none !important;
    animation: none !important;
}

:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #0284c7;
    --rk-hero-blue-light: #e0f2fe;
    --rk-hero-blue-dark: #0369a1;
    --rk-hero-gold: #f59e0b;
    --rk-hero-text: #334155;
    --rk-hero-gray: #64748b;
    --rk-hero-bg: #ffffff;
    --rk-hero-border: #bae6fd;
}

.rk-hero-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-hero-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-hero-blue);
    box-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.2);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Górna część - Szybka Odpowiedź (Direct Answer) */
.rk-hero-top {
    background: linear-gradient(135deg, var(--rk-hero-dark) 0%, #0c4a6e 100%);
    padding: 40px;
    color: #ffffff;
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.rk-hero-icon-box {
    width: 72px;
    height: 72px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-hero-title-box {
    flex-grow: 1;
}

.rk-hero-title-box h2 {
    font-size: 28px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    margin: 0 0 15px 0 !important;
    line-height: 1.2 !important;
}

.rk-hero-direct-answer {
    background: rgba(255, 255, 255, 0.1);
    border-left: 4px solid var(--rk-hero-gold);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #e0f2fe !important;
    margin: 0 !important;
}

.rk-hero-direct-answer strong {
    color: #ffffff !important;
    font-weight: 800 !important;
}

/* Dolna część - Interaktywny przewodnik (Desktop) */
.rk-hero-bottom {
    display: flex;
    background: #ffffff;
}

.rk-hero-sidebar {
    width: 340px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-hero-border);
    display: flex;
    flex-direction: column;
}

.rk-hero-sidebar-title {
    padding: 20px 25px;
    font-size: 13px !important;
    text-transform: uppercase;
    font-weight: 900 !important;
    color: var(--rk-hero-blue-dark) !important;
    letter-spacing: 1px;
    background: var(--rk-hero-blue-light);
    margin: 0 !important;
    border-bottom: 1px solid var(--rk-hero-border);
}

.rk-hero-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-hero-tab-btn:hover { background: #e2e8f0; }

.rk-hero-tab-btn.active {
    background: #ffffff;
    border-left: 4px solid var(--rk-hero-blue);
    margin-left: -1px; /* Overlap border */
}

.rk-hero-tab-icon {
    width: 24px;
    height: 24px;
    color: var(--rk-hero-gray);
}

.rk-hero-tab-btn.active .rk-hero-tab-icon { color: var(--rk-hero-blue); }

.rk-hero-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-hero-dark) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

.rk-hero-content-area {
    flex: 1;
    padding: 35px 40px;
}

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

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

.rk-hero-panel h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-hero-dark) !important;
    margin: 0 0 15px 0 !important;
}

.rk-hero-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-hero-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-hero-panel a {
    color: var(--rk-hero-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

.rk-feature-list {
    margin: 20px 0 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.rk-feature-list li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px !important;
    font-size: 15px !important;
    color: var(--rk-hero-text) !important;
    font-weight: 600 !important;
}

.rk-feature-list li::before {
    content: '→';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--rk-hero-gold);
    font-weight: 900;
}

/* Moduł Mobile (Akordeon bez animacji) */
.rk-hero-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-hero-top { padding: 25px 20px; flex-direction: column; gap: 20px; }
    .rk-hero-title-box h2 { font-size: 24px !important; }
    .rk-hero-direct-answer { padding: 15px; font-size: 15px !important; }
    
    .rk-hero-bottom { display: none; }
    
    .rk-hero-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-hero-btn {
        width: 100%;
        text-align: left;
        background: #f8fafc;
        border: none;
        border-bottom: 1px solid #e2e8f0;
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-hero-btn.active {
        background: #ffffff;
        border-left: 4px solid var(--rk-hero-blue);
    }
    
    .rk-mob-hero-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-hero-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-hero-icon { color: var(--rk-hero-blue); }
    
    .rk-mob-hero-content {
        display: none;
        padding: 20px;
        background: #ffffff;
        border-bottom: 2px solid var(--rk-hero-blue);
    }
    
    .rk-mob-hero-content.active { display: block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Zawór mieszający w ogrzewaniu podłogowym – Kompendium wiedzy instalatora",
    "description": "Dowiedz się, jak zawór mieszający obniża temperaturę wody do 30-45°C. Poznaj zasady doboru współczynnika Kvs i uniknij błędów montażowych w podłogówce.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-wstep",
    "name": "Kluczowe parametry robocze zaworów mieszających w układach płaszczyznowych",
    "description": "Baza danych określająca bezpieczne granice termiczne oraz normy projektowe (PN-EN 1264) dla armatury regulacyjnej w wodnym ogrzewaniu podłogowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zawór mieszający w ogrzewaniu podłogowym",
      "temperatura zasilania podłogówki 30-45 stopni",
      "współczynnik przepływu kvs dobór zaworu",
      "zawór trójdrogowy termostatyczny a elektroniczny",
      "norma PN-EN 1264 ogrzewanie płaszczyznowe"
    ],
    "measurementTechnique": "Zestawienie wytycznych redukcji temperatury z wysokoparametrowego źródła ciepła do bezpiecznych wartości granicznych jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja: Strażnik stabilności termicznej obniżający wodę kotłową do bezpiecznych 30–45°C.",
        "Problem branżowy: Dobór armatury na oko według średnicy gwintu, a nie współczynnika Kvs.",
        "Wymóg prawny: Konstrukcja podłogi musi być chroniona przed naprężeniami niszczącymi zgodnie z PN-EN 1264."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-wstep",
    "name": "Interaktywne Kompendium Instalatora",
    "description": "Dynamiczny przewodnik pełniący funkcję spisu treści, nawigujący użytkownika po zaawansowanych narzędziach i symulatorach osadzonych w artykule.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript. Explicitly designed with zero animations for fast reading.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container" id="rk-wstep-kompendium">
    
    <div class="rk-hero-top">
        <div class="rk-hero-icon-main">
            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M12 2v20"></path>
                <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
                <circle cx="12" cy="12" r="3"></circle>
            </svg>
        </div>
        <div class="rk-hero-title-box">
            <h2>Zawór mieszający w ogrzewaniu podłogowym</h2>
            <div class="rk-hero-direct-answer">
                <strong>Co to jest?</strong> To hydrauliczny strażnik instalacji. Jego głównym zadaniem jest obniżenie temperatury czynnika z kotła (np. 60&deg;C) do bezpiecznego poziomu roboczego (zazwyczaj <strong>30–45&deg;C</strong>) poprzez mieszanie wody gorącej ze schłodzoną wodą z powrotu, zgodnie z <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" style="color: #38bdf8;">normą PN-EN 1264</a>.
            </div>
        </div>
    </div>

    <div class="rk-hero-bottom">
        <div class="rk-hero-sidebar">
            <h4 class="rk-hero-sidebar-title">W tym kompendium:</h4>
            
            <button class="rk-hero-tab-btn active" data-hero="hero-1">
                <svg class="rk-hero-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                <h3>Głos Praktyka HVAC</h3>
            </button>
            <button class="rk-hero-tab-btn" data-hero="hero-2">
                <svg class="rk-hero-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                <h3>Koniec z doborem &#8222;na oko&#8221;</h3>
            </button>
            <button class="rk-hero-tab-btn" data-hero="hero-3">
                <svg class="rk-hero-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                <h3>Interaktywne Narzędzia</h3>
            </button>
        </div>

        <div class="rk-hero-content-area">
            
            <div id="hero-1" class="rk-hero-panel active">
                <h4>Wiedza z ponad 1000 projektów</h4>
                <p>Jako specjalista HVAC i wieloletni praktyk, codziennie widzę na budowach te same, kosztowne błędy. Przewymiarowane zawory i niedogrzane budynki z powodu zablokowanych hydraulicznie pętli to plaga branży. Ten artykuł to bezkompromisowe kompendium, pozbawione marketingowego lania wody.</p>
            </div>

            <div id="hero-2" class="rk-hero-panel">
                <h4>Parametr K<sub>v</sub> vs Średnica gwintu</h4>
                <p>Największym błędem instalatorów jest dobieranie armatury wyłącznie po średnicy rury (np. &#8222;rura 1 cal = zawór 1 cal&#8221;). Przeprowadzę Cię przez inżynieryjny proces doboru zaworu w oparciu o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążenie cieplne OZC</a> i współczynnik przepływu <strong>K<sub>vs</sub></strong>.</p>
            </div>

            <div id="hero-3" class="rk-hero-panel">
                <h4>Co znajdziesz w dalszej części?</h4>
                <p>Zamiast ściany nudnego tekstu, przygotowałem dla Ciebie użyteczne aplikacje zaszyte bezpośrednio w tym artykule. Czytając dalej, otrzymasz dostęp do:</p>
                <ul class="rk-feature-list">
                    <li>Symulatora szoku termicznego i reakcji pogodowej.</li>
                    <li>Interaktywnego kalkulatora algorytmu K<sub>vs</sub>.</li>
                    <li>Skanera symptomów i błędów instalacyjnych na gotowej budowie.</li>
                </ul>
            </div>

        </div>
    </div>

    <div class="rk-hero-mobile-accordion">
        
        <button class="rk-mob-hero-btn active" data-mob-hero="mob-hero-1">
            <svg class="rk-mob-hero-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            <h3>Głos Praktyka HVAC</h3>
        </button>
        <div class="rk-mob-hero-content active" id="mob-hero-1">
            <p>Jako specjalista HVAC z doświadczeniem przy ponad 1000 projektów, rozprawiam się z błędami instalatorów. Ten artykuł to czysta wiedza, bez marketingowej ściemy.</p>
        </div>

        <button class="rk-mob-hero-btn" data-mob-hero="mob-hero-2">
            <svg class="rk-mob-hero-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            <h3>Koniec z doborem &#8222;na oko&#8221;</h3>
        </button>
        <div class="rk-mob-hero-content" id="mob-hero-2">
            <p>Przestaniesz dobierać zawory po średnicy gwintu. Nauczę Cię doboru przez współczynnik <strong>K<sub>vs</sub></strong> i autorytet zaworu.</p>
        </div>

        <button class="rk-mob-hero-btn" data-mob-hero="mob-hero-3">
            <svg class="rk-mob-hero-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
            <h3>Interaktywne Narzędzia</h3>
        </button>
        <div class="rk-mob-hero-content" id="mob-hero-3">
            <p>Poniżej w tekście znajdziesz kalkulatory doboru, symulatory pogody i skaner awarii – korzystaj z nich swobodnie, ułatwią Ci pracę.</p>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP (Czysta podmiana klas, ZERO animacji)
    var deskBtns = document.querySelectorAll('.rk-hero-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-hero-content-area .rk-hero-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-hero');
            
            // Czyszczenie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja błyskawiczna
            this.classList.add('active');
            var panel = document.getElementById(targetId);
            if (panel !== null) {
                panel.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Akordeon, ZERO animacji)
    var mobBtns = document.querySelectorAll('.rk-mob-hero-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-hero');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if (this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez operatora warunkowego (bezpieczny JS)
            var allMobBtns = document.querySelectorAll('.rk-mob-hero-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-hero-content');
            
            allMobBtns.forEach(function(b) { b.classList.remove('active'); });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Rozwijanie
            if (isAlreadyActive === false) {
                this.classList.add('active');
                if (contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset dla bezpieczeństwa przed motywem WordPressa */
#rk-koniecznosc-zaworu,
#rk-koniecznosc-zaworu * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-req-dark: #0f172a;
    --rk-req-blue: #2563eb;
    --rk-req-blue-light: #eff6ff;
    --rk-req-red: #dc2626;
    --rk-req-red-bg: #fef2f2;
    --rk-req-green: #059669;
    --rk-req-green-bg: #ecfdf5;
    --rk-req-orange: #d97706;
    --rk-req-orange-bg: #fffbeb;
    --rk-req-text: #334155;
    --rk-req-gray: #64748b;
    --rk-req-bg: #ffffff;
    --rk-req-border: #e2e8f0;
}

.rk-req-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-req-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(37, 99, 235, 0.12);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-req-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-req-dark) 0%, #1e3a8a 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    border-bottom: 4px solid var(--rk-req-blue);
}

.rk-req-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #60a5fa;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-req-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-req-header-content p {
    font-size: 15px !important;
    color: #bfdbfe !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Interaktywny Selektor Źródła Ciepła */
.rk-req-decision-maker {
    padding: 40px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-req-border);
}

.rk-req-decision-title {
    text-align: center;
    margin-bottom: 25px;
}

.rk-req-decision-title h3 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-req-dark) !important;
    margin: 0 0 8px 0 !important;
}

.rk-req-decision-title p {
    font-size: 15px !important;
    color: var(--rk-req-gray) !important;
    margin: 0 !important;
}

.rk-req-options {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-req-opt-btn {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-req-border);
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    text-align: left;
}

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

.rk-req-opt-btn.active[data-sys="hp"] {
    border-color: var(--rk-req-green);
    background: var(--rk-req-green-bg);
    box-shadow: 0 8px 20px -5px rgba(5, 150, 105, 0.2);
}

.rk-req-opt-btn.active[data-sys="mixed"] {
    border-color: var(--rk-req-red);
    background: var(--rk-req-red-bg);
    box-shadow: 0 8px 20px -5px rgba(220, 38, 38, 0.2);
}

.rk-opt-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #e2e8f0;
    color: var(--rk-req-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-req-opt-btn.active[data-sys="hp"] .rk-opt-icon { background: var(--rk-req-green); color: #ffffff; }
.rk-req-opt-btn.active[data-sys="mixed"] .rk-opt-icon { background: var(--rk-req-red); color: #ffffff; }

.rk-opt-text h4 {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--rk-req-dark) !important;
    margin: 0 0 5px 0 !important;
}

.rk-opt-text p {
    font-size: 13px !important;
    color: var(--rk-req-gray) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Panel Wynikowy (Werdykt) */
.rk-req-result-box {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-req-border);
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.3s;
}

.rk-res-badge {
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 14px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: inline-block;
    margin-bottom: 12px;
}

.rk-req-result-box p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-req-text) !important;
    margin: 0 !important;
}

.rk-req-result-box a {
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* Stany Wyniku */
.rk-result-state-hp { background: #ffffff; border-color: #a7f3d0; }
.rk-result-state-hp .rk-res-badge { background: #d1fae5; color: #065f46; border: 1px solid #34d399; }
.rk-result-state-hp a { color: #059669 !important; }

.rk-result-state-mixed { background: #ffffff; border-color: #fecaca; }
.rk-result-state-mixed .rk-res-badge { background: #fee2e2; color: #991b1b; border: 1px solid #f87171; }
.rk-result-state-mixed a { color: #dc2626 !important; }

/* Karty Konsekwencji i Fizyki */
.rk-req-consequences {
    padding: 40px;
    background: #ffffff;
}

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

.rk-cons-card {
    background: #f8fafc;
    border: 1px solid var(--rk-req-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.rk-cons-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
}

.rk-card-pain::before { background: var(--rk-req-red); }
.rk-card-physics::before { background: var(--rk-req-orange); }

.rk-cons-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-cons-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-card-pain .rk-cons-icon { background: var(--rk-req-red-bg); color: var(--rk-req-red); }
.rk-card-physics .rk-cons-icon { background: var(--rk-req-orange-bg); color: var(--rk-req-orange); }

.rk-cons-header h4 {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--rk-req-dark) !important;
    margin: 0 !important;
}

.rk-cons-card p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-req-text) !important;
    margin: 0 !important;
}

.rk-cons-card a {
    color: var(--rk-req-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
}

/* Blok Bufora (Szeroki) */
.rk-buffer-block {
    grid-column: 1 / -1;
    background: var(--rk-req-blue-light);
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 10px;
}

.rk-buffer-icon {
    width: 50px;
    height: 50px;
    background: var(--rk-req-blue);
    border-radius: 50%;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}

.rk-buffer-text h4 {
    font-size: 16px !important;
    font-weight: 900 !important;
    color: #1e3a8a !important;
    margin: 0 0 5px 0 !important;
    text-transform: uppercase;
}

.rk-buffer-text p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: #1e40af !important;
    margin: 0 !important;
}

/* Responsywność (Mobile Akordeon dla Kart) */
.rk-req-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-req-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-req-icon-main { width: 48px; height: 48px; }
    .rk-req-header-content h2 { font-size: 22px !important; }
    
    .rk-req-decision-maker { padding: 25px 20px; }
    .rk-req-options { flex-direction: column; gap: 12px; }
    
    .rk-req-result-box { flex-direction: column; align-items: flex-start; gap: 15px; }
    
    /* Ukrywamy Grid Desktopowy */
    .rk-req-consequences { display: none; }
    
    /* Pokazujemy Akordeon Mobile */
    .rk-req-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #ffffff;
        padding: 20px;
    }
    
    .rk-mob-cons-btn {
        width: 100%;
        text-align: left;
        background: #f8fafc;
        border: 1px solid var(--rk-req-border);
        padding: 18px 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
        margin-bottom: 10px;
        border-radius: 12px;
    }
    
    .rk-mob-cons-btn.active { border-color: var(--rk-req-blue); background: var(--rk-req-blue-light); }
    
    .rk-mob-cons-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-req-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-cons-content {
        display: none;
        padding: 0 20px 20px 20px;
        font-size: 15px !important;
        line-height: 1.6 !important;
        color: var(--rk-req-text);
    }
    
    .rk-mob-cons-content.active { display: block; }
    .rk-mob-cons-content a { color: var(--rk-req-blue); font-weight: 700; text-decoration: underline; }
    
    .rk-buffer-block { margin: 10px 0 0 0; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-koniecznosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Czy zawór mieszający do podłogówki jest konieczny w każdym domu?",
    "description": "Sprawdź, kiedy zawór mieszający jest zbędny, a kiedy jego brak grozi zniszczeniem wylewki. Analiza układów mieszanych, kotłów stałopalnych i normy PN-EN 13813.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-koniecznosc",
    "name": "Wymagania temperaturowe dla wylewek (PN-EN 13813)",
    "description": "Baza danych określająca relacje pomiędzy źródłem ciepła, dopuszczalnymi naprężeniami jastrychu a koniecznością stosowania armatury obniżającej temperaturę.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy zawór mieszający jest konieczny",
      "układ mieszany grzejniki i podłogówka",
      "maksymalna temperatura na podłogówkę",
      "pękające płytki przy ogrzewaniu podłogowym",
      "kocioł na pellet a podłogówka"
    ],
    "measurementTechnique": "Zestawienie wytycznych Rozporządzenia Ministra Infrastruktury (max 50°C) z parametrami wytrzymałościowymi posadzek na ściskanie i zginanie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła (Tylko Podłogówka): Zawór zbędny, źródło pracuje na niskich parametrach (35-40°C).",
        "Kotły Stałopalne / Układy Mieszane: Zawór bezwzględnie wymagany. Woda 60-70°C zniszczy jastrych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-koniecznosc",
    "name": "Kalkulator Decyzyjny - Konieczność Zaworu Mieszającego",
    "description": "Interaktywny selektor weryfikujący wymóg prawny i techniczny stosowania układów mieszających w oparciu o wybrane przez inwestora źródło ciepła.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-req-container" id="rk-koniecznosc-zaworu">
    
    <div class="rk-req-header">
        <div class="rk-req-icon-main">
            <svg width="32" height="32" 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>
                <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>
        </div>
        <div class="rk-req-header-content">
            <h2>Czy zawór mieszający do podłogówki jest konieczny w każdym domu?</h2>
            <p>Bezpośrednia odpowiedź zależy od specyfikacji źródła ciepła. Zobaczmy, kiedy przepisy i fizyka bezwzględnie wymuszają montaż zaworu, a kiedy jest on stratą pieniędzy.</p>
        </div>
    </div>

    <div class="rk-req-decision-maker">
        <div class="rk-req-decision-title">
            <h3>Określ specyfikację swojej instalacji:</h3>
            <p>Wybierz wariant, aby sprawdzić wytyczne inżynierskie.</p>
        </div>

        <div class="rk-req-options">
            <button class="rk-req-opt-btn" data-sys="hp">
                <div class="rk-opt-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-opt-text">
                    <h4>Pompa Ciepła</h4>
                    <p>Cały dom wyłącznie w podłogówce.</p>
                </div>
            </button>
            <button class="rk-req-opt-btn active" data-sys="mixed">
                <div class="rk-opt-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>
                <div class="rk-opt-text">
                    <h4>Kocioł / Układ Mieszany</h4>
                    <p>Pellet, gaz, węgiel lub grzejniki + podłogówka.</p>
                </div>
            </button>
        </div>

        <div class="rk-req-result-box rk-result-state-mixed" id="rk-req-result">
            </div>
    </div>

    <div class="rk-req-consequences">
        <div class="rk-cons-grid">
            <div class="rk-cons-card rk-card-pain">
                <div class="rk-cons-header">
                    <div class="rk-cons-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>Emocja i ból inwestora</h4>
                </div>
                <p>Brak zaworu to pękające płytki ceramiczne, niszczenie struktury paneli, odparzanie klejów, a przede wszystkim efekt „gorącej podłogi”, który powoduje puchnięcie nóg i realne problemy z układem krążenia. To jedne z najgorszych <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wad podłogówki</a> z winy instalatora.</p>
            </div>
            
            <div class="rk-cons-card rk-card-physics">
                <div class="rk-cons-header">
                    <div class="rk-cons-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><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg></div>
                    <h4>Fizyka zjawiska</h4>
                </div>
                <p>Jastrych cementowy ulega rozszerzalności termicznej. Przekroczenie granicznych temperatur powoduje naprężenia przewyższające wytrzymałość materiału na ściskanie i zginanie (zgodnie z <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normą obliczeń</a> i wymogami PN-EN 13813), co prowadzi do destrukcji wylewki.</p>
            </div>

            <div class="rk-buffer-block">
                <div class="rk-buffer-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <div class="rk-buffer-text">
                    <h4>Zawór jako Bufor Bezpieczeństwa</h4>
                    <p>Zawór mieszający pobiera dokładnie tyle gorącego medium ze źródła, ile potrzeba do podtrzymania parametrów, a resztę zapotrzebowania na przepływ pokrywa schłodzona woda wracająca z rur PEX/PERT ukrytych w podłodze.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-req-mobile-accordion">
        <button class="rk-mob-cons-btn" data-mob-cons="pain">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-req-red)" 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></svg>
            <h3>Ból Inwestora (Konsekwencje)</h3>
        </button>
        <div class="rk-mob-cons-content" id="pain">
            <p>Brak zaworu to pękające płytki, niszczenie paneli i efekt „gorącej podłogi” powodujący problemy z krążeniem.</p>
        </div>

        <button class="rk-mob-cons-btn" data-mob-cons="physics">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-req-orange)" stroke-width="2"><circle cx="12" cy="12" r="10"></circle></svg>
            <h3>Fizyka Zjawiska</h3>
        </button>
        <div class="rk-mob-cons-content" id="physics">
            <p>Przekroczenie temperatur powoduje naprężenia przewyższające wytrzymałość jastrychu (norma PN-EN 13813), niszcząc wylewkę.</p>
        </div>

        <div class="rk-buffer-block">
            <div class="rk-buffer-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg></div>
            <div class="rk-buffer-text">
                <h4>Bufor Bezpieczeństwa</h4>
                <p>Zawór pobiera tylko tyle gorącego medium, ile potrzeba, mieszając je z powrotem PEX.</p>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-req-opt-btn');
    var resultBox = document.getElementById('rk-req-result');

    function updateVerdict(systemType) {
        var isHp = false;
        if (systemType === 'hp') {
            isHp = true;
        }

        if (isHp === true) {
            resultBox.className = 'rk-req-result-box rk-result-state-hp';
            resultBox.innerHTML = `
                <div>
                    <div class="rk-res-badge">Zawór Mieszający Zbędny</div>
                    <p>Jeśli instalacja opiera się wyłącznie na podłogówce zasilanej z pompy ciepła skonfigurowanej na niskie parametry, zawór mieszający generowałby niepotrzebne opory hydrauliczne. Pompa dostarcza bezpieczne 35°C bezpośrednio na rozdzielacz.</p>
                </div>
            `;
        } else {
            resultBox.className = 'rk-req-result-box rk-result-state-mixed';
            resultBox.innerHTML = `
                <div>
                    <div class="rk-res-badge">Zawór Bezwzględnie Wymagany</div>
                    <p>W układach mieszanych lub przy <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/">kotłach na pellet</a>, węgiel czy gaz, woda zasilająca ma często 60-70°C. <strong>Rozporządzenie Ministra Infrastruktury</strong> mówi jasno: <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a> w strefach stałego przebywania to 50°C. Wpuszczenie wrzątku w wylewkę to katastrofa.</p>
                </div>
            `;
        }
    }

    // Stan startowy
    updateVerdict('mixed');

    // Obsługa przycisków głównych
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var sys = this.getAttribute('data-sys');
            
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            updateVerdict(sys);
        });
    });

    // Obsługa Mobile Akordeonu
    var mobBtns = document.querySelectorAll('.rk-mob-cons-btn');
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-cons');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if (this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich
            document.querySelectorAll('.rk-mob-cons-btn').forEach(function(b) { b.classList.remove('active'); });
            document.querySelectorAll('.rk-mob-cons-content').forEach(function(c) { c.classList.remove('active'); });

            // Rozwijanie
            if (isAlreadyActive === false) {
                this.classList.add('active');
                if (contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });
});
</script>



<style>
/* Twardy reset typografii chroniący przed motywem WordPressa */
#rk-fizyka-mieszania,
#rk-fizyka-mieszania * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-fiz-dark: #0f172a;
    --rk-fiz-blue: #2563eb;
    --rk-fiz-blue-light: #eff6ff;
    --rk-fiz-red: #ef4444;
    --rk-fiz-red-bg: #fef2f2;
    --rk-fiz-teal: #0d9488;
    --rk-fiz-teal-bg: #f0fdfa;
    --rk-fiz-text: #334155;
    --rk-fiz-gray: #64748b;
    --rk-fiz-bg: #ffffff;
    --rk-fiz-border: #e2e8f0;
}

.rk-fiz-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-fiz-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(37, 99, 235, 0.15);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek */
.rk-fiz-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-fiz-dark) 0%, #1e3a8a 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    border-bottom: 4px solid var(--rk-fiz-blue);
}

.rk-fiz-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(37, 99, 235, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #60a5fa;
    flex-shrink: 0;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-fiz-header-text h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-fiz-header-text p {
    font-size: 15px !important;
    color: #dbeafe !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

.rk-fiz-header-text a {
    color: #93c5fd !important;
    text-decoration: underline !important;
}

/* Moduł Symulatora Parametrów */
.rk-fiz-simulator {
    padding: 40px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-fiz-border);
}

.rk-fiz-sim-title {
    text-align: center;
    margin-bottom: 25px;
}

.rk-fiz-sim-title h3 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-fiz-dark) !important;
    margin: 0 0 8px 0 !important;
}

.rk-fiz-sim-title p {
    font-size: 15px !important;
    color: var(--rk-fiz-gray) !important;
    margin: 0 !important;
}

/* Przełącznik */
.rk-fiz-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-fiz-btn {
    flex: 1;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-fiz-border);
    background: #ffffff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all 0.3s;
}

.rk-fiz-btn span.rk-temp {
    font-size: 24px !important;
    font-weight: 900 !important;
    color: var(--rk-fiz-dark) !important;
}

.rk-fiz-btn span.rk-label {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--rk-fiz-gray) !important;
    text-transform: uppercase;
}

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

.rk-fiz-btn.active[data-state="danger"] {
    border-color: var(--rk-fiz-red);
    background: var(--rk-fiz-red-bg);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-fiz-btn.active[data-state="danger"] span.rk-temp { color: #b91c1c !important; }
.rk-fiz-btn.active[data-state="danger"] span.rk-label { color: #dc2626 !important; }

.rk-fiz-btn.active[data-state="safe"] {
    border-color: var(--rk-fiz-teal);
    background: var(--rk-fiz-teal-bg);
    box-shadow: 0 8px 20px -5px rgba(13, 148, 136, 0.2);
}

.rk-fiz-btn.active[data-state="safe"] span.rk-temp { color: #0f766e !important; }
.rk-fiz-btn.active[data-state="safe"] span.rk-label { color: #0d9488 !important; }

/* Panel Wyniku */
.rk-fiz-result-panel {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-fiz-border);
    display: flex;
    align-items: flex-start;
    gap: 25px;
    transition: all 0.4s ease;
}

.rk-fiz-result-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-fiz-result-content h4 {
    font-size: 18px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
}

.rk-fiz-result-content p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-fiz-text) !important;
    margin: 0 0 10px 0 !important;
}

.rk-fiz-result-content a {
    color: inherit;
    font-weight: 800 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* Stany dynamiczne panelu */
.rk-state-danger .rk-fiz-result-panel { border-color: #fca5a5; }
.rk-state-danger .rk-fiz-result-icon { background: var(--rk-fiz-red); color: #ffffff; box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3); }
.rk-state-danger .rk-fiz-result-content h4 { color: #991b1b !important; }

.rk-state-safe .rk-fiz-result-panel { border-color: #5eead4; }
.rk-state-safe .rk-fiz-result-icon { background: var(--rk-fiz-teal); color: #ffffff; box-shadow: 0 4px 12px rgba(13, 148, 136, 0.3); }
.rk-state-safe .rk-fiz-result-content h4 { color: #115e59 !important; }

/* Kluczowe Funkcje (Karty) */
.rk-fiz-functions {
    padding: 40px;
    background: #ffffff;
}

.rk-fiz-functions-title {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: var(--rk-fiz-dark) !important;
    margin: 0 0 25px 0 !important;
    text-align: center;
}

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

.rk-func-card {
    padding: 25px;
    background: #f8fafc;
    border: 1px solid var(--rk-fiz-border);
    border-radius: 16px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: transform 0.3s;
}

.rk-func-card:hover {
    transform: translateY(-4px);
    border-color: #cbd5e1;
}

.rk-func-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-fiz-blue-light);
    color: var(--rk-fiz-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-func-text h4 {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--rk-fiz-dark) !important;
    margin: 0 0 8px 0 !important;
}

.rk-func-text p {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: var(--rk-fiz-gray) !important;
    margin: 0 !important;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-fiz-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-fiz-icon-main { width: 48px; height: 48px; }
    .rk-fiz-header-text h2 { font-size: 22px !important; }
    
    .rk-fiz-simulator { padding: 25px 20px; }
    .rk-fiz-controls { flex-direction: column; gap: 12px; }
    .rk-fiz-btn { padding: 15px; flex-direction: row; justify-content: space-between; }
    
    .rk-fiz-result-panel { padding: 20px; flex-direction: column; align-items: center; text-align: center; }
    
    .rk-fiz-functions { padding: 30px 20px; }
    .rk-functions-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-func-card { padding: 20px; align-items: center; text-align: center; flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-fizyka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Dlaczego mieszanie jest niezbędne? Podstawowa fizyka instalacji grzewczej",
    "description": "Zrozum fizykę układów grzewczych. Dowiedz się, dlaczego zasilanie podłogówki bezpośrednio z kotła o temperaturze 60°C prowadzi do zniszczenia wylewki i parkietu.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-fizyka",
    "name": "Parametry fizyczne i termiczne układów grzewczych",
    "description": "Baza danych określająca bezpieczne granice temperaturowe dla systemów ogrzewania płaszczyznowego w relacji do wysokotemperaturowych źródeł ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kocioł kondensacyjny a podłogówka temperatura",
      "uszkodzenie parkietu ogrzewanie podłogowe",
      "zasada działania zaworu mieszającego podłogówka",
      "ochrona instalacji ogrzewania podłogowego",
      "maksymalna temperatura zasilania podłogówki"
    ],
    "measurementTechnique": "Zestawienie normatywnych różnic ΔT pomiędzy parametrami wymaganymi przez grzejniki ścienne a powierzchnią jastrychu grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Temperatura zasilania grzejników: 50-70°C.",
        "Temperatura zasilania podłogówki: 30-45°C.",
        "Ryzyko: Brak obniżenia temperatury z 60°C skutkuje pękaniem warstw wykończeniowych i dyskomfortem."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-fizyka",
    "name": "Symulator Szoku Termicznego",
    "description": "Narzędzie interaktywne ilustrujące fizyczne konsekwencje pominięcia zaworu mieszającego w instalacjach zasilanych z kotłów wysokotemperaturowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fiz-container" id="rk-fizyka-mieszania">
    
    <div class="rk-fiz-header">
        <div class="rk-fiz-icon-main">
            <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 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-fiz-header-text">
            <h2>Dlaczego mieszanie jest niezbędne? Podstawowa fizyka instalacji</h2>
            <p>Nowoczesne <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotły kondensacyjne</a> czy pompy ciepła pracują efektywnie w innym zakresie niż wymaga tego delikatna struktura Twojej podłogi. Zobaczmy, dlaczego inżynieria nie pozwala na bezpośrednie połączenie tych elementów.</p>
        </div>
    </div>

    <div class="rk-fiz-simulator" id="rk-sim-container">
        <div class="rk-fiz-sim-title">
            <h3>Symulacja parametrów zasilania</h3>
            <p>Wybierz scenariusz i sprawdź konsekwencje hydrauliczne.</p>
        </div>

        <div class="rk-fiz-controls">
            <button class="rk-fiz-btn" data-fiz="danger">
                <span class="rk-temp">60°C</span>
                <span class="rk-label">Prosto z kotła (Brak zaworu)</span>
            </button>
            <button class="rk-fiz-btn active" data-fiz="safe">
                <span class="rk-temp">35°C</span>
                <span class="rk-label">Z zaworem mieszającym</span>
            </button>
        </div>

        <div class="rk-fiz-result-panel" id="rk-fiz-result">
            </div>
    </div>

    <div class="rk-fiz-functions">
        <h3 class="rk-fiz-functions-title">Kluczowe funkcje zaworu mieszającego</h3>
        <div class="rk-functions-grid">
            
            <div class="rk-func-card">
                <div class="rk-func-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <div class="rk-func-text">
                    <h4>Ochrona instalacji</h4>
                    <p>Zabezpiecza wylewkę i parkiet przed pękaniem, pilnując, by <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna dopuszczalna temperatura płyty grzewczej</a> nie została przekroczona.</p>
                </div>
            </div>

            <div class="rk-func-card">
                <div class="rk-func-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z"></path></svg>
                </div>
                <div class="rk-func-text">
                    <h4>Optymalizacja komfortu</h4>
                    <p>Zapewnia równomierny, łagodny rozkład ciepła w pomieszczeniach, eliminując zjawisko &#8222;puchnących nóg&#8221; i zmęczenia układu krążenia.</p>
                </div>
            </div>

            <div class="rk-func-card">
                <div class="rk-func-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-func-text">
                    <h4>Zwiększenie efektywności</h4>
                    <p>Pozwala głównemu źródłu ciepła (np. <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompie ciepła</a>) pracować w optymalnym, energooszczędnym trybie długotrwałym.</p>
                </div>
            </div>

            <div class="rk-func-card">
                <div class="rk-func-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-func-text">
                    <h4>Stabilizacja parametrów</h4>
                    <p>Dostarcza do rozdzielacza wodę o stałej, chirurgicznie dokładnej temperaturze, całkowicie uniezależniając podłogę od skoków po stronie kotła.</p>
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-fiz-btn');
    var container = document.getElementById('rk-sim-container');
    var resultPanel = document.getElementById('rk-fiz-result');

    function updateSimulation(state) {
        // Bezpieczne warunki if/else bez operatorów &&
        if (state === 'danger') {
            container.className = 'rk-fiz-simulator rk-state-danger';
            resultPanel.innerHTML = `
                <div class="rk-fiz-result-icon">
                    <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="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-fiz-result-content">
                    <h4>Krytyczny błąd hydrauliczny</h4>
                    <p>Wpuszczenie wody o temperaturze 60°C bezpośrednio do pętli wywołuje szok termiczny betonu. Rozszerzalność cieplna doprowadzi do pęknięcia jastrychu, odparzenia klejów i uszkodzenia okładzin wykończeniowych (np. drogiego parkietu).</p>
                    <p>To jeden z głównych powodów powstawania <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" style="color: #b91c1c;">awarii, potocznie nazywanych wadami podłogówki</a>.</p>
                </div>
            `;
        } else {
            container.className = 'rk-fiz-simulator rk-state-safe';
            resultPanel.innerHTML = `
                <div class="rk-fiz-result-icon">
                    <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="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>
                <div class="rk-fiz-result-content">
                    <h4>Bezpieczna i optymalna praca</h4>
                    <p>Zawór mieszający na bieżąco analizuje temperaturę. Obniża 60°C z kotła poprzez zmieszanie jej z chłodniejszą wodą wracającą z pętli. Na rozdzielacz trafia stabilne, bezpieczne 35°C.</p>
                    <p>Posadzka nagrzewa się równomiernie i bezpiecznie, gwarantując najwyższy komfort użytkownikom.</p>
                </div>
            `;
        }
    }

    // Stan początkowy
    updateSimulation('safe');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var state = this.getAttribute('data-fiz');
            
            // Usunięcie active
            btns.forEach(function(b) { b.classList.remove('active'); });
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            // Aktualizacja UI
            updateSimulation(state);
        });
    });
});
</script>



<style>
/* Twardy reset typografii chroniący przed motywem WordPressa */
#rk-zasada-zaworu,
#rk-zasada-zaworu * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-z-dark: #0f172a;
    --rk-z-blue: #0284c7;
    --rk-z-blue-light: #f0f9ff;
    --rk-z-red: #ef4444;      /* Port A - Gorący */
    --rk-z-cyan: #06b6d4;     /* Port B - Zimny */
    --rk-z-purple: #8b5cf6;   /* Port AB - Zmieszany */
    --rk-z-gray: #64748b;
    --rk-z-bg: #ffffff;
    --rk-z-border: #e2e8f0;
}

.rk-z-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-z-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Nagłówek */
.rk-z-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-z-dark) 0%, #1e1b4b 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    border-bottom: 4px solid var(--rk-z-blue);
}

.rk-z-header-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-z-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

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

.rk-z-header-content a {
    color: #38bdf8 !important;
    text-decoration: underline !important;
}

/* Sekcja Symulatora (Wizualizacja) */
.rk-z-simulator {
    padding: 40px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-z-border);
}

.rk-z-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-z-btn {
    padding: 16px 24px;
    border-radius: 12px;
    border: 2px solid var(--rk-z-border);
    background: #ffffff;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-z-dark) !important;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-z-btn.active[data-sim="cold"] {
    border-color: var(--rk-z-blue);
    background: var(--rk-z-blue-light);
    color: #0369a1 !important;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.15);
}

.rk-z-btn.active[data-sim="hot"] {
    border-color: var(--rk-z-red);
    background: #fef2f2;
    color: #b91c1c !important;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

/* Diagram SVG */
.rk-z-diagram {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-z-border);
    text-align: center;
    position: relative;
}

.rk-svg-valve {
    max-width: 100%;
    height: auto;
    width: 320px;
    margin: 0 auto;
    display: block;
}

.rk-flow-path {
    transition: stroke-width 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s ease;
}

/* Stany Animacji Diagramu */
/* Domyślnie (50/50) */
.flow-a { stroke: var(--rk-z-red); stroke-width: 8; }
.flow-b { stroke: var(--rk-z-cyan); stroke-width: 8; }
.flow-ab { stroke: var(--rk-z-purple); stroke-width: 12; animation: pulseFlow 2s infinite; }

/* Stan: Wykryto spadek temperatury (Potrzeba ciepła) */
.sim-state-cold .flow-a { stroke-width: 14; opacity: 1; }
.sim-state-cold .flow-b { stroke-width: 4; opacity: 0.4; }
.sim-state-cold .flow-ab { stroke: var(--rk-z-red); }

/* Stan: Wykryto wzrost temperatury (Dławienie kotła) */
.sim-state-hot .flow-a { stroke-width: 4; opacity: 0.4; }
.sim-state-hot .flow-b { stroke-width: 14; opacity: 1; }
.sim-state-hot .flow-ab { stroke: var(--rk-z-cyan); }

@keyframes pulseFlow {
    0% { filter: drop-shadow(0 0 2px rgba(139, 92, 246, 0.4)); }
    50% { filter: drop-shadow(0 0 8px rgba(139, 92, 246, 0.8)); }
    100% { filter: drop-shadow(0 0 2px rgba(139, 92, 246, 0.4)); }
}

.rk-z-status-text {
    margin-top: 20px;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--rk-z-gray) !important;
    min-height: 48px;
}

/* Opis Portów (Karty) */
.rk-z-ports {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 40px;
}

.rk-port-card {
    background: #ffffff;
    border: 1px solid var(--rk-z-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: transform 0.3s;
}

.rk-port-card:hover {
    transform: translateY(-5px);
}

.rk-port-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
    font-weight: 900 !important;
    font-size: 18px !important;
}

.port-a .rk-port-icon { background: var(--rk-z-red); box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3); }
.port-b .rk-port-icon { background: var(--rk-z-cyan); box-shadow: 0 4px 10px rgba(6, 182, 212, 0.3); }
.port-ab .rk-port-icon { background: var(--rk-z-purple); box-shadow: 0 4px 10px rgba(139, 92, 246, 0.3); }

.rk-port-card h4 {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--rk-z-dark) !important;
    margin: 0 0 10px 0 !important;
    text-transform: uppercase;
}

.rk-port-card p {
    font-size: 14px !important;
    color: var(--rk-z-text) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

/* Złota Zasada Instalatora (Wyróżnienie) */
.rk-z-golden-rule {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #fffbeb;
    border-left: 6px solid #f59e0b;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-golden-icon {
    width: 50px;
    height: 50px;
    background: #f59e0b;
    border-radius: 50%;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-golden-content h4 {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: #92400e !important;
    margin: 0 0 8px 0 !important;
}

.rk-golden-content p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: #b45309 !important;
    margin: 0 !important;
}

.rk-golden-content a {
    color: #92400e !important;
    font-weight: 800 !important;
    text-decoration: underline !important;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-z-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-z-header-icon { width: 48px; height: 48px; }
    .rk-z-header-content h2 { font-size: 22px !important; }
    
    .rk-z-simulator { padding: 25px 20px; }
    .rk-z-controls { flex-direction: column; }
    .rk-z-btn { justify-content: center; }
    
    .rk-z-diagram { padding: 20px; }
    .rk-svg-valve { width: 100%; max-width: 250px; }
    
    .rk-z-ports { grid-template-columns: 1fr; padding: 25px 20px; gap: 15px; }
    .rk-port-card { padding: 20px; }
    
    .rk-z-golden-rule { margin: 0 20px 30px 20px; padding: 20px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-zasada-dzialania",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak działa zawór trójdrogowy mieszający w instalacji podłogowej?",
    "description": "Techniczne wyjaśnienie działania zaworu 3-drogowego. Poznaj schemat przepływów przez porty A, B i AB oraz ich wpływ na rotametry i pompę obiegową.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-zasada-dzialania",
    "name": "Zasada działania i parametry przepływu zaworu 3-drogowego",
    "description": "Baza wiedzy z zakresu mechaniki płynów opisująca proces jakościowego mieszania czynnika grzewczego w strefach podłogowych z zachowaniem stałego przepływu masowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zawór trójdrogowy mieszający schemat działania",
      "jak działa zawór trójdrogowy w podłogówce",
      "mieszanie wody port a port b port ab",
      "zrównoważenie hydrauliczne rotametrów na rozdzielaczu",
      "norma PN-EN 1264-4 armatura regulacyjna"
    ],
    "measurementTechnique": "Określanie proporcji mieszania wektorów cieplnych na podstawie odczytów termostatycznych z zachowaniem ciągłości dynamiki płynów w pętlach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Port A: Zasilanie wysokotemperaturowe (kocioł).",
        "Port B: Powrót chłodnej wody z instalacji.",
        "Port AB: Wyjście zmieszanego medium o precyzyjnie ustalonej temperaturze roboczej.",
        "Zasada: Zawór 3-drogowy nie ogranicza całkowitego przepływu wody w pętlach, gwarantując pracę rotametrów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-zasada-dzialania",
    "name": "Symulator Przepływu Zaworu 3-drogowego",
    "description": "Interaktywny schemat P&ID demonstrujący mechanikę zmiany szczelin przepływowych (dławienie i otwieranie portów) w odpowiedzi na zadane wymuszenia termiczne.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS and JavaScript to visualize flow paths",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-z-container" id="rk-zasada-zaworu">
    
    <div class="rk-z-header">
        <div class="rk-z-header-icon">
            <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 2v20"></path>
                <path d="M2 12h20"></path>
                <circle cx="12" cy="12" r="4"></circle>
            </svg>
        </div>
        <div class="rk-z-header-content">
            <h2>Jak działa zawór trójdrogowy mieszający w instalacji podłogowej?</h2>
            <p>Zasada działania opiera się na proporcjonalnym podziale i łączeniu dwóch strumieni o różnych temperaturach. System ten precyzyjnie realizuje wytyczne normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264-4</a> dotyczącej armatury regulacyjnej.</p>
        </div>
    </div>

    <div class="rk-z-simulator">
        
        <div class="rk-z-controls">
            <button class="rk-z-btn" data-sim="cold">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5l-5-3-5 3"></path></svg>
                Symuluj spadek temperatury
            </button>
            <button class="rk-z-btn" data-sim="hot">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 19l-5 3-5-3"></path></svg>
                Symuluj wzrost temperatury
            </button>
        </div>

        <div class="rk-z-diagram" id="rk-diagram-box">
            <svg class="rk-svg-valve" viewBox="0 0 200 160" fill="none" stroke-linecap="round" stroke-linejoin="round">
                <path d="M100 0 V 60" stroke="#cbd5e1" stroke-width="20" /> <path d="M0 100 H 60" stroke="#cbd5e1" stroke-width="20" /> <path d="M140 100 H 200" stroke="#cbd5e1" stroke-width="20" /> <circle cx="100" cy="100" r="40" fill="#f8fafc" stroke="#64748b" stroke-width="4" />
                <path d="M80 80 L 120 120 M 120 80 L 80 120" stroke="#cbd5e1" stroke-width="4" />
                
                <path class="rk-flow-path flow-a" d="M100 10 L100 80" />
                <path class="rk-flow-path flow-b" d="M10 100 L80 100" />
                <path class="rk-flow-path flow-ab" d="M120 100 L190 100" />
                
                <polygon points="95,40 105,40 100,50" fill="#ef4444" />
                <polygon points="40,95 40,105 50,100" fill="#06b6d4" />
                <polygon points="160,95 160,105 170,100" fill="#8b5cf6" />
            </svg>
            
            <div class="rk-z-status-text" id="rk-status-info">
                Wybierz zdarzenie z przycisków powyżej, aby zaobserwować reakcję grzybka regulacyjnego wewnątrz zaworu.
            </div>
        </div>
    </div>

    <div class="rk-z-ports">
        <div class="rk-port-card port-a">
            <div class="rk-port-icon">A</div>
            <h4>Wejście z Kotła</h4>
            <p>Dopływ wysokotemperaturowej, gorącej wody ze źródła ciepła (np. 70°C).</p>
        </div>
        <div class="rk-port-card port-b">
            <div class="rk-port-icon">B</div>
            <h4>Powrót Instalacji</h4>
            <p>Dopływ schłodzonej wody powracającej z wężownic podłogowych (np. 30°C).</p>
        </div>
        <div class="rk-port-card port-ab">
            <div class="rk-port-icon">AB</div>
            <h4>Wyjście (Mieszanina)</h4>
            <p>Zasilenie układu zadaną, bezpieczną i stabilną temperaturą (np. <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalne 35°C</a>).</p>
        </div>
    </div>

    <div class="rk-z-golden-rule">
        <div class="rk-golden-icon">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
        </div>
        <div class="rk-golden-content">
            <h4>Warto zapamiętać: Zawór nie dławi pętli!</h4>
            <p>Zawór 3-drogowy nie ogranicza ilości wody krążącej w pętlach podłogowych. On jedynie decyduje, jaka część tej wody zostanie wymieniona na nową, gorącą porcję ze źródła ciepła. Dzięki temu całkowity przepływ masowy w samej podłogówce pozostaje na stałym, wysokim poziomie, co jest warunkiem koniecznym do prawidłowego zrównoważenia hydraulicznego <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-z-btn');
    var diagramBox = document.getElementById('rk-diagram-box');
    var statusInfo = document.getElementById('rk-status-info');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var simType = this.getAttribute('data-sim');
            
            // Usunięcie klasy aktywnej ze wszystkich przycisków
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Aktywacja klikniętego
            this.classList.add('active');

            // Logika bez użycia podwójnych ampersandów (bezpieczny kod)
            if (simType === 'cold') {
                diagramBox.className = 'rk-z-diagram sim-state-cold';
                statusInfo.innerHTML = '<strong>Czujnik wykrył spadek:</strong> Zawór przymyka port B (powrót) i szeroko otwiera port A (zasilanie). Do podłogi napływa zwiększona ilość gorącej wody z kotła.';
                statusInfo.style.color = '#b91c1c';
            } else {
                diagramBox.className = 'rk-z-diagram sim-state-hot';
                statusInfo.innerHTML = '<strong>Czujnik wykrył nadmiar ciepła:</strong> Zawór dławi port A (gorący) i maksymalnie otwiera port B (chłodny powrót), odcinając dopływ z kotła. Temperatura na rozdzielaczu stabilizuje się.';
                statusInfo.style.color = '#0369a1';
            }
        });
    });
});
</script>



<style>
/* Twardy reset dla izolacji od kaprysów motywu WP */
#rk-toggle-konstrukcja,
#rk-toggle-konstrukcja * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-tgl-dark: #1e293b;
    --rk-tgl-blue: #3b82f6;
    --rk-tgl-blue-light: #eff6ff;
    --rk-tgl-indigo: #4f46e5;
    --rk-tgl-text: #475569;
    --rk-tgl-bg: #ffffff;
    --rk-tgl-border: #e2e8f0;
}

.rk-tgl-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-tgl-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.15);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek */
.rk-tgl-header {
    padding: 40px;
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-tgl-header h2 {
    font-size: 28px !important;
    font-weight: 900 !important;
    margin: 0 0 15px 0 !important;
    color: #ffffff !important;
    line-height: 1.3 !important;
}

.rk-tgl-header p {
    font-size: 16px !important;
    color: #cbd5e1 !important;
    margin: 0 auto !important;
    max-width: 600px;
    line-height: 1.6 !important;
}

/* Interaktywny Switcher */
.rk-tgl-switch-wrapper {
    background: #f8fafc;
    padding: 30px 40px;
    border-bottom: 1px solid var(--rk-tgl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-tgl-switch {
    position: relative;
    display: flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 6px;
    width: 100%;
    max-width: 500px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-tgl-btn {
    flex: 1;
    text-align: center;
    padding: 14px 20px;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #64748b !important;
    background: transparent;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
}

.rk-tgl-btn.active {
    color: var(--rk-tgl-indigo) !important;
}

/* Ruchome tło suwaka */
.rk-tgl-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: #ffffff;
    border-radius: 999px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.state-3way .rk-tgl-slider {
    transform: translateX(100%);
}

/* Obszar Kart Informacyjnych */
.rk-tgl-content-area {
    padding: 40px;
    background: #ffffff;
}

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

.rk-feat-card {
    background: #f8fafc;
    border: 1px solid var(--rk-tgl-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-feat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

.rk-feat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-tgl-blue-light);
    color: var(--rk-tgl-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 5px;
}

.rk-feat-title {
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px;
    color: #94a3b8 !important;
    font-weight: 800 !important;
    margin: 0 !important;
}

.rk-feat-text {
    font-size: 16px !important;
    line-height: 1.6 !important;
    color: var(--rk-tgl-dark) !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

.rk-feat-desc {
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: var(--rk-tgl-text) !important;
    margin: 0 !important;
}

.rk-feat-desc a {
    color: var(--rk-tgl-indigo) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
}

/* Werdykt Eksperta */
.rk-tgl-verdict {
    background: #f0fdf4;
    border-top: 1px solid #bbf7d0;
    padding: 35px 40px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-verdict-icon {
    width: 56px;
    height: 56px;
    background: #16a34a;
    border-radius: 50%;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.rk-verdict-text h4 {
    font-size: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px;
    color: #16a34a !important;
    font-weight: 900 !important;
    margin: 0 0 5px 0 !important;
}

.rk-verdict-text p {
    font-size: 16px !important;
    line-height: 1.6 !important;
    color: #14532d !important;
    margin: 0 !important;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-tgl-header { padding: 30px 20px; }
    .rk-tgl-header h2 { font-size: 24px !important; }
    
    .rk-tgl-switch-wrapper { padding: 25px 20px; }
    .rk-tgl-switch { flex-direction: column; border-radius: 16px; padding: 5px; }
    
    /* Na mobile suwak znika, robimy z tego zwykłe przyciski typu akordeon/zakładki */
    .rk-tgl-slider { display: none; }
    
    .rk-tgl-btn {
        border-radius: 12px;
        padding: 12px;
    }
    .rk-tgl-btn.active {
        background: #ffffff;
        box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    }

    .rk-tgl-content-area { padding: 25px 20px; }
    .rk-cards-grid { grid-template-columns: 1fr; gap: 15px; }
    
    .rk-tgl-verdict { padding: 25px 20px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-konstrukcja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Konstrukcja: zawory 2-drogowe vs. 3-drogowe",
    "description": "Szczegółowa analiza budowy, hydrauliki, zastosowania oraz wariantów sterowania zaworów mieszających w instalacjach ogrzewania płaszczyznowego.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-konstrukcja",
    "name": "Zestawienie cech konstrukcyjnych armatury dławiącej i mieszającej",
    "description": "Baza danych klasyfikująca elementy wykonawcze węzłów hydraulicznych w kontekście budowy, logiki działania i kompatybilności z automatyką.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "budowa zaworu 2 drogowego schemat",
      "zawór trójdrogowy mieszający jak podłączyć",
      "siłownik obrotowy proporcjonalny 0-10v do zaworu",
      "gotowa grupa pompowa z zaworem 2 drogowym",
      "zawór przełączający do pompy ciepła a mieszający"
    ],
    "measurementTechnique": "Analiza wariantowa funkcji urządzeń wykonawczych na schematach P&ID (Piping and Instrumentation Diagram).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Budowa: 2 porty wtryskowe vs 3 porty z komorą.",
        "Hydraulika: Konieczność bypassu vs uniwersalność przełączania.",
        "Zastosowanie: Kompaktowe rozdzielacze vs kotłownie wielostrefowe.",
        "Sterowanie: Impulsowe 0-10V vs Obrotowe 90 stopni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-konstrukcja",
    "name": "Eksplorator Konstrukcji Zaworów",
    "description": "Interaktywny interfejs typu Toggle Switch pozwalający na błyskawiczne przełączanie i weryfikację właściwości mechanicznych armatury.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tgl-container" id="rk-modul-konstrukcja">
    
    <div class="rk-tgl-header">
        <h2>Konstrukcja: zawory 2-drogowe vs. 3-drogowe</h2>
        <p>Porównaj kluczowe różnice inżynieryjne pomiędzy wtryskowym dławieniem strumienia a jakościowym mieszaniem czynnika grzewczego w komorze.</p>
    </div>

    <div class="rk-tgl-switch-wrapper state-2way" id="rk-switch-bg">
        <div class="rk-tgl-switch">
            <div class="rk-tgl-slider"></div>
            <button class="rk-tgl-btn active" id="btn-2way">Zawór 2-drogowy</button>
            <button class="rk-tgl-btn" id="btn-3way">Zawór 3-drogowy</button>
        </div>
    </div>

    <div class="rk-tgl-content-area">
        <div class="rk-cards-grid">
            
            <div class="rk-feat-card">
                <div class="rk-feat-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="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"></path><polyline points="14 2 14 8 20 8"></polyline></svg>
                </div>
                <h3 class="rk-feat-title">Budowa (Fizyka)</h3>
                <p class="rk-feat-text" id="txt-budowa">Dwa wejścia (zasilanie, powrót), jedno wyjście (mieszania).</p>
                <p class="rk-feat-desc" id="desc-budowa">Działa jak zawór regulacyjny na dopływie gorącej wody.</p>
            </div>

            <div class="rk-feat-card">
                <div class="rk-feat-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 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <h3 class="rk-feat-title">Hydraulika systemu</h3>
                <p class="rk-feat-text" id="txt-hydro">Konieczny bypass z zaworem upustowym.</p>
                <p class="rk-feat-desc" id="desc-hydro">Często wymaga dodatkowego <strong>zaworu przełączającego</strong> lub bypassu, aby zapewnić minimalny przepływ przez kocioł.</p>
            </div>

            <div class="rk-feat-card">
                <div class="rk-feat-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="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <h3 class="rk-feat-title">Zastosowanie</h3>
                <p class="rk-feat-text" id="txt-zast">Grupy do pojedynczych rozdzielaczy.</p>
                <p class="rk-feat-desc" id="desc-zast">Bardzo powszechne w gotowych zestawach mieszająco-pompowych dla domów jednorodzinnych.</p>
            </div>

            <div class="rk-feat-card">
                <div class="rk-feat-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="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <h3 class="rk-feat-title">System Sterowania</h3>
                <p class="rk-feat-text" id="txt-ster">Siłownik 0-10V / Impulsowy.</p>
                <p class="rk-feat-desc" id="desc-ster">Zwykle integrowany z prostymi <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">sterownikami</a> reagującymi na sygnał impulsowy.</p>
            </div>

        </div>
    </div>

    <div class="rk-tgl-verdict">
        <div class="rk-verdict-icon">
            <svg width="28" height="28" 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>
        </div>
        <div class="rk-verdict-text">
            <h4>Wniosek instalatora</h4>
            <p>W praktyce dla większości standardowych instalacji jednorodzinnych <strong>zestaw z zaworem 2-drogowym</strong> jest rozwiązaniem w pełni wystarczającym i najczęściej wybieranym.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn2 = document.getElementById('btn-2way');
    var btn3 = document.getElementById('btn-3way');
    var switchWrapper = document.getElementById('rk-switch-bg');

    // Elementy tekstowe do aktualizacji
    var tBudowa = document.getElementById('txt-budowa');
    var dBudowa = document.getElementById('desc-budowa');
    var tHydro = document.getElementById('txt-hydro');
    var dHydro = document.getElementById('desc-hydro');
    var tZast = document.getElementById('txt-zast');
    var dZast = document.getElementById('desc-zast');
    var tSter = document.getElementById('txt-ster');
    var dSter = document.getElementById('desc-ster');

    // Obiekty z danymi
    var data2way = {
        tb: "Dwa wejścia (zasilanie, powrót), jedno wyjście.",
        db: "Działa jak zawór regulacyjny na dopływie gorącej wody ze źródła.",
        th: "Konieczny bypass z zaworem upustowym.",
        dh: "Często wymaga dodatkowego <strong>zaworu przełączającego</strong> lub bypassu, aby zapewnić minimalny przepływ przez kocioł.",
        tz: "Grupy do pojedynczych rozdzielaczy.",
        dz: "Bardzo powszechne w gotowych zestawach mieszająco-pompowych dla domów jednorodzinnych.",
        ts: "Siłownik 0-10V / Impulsowy.",
        ds: "Zwykle integrowany z prostymi <a href='https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/'>sterownikami</a> reagującymi na sygnał impulsowy."
    };

    var data3way = {
        tb: "Trzy porty (A, B, AB) z komorą.",
        db: "Posiada komorę mieszającą, w której bezpośrednio łączą się strumienie gorący i powrotny.",
        th: "Pełna niezależność obiegów.",
        dh: "Bardziej uniwersalny hydraulicznie, może pełnić różne funkcje (mieszanie, przełączanie) we współpracy z <a href='https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/'>buforem</a>.",
        tz: "Złożone systemy wielostrefowe.",
        dz: "Stosowany w większych, bardziej złożonych instalacjach z kilkoma źródłami ciepła.",
        ts: "Siłownik obrotowy 90°.",
        ds: "Wymaga dedykowanego sterownika zarządzającego proporcjonalnym otwarciem obrotowym."
    };

    function updateContent(dataObj) {
        tBudowa.innerHTML = dataObj.tb;
        dBudowa.innerHTML = dataObj.db;
        tHydro.innerHTML = dataObj.th;
        dHydro.innerHTML = dataObj.dh;
        tZast.innerHTML = dataObj.tz;
        dZast.innerHTML = dataObj.dz;
        tSter.innerHTML = dataObj.ts;
        dSter.innerHTML = dataObj.ds;
    }

    // Bezpieczne sprawdzanie warunków (bez &&)
    btn2.addEventListener('click', function() {
        var isAlreadyActive = false;
        if (btn2.classList.contains('active')) {
            isAlreadyActive = true;
        }

        if (isAlreadyActive === false) {
            btn3.classList.remove('active');
            btn2.classList.add('active');
            switchWrapper.className = 'rk-tgl-switch-wrapper state-2way';
            updateContent(data2way);
        }
    });

    btn3.addEventListener('click', function() {
        var isAlreadyActive = false;
        if (btn3.classList.contains('active')) {
            isAlreadyActive = true;
        }

        if (isAlreadyActive === false) {
            btn2.classList.remove('active');
            btn3.classList.add('active');
            switchWrapper.className = 'rk-tgl-switch-wrapper state-3way';
            updateContent(data3way);
        }
    });
});
</script>



<style>
/* Twardy reset dla izolacji od motywu WP */
#rk-komparator-zaworow,
#rk-komparator-zaworow * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-light: #f0f9ff;
    --rk-comp-accent: #f59e0b; /* Pomarańcz dla 3-drogowego */
    --rk-comp-teal: #0d9488;   /* Morski dla 2-drogowego */
    --rk-comp-text: #334155;
    --rk-comp-gray: #64748b;
    --rk-comp-bg: #ffffff;
    --rk-comp-border: #e2e8f0;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Nagłówek */
.rk-comp-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    border-bottom: 4px solid var(--rk-comp-blue);
}

.rk-comp-header-icon {
    width: 64px;
    height: 64px;
    background: rgba(2, 132, 199, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-comp-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

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

/* Interaktywny Komparator (Desktop) */
.rk-comp-interactive {
    display: block;
    background: #f8fafc;
}

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

.rk-comp-tab-btn {
    flex: 1;
    padding: 25px 20px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    transition: all 0.3s;
    position: relative;
    border-bottom: 4px solid transparent;
}

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

.rk-comp-tab-btn.active[data-target="valve-2"] {
    background: #f0fdfa;
    border-bottom-color: var(--rk-comp-teal);
}

.rk-comp-tab-btn.active[data-target="valve-3"] {
    background: #fffbeb;
    border-bottom-color: var(--rk-comp-accent);
}

.rk-tab-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #e2e8f0;
    color: var(--rk-comp-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-comp-tab-btn.active[data-target="valve-2"] .rk-tab-icon-box {
    background: var(--rk-comp-teal);
    color: #ffffff;
}

.rk-comp-tab-btn.active[data-target="valve-3"] .rk-tab-icon-box {
    background: var(--rk-comp-accent);
    color: #ffffff;
}

.rk-comp-tab-btn h3 {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--rk-comp-dark) !important;
    margin: 0 !important;
}

/* Obszar parametrów */
.rk-comp-content-area {
    padding: 35px 40px;
    background: #f8fafc;
}

.rk-comp-panel {
    display: none;
    animation: fadeInComp 0.4s ease forwards;
}

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

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

.rk-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 25px;
}

.rk-spec-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-spec-label {
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px;
    color: var(--rk-comp-gray) !important;
    font-weight: 700 !important;
}

.rk-spec-value {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: var(--rk-comp-dark) !important;
}

.rk-spec-desc {
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: var(--rk-comp-text) !important;
    margin-top: 5px;
    padding-top: 15px;
    border-top: 1px dashed var(--rk-comp-border);
}

.rk-spec-desc a {
    color: var(--rk-comp-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Blok Rekomendacji */
.rk-expert-recommendation {
    margin: 0;
    padding: 35px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-comp-border);
    display: flex;
    align-items: center;
    gap: 25px;
}

.rk-expert-shield {
    width: 60px;
    height: 60px;
    background: var(--rk-comp-blue-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-comp-blue);
    flex-shrink: 0;
}

.rk-rec-text h4 {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: var(--rk-comp-dark) !important;
    margin: 0 0 8px 0 !important;
    text-transform: uppercase;
}

.rk-rec-text p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-comp-text) !important;
    margin: 0 !important;
}

.rk-rec-text a {
    color: var(--rk-comp-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
}

/* Układ Mobile (Pionowy Akordeon) */
.rk-comp-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-comp-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-comp-header-icon { width: 48px; height: 48px; }
    .rk-comp-header-content h2 { font-size: 22px !important; }
    
    /* Ukrycie wersji desktopowej komparatora */
    .rk-comp-interactive { display: none; }
    
    /* Aktywacja akordeonu */
    .rk-comp-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-comp-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-comp-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-comp-btn.active[data-mob="valve-2"] { background: #f0fdfa; border-left: 4px solid var(--rk-comp-teal); }
    .rk-mob-comp-btn.active[data-mob="valve-3"] { background: #fffbeb; border-left: 4px solid var(--rk-comp-accent); }
    
    .rk-mob-comp-btn h3 {
        font-size: 16px !important;
        font-weight: 800 !important;
        color: var(--rk-comp-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-comp-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-comp-border);
    }
    
    .rk-mob-comp-content.active { display: block; }
    
    .rk-spec-grid { grid-template-columns: 1fr; gap: 15px; margin-bottom: 0; }
    
    .rk-expert-recommendation { padding: 25px 20px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-komparator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Zawór 2-drogowy czy 3-drogowy – Który wariant wybrać do domu jednorodzinnego?",
    "description": "Techniczne porównanie zaworów mieszających (wtryskowych vs obrotowych). Sprawdź parametry Kvs, maksymalną powierzchnię oraz koszty zakupu do ogrzewania podłogowego.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-komparator",
    "name": "Parametry techniczne armatury mieszającej: Zawory 2-drogowe vs 3-drogowe",
    "description": "Zestawienie właściwości hydraulicznych i finansowych armatury regulacyjnej niezbędnej do prawidłowego zasilania obiegów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zawór 2-drogowy do podłogówki zasada działania",
      "zawór 3-drogowy mieszający schemat instalacji",
      "sprzęgło hydrauliczne w instalacji mieszanej",
      "dobór kvs zaworu do powierzchni m2",
      "gotowe grupy pompowe do rozdzielacza"
    ],
    "measurementTechnique": "Kompilacja i mapowanie parametrów technicznych Kvs (m3/h) względem obsługiwanej powierzchni oraz wymogów sprzęgania hydraulicznego źródła ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zawór 2-drogowy: Kvs 1.0-2.5, obsługuje do 120m2, wymaga bypassu, dławi przepływ kotłowy. Koszt 180-350 PLN.",
        "Zawór 3-drogowy: Kvs 2.5-6.3, obsługuje pow. 300m2, idealny za sprzęgłem hydraulicznym. Koszt 300-650 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-komparator",
    "name": "Interaktywny Komparator Zaworów Mieszających",
    "description": "Narzędzie wspomagające decyzje inwestorskie poprzez dynamiczne wyświetlanie specyfikacji technicznej w oparciu o wybraną architekturę hydrauliczną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-wybor-zaworu">
    
    <div class="rk-comp-header">
        <div class="rk-comp-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="6" cy="6" r="3"></circle>
                <circle cx="6" cy="18" r="3"></circle>
                <line x1="20" y1="4" x2="8.12" y2="15.88"></line>
                <line x1="14.47" y1="14.48" x2="20" y2="20"></line>
                <line x1="8.12" y1="8.12" x2="12" y2="12"></line>
            </svg>
        </div>
        <div class="rk-comp-header-content">
            <h2>Zawór 2-drogowy czy 3-drogowy – Który wariant wybrać?</h2>
            <p>Wybór konstrukcji zależy od wielkości instalacji i schematu hydraulicznego. Przełączaj karty poniżej, aby porównać parametry operacyjne obu rozwiązań.</p>
        </div>
    </div>

    <div class="rk-comp-interactive">
        <div class="rk-comp-tabs">
            <button class="rk-comp-tab-btn active" data-target="valve-2">
                <div class="rk-tab-icon-box">
                    <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>
                <h3>Zawór 2-drogowy (Wtryskowy)</h3>
            </button>
            <button class="rk-comp-tab-btn" data-target="valve-3">
                <div class="rk-tab-icon-box">
                    <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 15 8 22 9 17 14 18.5 21 12 17.5 5.5 21 7 14 2 9 9 8 12 2"></polygon></svg>
                </div>
                <h3>Zawór 3-drogowy (Mieszający)</h3>
            </button>
        </div>

        <div class="rk-comp-content-area">
            
            <div id="valve-2" class="rk-comp-panel active">
                <div class="rk-spec-grid">
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Zasada regulacji</span>
                        <span class="rk-spec-value" style="color: var(--rk-comp-teal) !important;">Dławienie strumienia (ilościowa)</span>
                        <p class="rk-spec-desc">Działa jak zawór regulacyjny na dopływie gorącej wody ze źródła.</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Współczynnik K<sub>vs</sub></span>
                        <span class="rk-spec-value">1.0 – 2.5 m&sup3;/h</span>
                        <p class="rk-spec-desc">Maksymalna obsługiwana powierzchnia: <strong>do 120 m&sup2;</strong> (zależnie od rozstawu).</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Wpływ na obieg pierwotny</span>
                        <span class="rk-spec-value">Zmienny (Dławi kocioł)</span>
                        <p class="rk-spec-desc">Zamykanie zaworu ogranicza przepływ przez źródło ciepła.</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Wymagania i Koszt</span>
                        <span class="rk-spec-value">180 – 350 PLN</span>
                        <p class="rk-spec-desc">Wymaga bypassu z zaworem upustowym. Powszechny w gotowych grupach do <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczy</a>.</p>
                    </div>
                </div>
            </div>

            <div id="valve-3" class="rk-comp-panel">
                <div class="rk-spec-grid">
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Zasada regulacji</span>
                        <span class="rk-spec-value" style="color: var(--rk-comp-accent) !important;">Mieszanie w korpusie (jakościowa)</span>
                        <p class="rk-spec-desc">Łączenie strumienia gorącego i powrotnego wewnątrz zaworu.</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Współczynnik K<sub>vs</sub></span>
                        <span class="rk-spec-value">2.5 – 6.3 m&sup3;/h</span>
                        <p class="rk-spec-desc">Maksymalna obsługiwana powierzchnia: <strong>powyżej 300 m&sup2;</strong> (brak ograniczeń).</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Wpływ na obieg pierwotny</span>
                        <span class="rk-spec-value">Stały (Niezależny)</span>
                        <p class="rk-spec-desc">Zawór nie ogranicza hydraulicznie głównego źródła ciepła.</p>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-label">Wymagania i Koszt</span>
                        <span class="rk-spec-value">300 – 650 PLN</span>
                        <p class="rk-spec-desc">Często wymaga <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a> lub bufora ciepła. Cena bez siłownika.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-comp-mobile-accordion">
        
        <button class="rk-mob-comp-btn active" data-mob="valve-2">
            <div class="rk-tab-icon-box" style="width: 36px; height: 36px; background: var(--rk-comp-teal); color: #fff;">
                <svg width="18" height="18" 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></svg>
            </div>
            <h3>Zawór 2-drogowy</h3>
            <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width: 20px;"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-comp-content active" id="mob-valve-2">
            <div class="rk-spec-grid">
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Zasada regulacji</span>
                    <span class="rk-spec-value" style="color: var(--rk-comp-teal) !important;">Dławienie (ilościowa)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Kvs / Powierzchnia</span>
                    <span class="rk-spec-value">1.0 – 2.5 m&sup3;/h (do 120 m&sup2;)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Wpływ na kocioł</span>
                    <span class="rk-spec-value">Zmienny (Dławi przepływ)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Wymogi / Koszt</span>
                    <span class="rk-spec-value">Bypass | 180 – 350 PLN</span>
                </div>
            </div>
        </div>

        <button class="rk-mob-comp-btn" data-mob="valve-3">
            <div class="rk-tab-icon-box" style="width: 36px; height: 36px; background: var(--rk-comp-accent); color: #fff;">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15 8 22 9 17 14 18.5 21 12 17.5 5.5 21 7 14 2 9 9 8 12 2"></polygon></svg>
            </div>
            <h3>Zawór 3-drogowy</h3>
            <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width: 20px;"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-comp-content" id="mob-valve-3">
            <div class="rk-spec-grid">
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Zasada regulacji</span>
                    <span class="rk-spec-value" style="color: var(--rk-comp-accent) !important;">Mieszanie (jakościowa)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Kvs / Powierzchnia</span>
                    <span class="rk-spec-value">2.5 – 6.3 m&sup3;/h (> 300 m&sup2;)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Wpływ na kocioł</span>
                    <span class="rk-spec-value">Stały (Niezależny)</span>
                </div>
                <div class="rk-spec-card">
                    <span class="rk-spec-label">Wymogi / Koszt</span>
                    <span class="rk-spec-value"><a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">Sprzęgło hydr.</a> | 300 – 650 PLN</span>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-expert-recommendation">
        <div class="rk-expert-shield">
            <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 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><polyline points="9 12 11 14 15 10"></polyline></svg>
        </div>
        <div class="rk-rec-text">
            <h4>Rekomendacja inżynierska</h4>
            <p>Dla standardowego domu jednorodzinnego o powierzchni <strong>120–150 m&sup2;</strong> (parter podłogówka, piętro grzejniki), najbezpieczniejszym rozwiązaniem jest <strong>zawór 3-drogowy</strong> zamontowany za <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgłem hydraulicznym</a>. Zapobiega to zakłócaniu się pompy kotłowej i <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej podłogówki</a>.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP
    var deskBtns = document.querySelectorAll('.rk-comp-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-comp-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Reset
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Activate
            this.classList.add('active');
            var panel = document.getElementById(targetId);
            if(panel !== null) {
                panel.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-comp-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob');
            var contentBlock = document.getElementById('mob-' + targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijamy wszystko
            var allMobBtns = document.querySelectorAll('.rk-mob-comp-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-comp-content');
            
            allMobBtns.forEach(function(b) { 
                b.classList.remove('active'); 
                b.querySelector('.rk-mob-chevron').style.transform = 'rotate(0deg)';
            });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Jeśli nie był rozwinięty, rozwijamy
            if(isAlreadyActive === false) {
                this.classList.add('active');
                this.querySelector('.rk-mob-chevron').style.transform = 'rotate(180deg)';
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset dla izolacji od motywu WP */
#rk-checklista-montazowa,
#rk-checklista-montazowa * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-chk-dark: #0f172a;
    --rk-chk-cyan: #06b6d4;
    --rk-chk-cyan-light: #ecfeff;
    --rk-chk-cyan-border: #a5f3fc;
    --rk-chk-text: #334155;
    --rk-chk-gray: #64748b;
    --rk-chk-bg: #ffffff;
    --rk-chk-border: #e2e8f0;
}

.rk-chk-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-chk-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(6, 182, 212, 0.15);
    border: 1px solid var(--rk-chk-cyan-border);
    overflow: hidden;
}

/* Nagłówek procedury */
.rk-chk-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-chk-dark) 0%, #164e63 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    position: relative;
    border-bottom: 4px solid var(--rk-chk-cyan);
}

.rk-chk-icon {
    width: 64px;
    height: 64px;
    background: rgba(6, 182, 212, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #22d3ee;
    flex-shrink: 0;
    border: 1px solid rgba(34, 211, 238, 0.3);
}

.rk-chk-header-text h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-chk-header-text p {
    font-size: 15px !important;
    color: #cffafe !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Moduł Interaktywny (Desktop) */
.rk-chk-interactive {
    display: flex;
    background: #f8fafc;
}

/* Lista Kroków (Sidebar) */
.rk-chk-sidebar {
    width: 350px;
    background: #ffffff;
    border-right: 1px solid var(--rk-chk-border);
    display: flex;
    flex-direction: column;
}

.rk-chk-step-btn {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-chk-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

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

.rk-chk-step-btn.active {
    background: var(--rk-chk-cyan-light);
}

.rk-chk-step-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-chk-cyan);
}

.rk-step-badge {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #e2e8f0;
    color: var(--rk-chk-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-chk-step-btn.active .rk-step-badge {
    background: var(--rk-chk-cyan);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(6, 182, 212, 0.3);
}

.rk-chk-step-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-chk-dark) !important;
    margin: 0 !important;
}

/* Wyświetlacz Treści (Prawa Strona Desktop) */
.rk-chk-content-area {
    flex: 1;
    padding: 40px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-chk-panel {
    display: none;
    animation: fadeInChk 0.4s ease forwards;
    background: #ffffff;
    border: 1px solid var(--rk-chk-cyan-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
}

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

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

.rk-panel-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px dashed var(--rk-chk-border);
}

.rk-panel-header h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-chk-dark) !important;
    margin: 0 !important;
}

.rk-chk-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-chk-text) !important;
    margin: 0 !important;
}

.rk-chk-panel a {
    color: #0891b2 !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Sekcja Mobile (Akordeon) */
.rk-chk-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-chk-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-chk-icon { width: 48px; height: 48px; }
    .rk-chk-header-text h2 { font-size: 22px !important; }
    
    /* Ukrycie widoku desktop */
    .rk-chk-interactive { display: none; }
    
    /* Aktywacja Akordeonu Mobile */
    .rk-chk-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-chk-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-chk-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-chk-btn.active {
        background: var(--rk-chk-cyan-light);
    }
    
    .rk-mob-chk-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-chk-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-chk-icon {
        width: 20px;
        height: 20px;
        color: var(--rk-chk-cyan);
        transition: transform 0.3s;
    }
    
    .rk-mob-chk-btn.active .rk-mob-chk-icon {
        transform: rotate(180deg);
    }
    
    .rk-mob-chk-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-chk-cyan);
    }
    
    .rk-mob-chk-content.active {
        display: block;
    }

    .rk-chk-panel {
        box-shadow: none;
        padding: 20px;
        border-radius: 12px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-montaz",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Montaż, regulacja i praktyczne wskazówki",
    "description": "Profesjonalna lista kontrolna (protokół odbioru) dla instalatorów i inwestorów. Dowiedz się, jak poprawnie zamontować fabryczne zestawy mieszające do podłogówki.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-montaz",
    "name": "Protokół instalacyjny i regulacyjny węzła mieszającego",
    "description": "Ustrukturyzowany zbiór reguł technicznych i wytycznych montażowych dla pomp i zaworów przy rozdzielaczach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "fabryczne zestawy mieszająco-pompowe ogrzewanie",
      "montaż zaworu na szynie powrotnej rozdzielacza",
      "czujnik temperatury ntc do podłogówki tuleja",
      "ograniczenie maksymalnej temperatury zasilania nakrętką",
      "sterowanie pogodowe integracja z siłownikiem"
    ],
    "measurementTechnique": "Wizualna kontrola kierunków przepływu oraz weryfikacja termodynamiczna poprawnego osadzenia kapilar i blokad mechanicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Lokalizacja: Montaż na szynie powrotnej (zimnej).",
        "Kierunek przepływu: Obowiązkowa zgodność ze strzałkami na korpusie pompy i zaworu.",
        "Czujniki: Głębiej osadzone NTC w tulejach pomiarowych.",
        "Regulacja: Blokada górnego limitu temperatury zasilania jako bezpiecznik wylewki.",
        "Integracja: Podłączenie sterownika pogodowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-montaz",
    "name": "Interaktywna Lista Kontrolna Montażu Ogrzewania",
    "description": "Narzędzie krok po kroku (Checklista) pomagające w audycie i odbiorze technicznym prac hydraulicznych w obrębie rozdzielacza podłogówki.",
    "applicationCategory": "UtilityApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chk-container" id="rk-checklista-montazowa">
    
    <div class="rk-chk-header">
        <div class="rk-chk-icon">
            <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="M14 2H6a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V8l-6-6z"></path>
                <path d="M14 3v5h5M16 13H8M16 17H8M10 9H8"></path>
            </svg>
        </div>
        <div class="rk-chk-header-text">
            <h2>Montaż, regulacja i praktyczne wskazówki</h2>
            <p>Gotowe, fabryczne zestawy mieszająco-pompowe znacząco ułatwiają montaż hydrauliki. Zweryfikuj poniższe 5 punktów, aby zyskać gwarancję bezawaryjnej pracy.</p>
        </div>
    </div>

    <div class="rk-chk-interactive">
        <div class="rk-chk-sidebar">
            <button class="rk-chk-step-btn active" data-chk="chk-1">
                <div class="rk-step-badge">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                </div>
                <h3>Lokalizacja w układzie</h3>
            </button>
            <button class="rk-chk-step-btn" data-chk="chk-2">
                <div class="rk-step-badge">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                </div>
                <h3>Kierunek przepływu</h3>
            </button>
            <button class="rk-chk-step-btn" data-chk="chk-3">
                <div class="rk-step-badge">
                    <svg width="18" height="18" 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>
                <h3>Czujniki temperatury</h3>
            </button>
            <button class="rk-chk-step-btn" data-chk="chk-4">
                <div class="rk-step-badge">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
                </div>
                <h3>Regulacja wstępna</h3>
            </button>
            <button class="rk-chk-step-btn" data-chk="chk-5">
                <div class="rk-step-badge">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                <h3>Integracja ze sterownikiem</h3>
            </button>
        </div>

        <div class="rk-chk-content-area">
            
            <div id="chk-1" class="rk-chk-panel active">
                <div class="rk-panel-header">
                    <h4>Lokalizacja węzła</h4>
                </div>
                <p>Kompaktowe jednostki zawierające zawór i pompę montuje się zwykle na przewrocie powrotnym rozdzielacza (na tzw. „szynie zimnej”). Zapewnia to lepsze parametry pracy dla pompy i chroni ją przed ekstremalnie wysokimi temperaturami zasilania.</p>
            </div>

            <div id="chk-2" class="rk-chk-panel">
                <div class="rk-panel-header">
                    <h4>Kierunek przepływu</h4>
                </div>
                <p>Należy bezwzględnie przestrzegać strzałek oznaczeń wytłoczonych na korpusie mosiężnym zaworu oraz żeliwnym pompy. Błędny kierunek spowoduje, że <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry (przepływomierze)</a> na rozdzielaczu nie wykażą żadnego ruchu wody (wartość 0 l/min).</p>
            </div>

            <div id="chk-3" class="rk-chk-panel">
                <div class="rk-panel-header">
                    <h4>Czujniki temperatury</h4>
                </div>
                <p>W mosiężnych tulejach pomiarowych (zanurzeniowych) muszą być do samego końca, poprawnie zainstalowane czujniki (kapilarne lub elektroniczne NTC). Jeśli <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujnik temperatury</a> będzie źle osadzony, zawór nie zareaguje na przegrzewanie się instalacji.</p>
            </div>

            <div id="chk-4" class="rk-chk-panel">
                <div class="rk-panel-header">
                    <h4>Regulacja wstępna (Bezpieczeństwo)</h4>
                </div>
                <p>Na wielu zaworach pod pokrętłem znajduje się ukryta nakrętka ograniczająca maksymalne otwarcie. Pozwala to na sztywno ustawić górny limit (np. 45°C). Stanowi to mechaniczny bezpiecznik chroniący przed wpuszczeniem wrzątku na instalację i przekroczeniem <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej dopuszczalnej temperatury zasilania podłogówki</a>.</p>
            </div>

            <div id="chk-5" class="rk-chk-panel">
                <div class="rk-panel-header">
                    <h4>Integracja ze sterownikiem</h4>
                </div>
                <p>Przy wykorzystaniu siłownika elektronicznego 3-punktowego, niezbędne jest jego poprawne elektryczne podłączenie i skonfigurowanie nadrzędnego modułu automatyki. To centralny <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">sterownik (regulator) pogodowy</a> będzie zarządzał mikrokrokami siłownika na podstawie krzywej grzewczej.</p>
            </div>

        </div>
    </div>

    <div class="rk-chk-mobile-accordion">
        
        <button class="rk-mob-chk-btn active" data-mob-chk="mob-chk-1">
            <div class="rk-step-badge" style="background:var(--rk-chk-cyan); color:#fff; width:28px; height:28px;"><span style="font-weight:900; font-size:14px;">1</span></div>
            <h3>Lokalizacja w układzie</h3>
            <svg class="rk-mob-chk-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-chk-content active" id="mob-chk-1">
            <div class="rk-chk-panel active" style="border:none; padding:0;">
                <p>Montuje się je zwykle na przewrocie powrotnym rozdzielacza (na tzw. „szynie zimnej”), co chroni osprzęt przed wysokimi temperaturami.</p>
            </div>
        </div>

        <button class="rk-mob-chk-btn" data-mob-chk="mob-chk-2">
            <div class="rk-step-badge" style="width:28px; height:28px;"><span style="font-weight:900; font-size:14px;">2</span></div>
            <h3>Kierunek przepływu</h3>
            <svg class="rk-mob-chk-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-chk-content" id="mob-chk-2">
            <div class="rk-chk-panel active" style="border:none; padding:0;">
                <p>Należy bezwzględnie przestrzegać strzałek na korpusie zaworu. W przeciwnym razie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry</a> nie pokażą przepływu.</p>
            </div>
        </div>

        <button class="rk-mob-chk-btn" data-mob-chk="mob-chk-3">
            <div class="rk-step-badge" style="width:28px; height:28px;"><span style="font-weight:900; font-size:14px;">3</span></div>
            <h3>Czujniki temperatury</h3>
            <svg class="rk-mob-chk-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-chk-content" id="mob-chk-3">
            <div class="rk-chk-panel active" style="border:none; padding:0;">
                <p>W tulejach pomiarowych muszą być głęboko i prawidłowo zainstalowane <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujniki NTC</a> lub kapilary termostatyczne.</p>
            </div>
        </div>

        <button class="rk-mob-chk-btn" data-mob-chk="mob-chk-4">
            <div class="rk-step-badge" style="width:28px; height:28px;"><span style="font-weight:900; font-size:14px;">4</span></div>
            <h3>Regulacja wstępna</h3>
            <svg class="rk-mob-chk-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-chk-content" id="mob-chk-4">
            <div class="rk-chk-panel active" style="border:none; padding:0;">
                <p>Nakrętka pod pokrętłem ogranicza maksymalne otwarcie, ustawiając bezpieczny, górny limit i chroniąc wylewkę przed wrzątkiem.</p>
            </div>
        </div>

        <button class="rk-mob-chk-btn" data-mob-chk="mob-chk-5">
            <div class="rk-step-badge" style="width:28px; height:28px;"><span style="font-weight:900; font-size:14px;">5</span></div>
            <h3>Integracja ze sterownikiem</h3>
            <svg class="rk-mob-chk-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-chk-content" id="mob-chk-5">
            <div class="rk-chk-panel active" style="border:none; padding:0;">
                <p>Poprawne podłączenie elektryczne do <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">sterownika pogodowego</a>, który zarządza ruchem obrotowym siłownika.</p>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Obsługa DESKTOP
    var deskBtns = document.querySelectorAll('.rk-chk-step-btn');
    var deskPanels = document.querySelectorAll('.rk-chk-content-area .rk-chk-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-chk');
            
            // Czyszczenie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panelToShow = document.getElementById(targetId);
            if(panelToShow !== null) {
                panelToShow.classList.add('active');
            }
        });
    });

    // Obsługa MOBILE (Pionowy Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-chk-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-chk');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich
            var allMobBtns = document.querySelectorAll('.rk-mob-chk-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-chk-content');
            var allBadges = document.querySelectorAll('.rk-mob-chk-btn .rk-step-badge');
            
            allMobBtns.forEach(function(b) { b.classList.remove('active'); });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });
            allBadges.forEach(function(badge) {
                badge.style.background = '#e2e8f0';
                badge.style.color = 'var(--rk-chk-gray)';
            });

            // Rozwijanie wybranego (jeśli nie był otwarty)
            if(isAlreadyActive === false) {
                this.classList.add('active');
                var activeBadge = this.querySelector('.rk-step-badge');
                if (activeBadge !== null) {
                    activeBadge.style.background = 'var(--rk-chk-cyan)';
                    activeBadge.style.color = '#ffffff';
                }
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset typografii chroniący przed nadpisaniem przez motyw */
#rk-roi-symulator,
#rk-roi-symulator * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-blue: #0284c7;
    --rk-roi-blue-light: #f0f9ff;
    --rk-roi-green: #10b981;
    --rk-roi-green-bg: #ecfdf5;
    --rk-roi-red: #ef4444;
    --rk-roi-red-bg: #fef2f2;
    --rk-roi-gold: #f59e0b;
    --rk-roi-text: #334155;
    --rk-roi-gray: #64748b;
    --rk-roi-bg: #ffffff;
    --rk-roi-border: #e2e8f0;
}

.rk-roi-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(16, 185, 129, 0.15);
    border: 1px solid #a7f3d0;
    overflow: hidden;
}

/* Sekcja Nagłówkowa z wyliczeniem ROI */
.rk-roi-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-roi-dark) 0%, #064e3b 100%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    position: relative;
}

.rk-roi-title-row {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-roi-icon {
    width: 64px;
    height: 64px;
    background: rgba(16, 185, 129, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #34d399;
    flex-shrink: 0;
    border: 1px solid rgba(52, 211, 153, 0.3);
}

.rk-roi-header h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

/* Widget finansowy */
.rk-roi-financials {
    display: flex;
    gap: 20px;
}

.rk-roi-badge {
    flex: 1;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-roi-badge-val {
    font-size: 32px !important;
    font-weight: 900 !important;
    color: #34d399 !important;
    line-height: 1 !important;
}

.rk-roi-badge-desc {
    font-size: 14px !important;
    color: #e2e8f0 !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

/* Panel Symulatora */
.rk-roi-simulator {
    padding: 40px;
    background: #f8fafc;
}

.rk-sim-title {
    text-align: center;
    margin-bottom: 25px;
}

.rk-sim-title h3 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-roi-dark) !important;
    margin: 0 0 10px 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

.rk-sim-title p {
    font-size: 15px !important;
    color: var(--rk-roi-gray) !important;
    margin: 0 !important;
}

/* Przyciski Warunków Pogodowych */
.rk-weather-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-weather-btn {
    flex: 1;
    padding: 18px 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-roi-border);
    background: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: all 0.3s;
}

.rk-weather-btn span {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--rk-roi-dark) !important;
}

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

.rk-weather-btn.active[data-temp="warm"] {
    border-color: var(--rk-roi-gold);
    background: #fffbeb;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.2);
}
.rk-weather-btn.active[data-temp="warm"] span { color: #b45309 !important; }

.rk-weather-btn.active[data-temp="cold"] {
    border-color: var(--rk-roi-blue);
    background: var(--rk-roi-blue-light);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
}
.rk-weather-btn.active[data-temp="cold"] span { color: #0369a1 !important; }

/* Ekran Wyników Symulacji */
.rk-sim-results {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

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

.rk-tech-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
}

.rk-tech-card.card-old::before { background: var(--rk-roi-gray); }
.rk-tech-card.card-new::before { background: var(--rk-roi-green); }

.rk-tech-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-roi-border);
}

.rk-tech-header h4 {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: var(--rk-roi-dark) !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

.rk-tech-desc {
    font-size: 14px !important;
    color: var(--rk-roi-gray) !important;
    margin: 0 0 20px 0 !important;
    line-height: 1.6 !important;
}

.rk-tech-desc a {
    color: var(--rk-roi-blue) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border-bottom: 1px dashed var(--rk-roi-blue);
}

/* Dynamiczny status */
.rk-status-box {
    padding: 20px;
    border-radius: 12px;
    font-size: 15px !important;
    line-height: 1.6 !important;
    font-weight: 600 !important;
    min-height: 130px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.status-danger {
    background: var(--rk-roi-red-bg);
    color: #991b1b !important;
    border: 1px solid #fecaca;
}

.status-warning {
    background: #fffbeb;
    color: #92400e !important;
    border: 1px solid #fde68a;
}

.status-success {
    background: var(--rk-roi-green-bg);
    color: #065f46 !important;
    border: 1px solid #a7f3d0;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-roi-header { padding: 25px 20px; }
    .rk-roi-financials { flex-direction: column; gap: 15px; }
    .rk-roi-badge { padding: 15px; }
    .rk-roi-badge-val { font-size: 26px !important; }
    
    .rk-roi-simulator { padding: 25px 20px; }
    
    /* Wymuszony pionowy układ dla przycisków na mobile */
    .rk-weather-controls { flex-direction: column; gap: 12px; }
    .rk-sim-results { grid-template-columns: 1fr; gap: 20px; }
    
    .rk-tech-card { padding: 20px; }
    .rk-status-box { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-oplacalnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Sterowanie termostatyczne czy siłownik elektroniczny – Analiza opłacalności",
    "description": "Porównanie efektywności energetycznej zaworu mieszającego ze sterowaniem stałowartościowym oraz dynamicznym sterowaniem pogodowym. ROI z inwestycji w automatykę.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-oplacalnosc",
    "name": "Analiza efektywności sterowania pogodowego zaworu mieszającego",
    "description": "Dane pomiarowe obrazujące zyski energetyczne i finansowe płynące z zastąpienia głowicy z kapilarą zaawansowanym siłownikiem 3-punktowym 230V podłączonym do regulatora pogodowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie pogodowe w ogrzewaniu podłogowym zyski",
      "siłownik elektroniczny 3-punktowy 230V zaworu",
      "głowica termostatyczna z kapilarą straty energii",
      "krzywa grzewcza w ogrzewaniu podłogowym zasada działania",
      "zwrot z inwestycji w ogrzewanie podłogowe roi"
    ],
    "measurementTechnique": "Obliczenia porównawcze redukcji zużycia energii cieplnej (w PLN) przy uwzględnieniu II i III strefy klimatycznej w Polsce w perspektywie 4 sezonów grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Głowica termostatyczna: Powoduje błędy eksploatacyjne, przegrzewa dom w cieplejsze dni i wychładza przy dużym mrozie z powodu braku antycypacji pogody.",
        "Siłownik z automatyką: Obniża temperaturę na 28°C przy +5°C, podbija do 42°C przy -20°C, dając 15-25% oszczędności."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-oplacalnosc",
    "name": "Symulator Reakcji Pogodowej Zaworu Mieszającego",
    "description": "Interaktywny widget symulujący fizyczne zachowanie dwóch typów armatury regulacyjnej w skrajnych warunkach pogodowych (+10°C oraz -15°C).",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires modern browser with JS execution",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="rk-modul-oplacalnosci">
    
    <div class="rk-roi-header">
        <div class="rk-roi-title-row">
            <div class="rk-roi-icon">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <line x1="12" y1="1" x2="12" y2="23"></line>
                    <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
                </svg>
            </div>
            <h2>Sterowanie termostatyczne czy siłownik elektroniczny – Analiza opłacalności</h2>
        </div>
        
        <div class="rk-roi-financials">
            <div class="rk-roi-badge">
                <div class="rk-roi-badge-val">15-25%</div>
                <div class="rk-roi-badge-desc">Rocznej oszczędności na zużyciu paliwa przez źródło ciepła.</div>
            </div>
            <div class="rk-roi-badge">
                <div class="rk-roi-badge-val" style="color: #60a5fa !important;">3-4 lata</div>
                <div class="rk-roi-badge-desc">Pełny <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" style="color: #60a5fa !important;">zwrot z inwestycji</a> (ok. 800-1200 PLN) w polskim klimacie.</div>
            </div>
        </div>
    </div>

    <div class="rk-roi-simulator">
        <div class="rk-sim-title">
            <h3>Symulator Reakcji Pogodowej</h3>
            <p>Zrozum fizykę układu. Kliknij przycisk pogody i zobacz, co stanie się z Twoją podłogą.</p>
        </div>

        <div class="rk-weather-controls">
            <button class="rk-weather-btn active" data-temp="warm">
                <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>
                <span>Nagle +10°C (Ocieplenie)</span>
            </button>
            <button class="rk-weather-btn" data-temp="cold">
                <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 15 8 22 9 17 14 18.5 21 12 17.5 5.5 21 7 14 2 9 9 8 12 2"></polygon><line x1="12" y1="2" x2="12" y2="22"></line></svg>
                <span>Silny Mróz -15°C (Oziębienie)</span>
            </button>
        </div>

        <div class="rk-sim-results">
            
            <div class="rk-tech-card card-old">
                <div class="rk-tech-header">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-roi-gray)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <h4>Głowica Termostatyczna z kapilarą</h4>
                </div>
                <p class="rk-tech-desc">Działa w oparciu o sztywną nastawę pokrętła. <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">Termostat</a> bezwzględnie dąży do utrzymania wpisanej wartości, np. 35°C, ignorując słońce czy mróz za oknem.</p>
                <div class="rk-status-box" id="sim-old-status">
                    </div>
            </div>

            <div class="rk-tech-card card-new">
                <div class="rk-tech-header">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-roi-green)" 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>
                    <h4>Siłownik Elektroniczny (Pogodowy)</h4>
                </div>
                <p class="rk-tech-desc">Zasilany napięciem 230V, analizuje temperaturę zewnętrzną i dynamicznie steruje zaworem według zaprogramowanej <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>.</p>
                <div class="rk-status-box status-success" id="sim-new-status">
                    </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var weatherBtns = document.querySelectorAll('.rk-weather-btn');
    var oldStatusBox = document.getElementById('sim-old-status');
    var newStatusBox = document.getElementById('sim-new-status');

    // Funkcja odświeżająca teksty w zależności od aktywnego stanu
    function updateSimulation(tempType) {
        var isWarm = (tempType === 'warm');

        // Logika warunkowa bezpieczna (brak operatorów "AND/OR")
        if (isWarm) {
            oldStatusBox.className = 'rk-status-box status-danger';
            oldStatusBox.innerHTML = '<strong>Błąd eksploatacyjny! Straty!</strong><br>Zawór wciąż tłoczy na posadzkę zadane 35°C. Dom oddaje zbyt dużo ciepła – staje się nieznośnie przegrzany, a energia jest bezpowrotnie marnowana.';

            newStatusBox.innerHTML = '<strong>Oszczędność w toku...</strong><br><a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" style="color: #065f46; font-weight:800; text-decoration:underline;">Automatyka pogodowa</a> wykrywa ciepło na zewnątrz. Siłownik przymyka zawór i na podłogówkę idzie zaledwie 28°C. Maksymalna oszczędność paliwa.';
        } else {
            oldStatusBox.className = 'rk-status-box status-warning';
            oldStatusBox.innerHTML = '<strong>Niedogrzanie budynku!</strong><br>Mróz uderza w ściany, a stary zawór wciąż twardo utrzymuje swoje 35°C, które okazuje się stanowczo za niskie. W domu robi się bardzo zimno z powodu braku zysków operacyjnych.';

            newStatusBox.innerHTML = '<strong>Komfort utrzymany.</strong><br>Regulator pogodowy przewidział wychłodzenie murów. System automatycznie przesuwa pozycję zawieradła i podnosi parametr podłogi do maksymalnych, bezpiecznych 42°C bez Twojej ingerencji.';
        }
    }

    // Inicjalizacja stanu startowego
    updateSimulation('warm');

    // Podpięcie zdarzeń kliknięcia
    weatherBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var tempType = this.getAttribute('data-temp');
            
            // Reset stylów
            weatherBtns.forEach(function(b) { 
                b.classList.remove('active'); 
            });
            
            // Dodanie klasy active
            this.classList.add('active');
            
            // Wywołanie zmiany treści
            updateSimulation(tempType);
        });
    });
});
</script>



<style>
/* Twardy reset typografii dla izolacji od motywu WP */
#rk-algorytm-kvs,
#rk-algorytm-kvs * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-blue: #0284c7;
    --rk-algo-blue-light: #f0f9ff;
    --rk-algo-blue-border: #bae6fd;
    --rk-algo-text: #334155;
    --rk-algo-gray: #64748b;
    --rk-algo-bg: #ffffff;
    --rk-algo-step: #e0f2fe;
}

.rk-algo-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-algo-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-algo-blue-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-algo-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, #0c4a6e 0%, var(--rk-algo-blue) 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
}

.rk-algo-header-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-algo-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-algo-header-content p {
    font-size: 16px !important;
    color: #e0f2fe !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Moduł Interaktywny - Kroki */
.rk-algo-dashboard {
    display: flex;
    background: #f8fafc;
}

/* Sidebar z krokami (Desktop) */
.rk-algo-sidebar {
    width: 320px;
    background: #ffffff;
    border-right: 1px solid var(--rk-algo-blue-border);
    display: flex;
    flex-direction: column;
}

.rk-algo-step-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-algo-step-btn:hover {
    background: #f8fafc;
}

.rk-algo-step-btn.active {
    background: var(--rk-algo-blue-light);
}

.rk-algo-step-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-algo-blue);
}

.rk-step-number {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e2e8f0;
    color: var(--rk-algo-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900 !important;
    font-size: 16px !important;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-algo-step-btn.active .rk-step-number {
    background: var(--rk-algo-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

.rk-algo-step-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-algo-dark) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Obszar wyświetlania algorytmu */
.rk-algo-content-area {
    flex: 1;
    padding: 35px 40px;
    background: #f8fafc;
}

.rk-algo-panel {
    display: none;
    animation: slideInAlgo 0.4s ease forwards;
}

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

@keyframes slideInAlgo {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}

.rk-algo-panel h4 {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: var(--rk-algo-dark) !important;
    margin: 0 0 15px 0 !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--rk-algo-blue-border);
}

.rk-algo-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-algo-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-algo-panel a {
    color: var(--rk-algo-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Boxy matematyczne (Wzory) */
.rk-math-box {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 20px;
    margin: 20px 0;
    text-align: center;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-math-formula {
    font-family: 'Courier New', Courier, monospace !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--rk-algo-dark) !important;
    letter-spacing: 1px;
}

.rk-math-result {
    color: var(--rk-algo-blue) !important;
    font-size: 22px !important;
}

.rk-math-legend {
    margin-top: 15px;
    text-align: left;
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    font-size: 14px !important;
    color: var(--rk-algo-gray) !important;
}

.rk-math-legend ul {
    margin: 0 !important;
    padding-left: 20px !important;
}

.rk-math-legend li {
    margin-bottom: 5px !important;
}

/* Cytat Autorski */
.rk-expert-quote {
    margin: 0;
    padding: 35px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-algo-blue-border);
    display: flex;
    align-items: center;
    gap: 25px;
}

.rk-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--rk-algo-blue-light);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
    flex-shrink: 0;
}

.rk-expert-text {
    position: relative;
}

.rk-expert-badge {
    display: inline-block;
    background: #fee2e2;
    color: #b91c1c;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px;
    margin-bottom: 8px !important;
}

.rk-expert-text p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-algo-text) !important;
    font-style: italic;
    margin: 0 0 10px 0 !important;
}

.rk-expert-name {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: var(--rk-algo-dark) !important;
}

/* Układ Mobile (Pionowy Akordeon) */
.rk-algo-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-algo-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-algo-header-icon { width: 48px; height: 48px; }
    .rk-algo-header-content h2 { font-size: 22px !important; }
    
    /* Ukrycie widoku desktopowego */
    .rk-algo-dashboard { display: none; }
    
    /* Aktywacja akordeonu */
    .rk-algo-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-step-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-algo-blue-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-step-btn.active { background: var(--rk-algo-blue-light); }
    
    .rk-mob-step-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-algo-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-algo-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-algo-blue);
    }
    
    .rk-mob-algo-content.active { display: block; }
    
    .rk-math-formula { font-size: 16px !important; }
    .rk-math-result { font-size: 18px !important; }
    
    .rk-expert-quote { padding: 25px 20px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak prawidłowo dobrać parametry techniczne zaworu mieszającego? Algorytm obliczeniowy",
    "description": "Profesjonalny, 5-etapowy algorytm inżynierski pozwalający obliczyć współczynnik przepływu Kvs zaworu mieszającego na podstawie projektowego obciążenia cieplnego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-algorytm",
    "name": "Katalog Wzorów Hydraulicznych - Dobór Kvs",
    "description": "Zestawienie wzorów matematycznych i parametrów fizycznych niezbędnych do wyliczenia przepływów objętościowych i masowych w pętlach grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć kvs zaworu mieszającego wzór",
      "dobór zaworu trójdrogowego do rozdzielacza podłogówki",
      "wzór na przepływ wody w ogrzewaniu podłogowym m3/h",
      "zbyt mały zawór mieszający objawy niedogrzania",
      "obciążenie cieplne ozc a dobór armatury"
    ],
    "measurementTechnique": "Obliczenia termodynamiczne oparte na cieple właściwym wody, projektowym spadku temperatury i zakładanym spadku ciśnienia na elemencie dławiącym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzór na przepływ objętościowy (Vprz): Vprz = P / (c * ρ * ΔT)",
        "Wzór na autorytet zaworu (Kvs): Kvs = Vprz * √(1 / Δpzaw)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-algorytm",
    "name": "Interaktywny Przewodnik Obliczeniowy Kvs",
    "description": "Edukacyjna aplikacja krok po kroku prezentująca proces doboru technicznego zaworu mieszającego, dedykowana inżynierom i świadomym inwestorom.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container" id="rk-algorytm-kvs">
    
    <div class="rk-algo-header">
        <div class="rk-algo-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect>
                <rect x="9" y="9" width="6" height="6"></rect>
                <line x1="9" y1="1" x2="9" y2="4"></line>
                <line x1="15" y1="1" x2="15" y2="4"></line>
                <line x1="9" y1="20" x2="9" y2="23"></line>
                <line x1="15" y1="20" x2="15" y2="23"></line>
                <line x1="20" y1="9" x2="23" y2="9"></line>
                <line x1="20" y1="14" x2="23" y2="14"></line>
                <line x1="1" y1="9" x2="4" y2="9"></line>
                <line x1="1" y1="14" x2="4" y2="14"></line>
            </svg>
        </div>
        <div class="rk-algo-header-content">
            <h2>Jak prawidłowo dobrać parametry techniczne zaworu mieszającego?</h2>
            <p>Dobór nie może odbywać się „na gwint rury”. Poznaj kompletny algorytm inżynierski obliczania przepływu masowego i przepustowości K<sub>vs</sub>.</p>
        </div>
    </div>

    <div class="rk-algo-dashboard">
        <div class="rk-algo-sidebar">
            <button class="rk-algo-step-btn active" data-step="step-1">
                <div class="rk-step-number">1</div>
                <h3>Wyznaczenie mocy cieplnej obiegu</h3>
            </button>
            <button class="rk-algo-step-btn" data-step="step-2">
                <div class="rk-step-number">2</div>
                <h3>Projektowy spadek temperatury</h3>
            </button>
            <button class="rk-algo-step-btn" data-step="step-3">
                <div class="rk-step-number">3</div>
                <h3>Przepływ objętościowy</h3>
            </button>
            <button class="rk-algo-step-btn" data-step="step-4">
                <div class="rk-step-number">4</div>
                <h3>Współczynnik przepływu zaworu</h3>
            </button>
            <button class="rk-algo-step-btn" data-step="step-5">
                <div class="rk-step-number">5</div>
                <h3>Dobór z katalogu producenta</h3>
            </button>
        </div>

        <div class="rk-algo-content-area">
            
            <div id="step-1" class="rk-algo-panel active">
                <h4>1. Wyznaczenie mocy cieplnej obiegu (P<sub>obl</sub>)</h4>
                <p>Moc ta wynika bezpośrednio z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Projektowego Obciążenia Cieplnego (OZC)</a> wyznaczonego według normy <strong>PN-EN 12831</strong>. To fundamentalny punkt startowy każdej instalacji.</p>
                <div class="rk-math-box">
                    <span class="rk-math-formula">Zapotrzebowanie na moc (P) = <span class="rk-math-result">12 kW</span></span>
                </div>
                <p>W naszym przykładzie przyjmujemy rzeczywistą strefę podłogową całego parteru domu jednorodzinnego, dla którego wyliczono moc 12 kilowatów.</p>
            </div>

            <div id="step-2" class="rk-algo-panel">
                <h4>2. Założenie projektowego spadku temperatury (&Delta;T)</h4>
                <p>Dla ogrzewania płaszczyznowego standardowy, optymalny spadek temperatury (różnica między zasilaniem z rozdzielacza a powrotem) wynosi <strong>od 5 K do 10 K</strong>.</p>
                <div class="rk-math-box">
                    <span class="rk-math-formula">Różnica temperatur (&Delta;T) = <span class="rk-math-result">5 K</span></span>
                </div>
                <p>Przyjmujemy wartość najbardziej komfortową i najczęściej stosowaną w projektach zrównoważonych termicznie z pompami ciepła.</p>
            </div>

            <div id="step-3" class="rk-algo-panel">
                <h4>3. Obliczenie przepływu objętościowego (V<sub>prz</sub>)</h4>
                <p>Stosujemy podstawowy wzór przekształcony z równania wymiany ciepła, aby ustalić ilość wody krążącej w układzie.</p>
                <div class="rk-math-box">
                    <span class="rk-math-formula">V<sub>prz</sub> = P / (c &middot; &rho; &middot; &Delta;T)</span>
                    <br><br>
                    <span class="rk-math-formula">V<sub>prz</sub> = 12 / (4,19 &middot; 5) &approx; <span class="rk-math-result">0,5728 kg/s</span></span>
                </div>
                <div class="rk-math-legend">
                    <ul>
                        <li><strong>P</strong> – moc cieplna (12 kW)</li>
                        <li><strong>c</strong> – ciepło właściwe wody (ok. 4,19 kJ/kg&middot;K)</li>
                        <li><strong>&rho;</strong> – gęstość wody (w uproszczeniu 1 kg/dm&sup3;)</li>
                    </ul>
                </div>
                <p>Po przeliczeniu na metry sześcienne na godzinę (niezbędne do doboru zaworu) otrzymujemy: <strong>V<sub>prz</sub> &approx; 2,06 m&sup3;/h</strong> (ok. 34,3 l/min na cały rozdzielacz).</p>
            </div>

            <div id="step-4" class="rk-algo-panel">
                <h4>4. Obliczenie wymaganego współczynnika K<sub>vs</sub></h4>
                <p>Zawór mieszający musi pracować w optymalnym zakresie tzw. autorytetu zaworu. Średni projektowy spadek ciśnienia na zaworze (&Delta;p<sub>zaw</sub>) przyjmuje się na poziomie <strong>5 kPa (0,05 bar)</strong>, aby uniknąć przeciążenia pompy.</p>
                <div class="rk-math-box">
                    <span class="rk-math-formula">K<sub>vs</sub> = V<sub>prz</sub> &middot; &radic;(1 / &Delta;p<sub>zaw</sub>)</span>
                    <br><br>
                    <span class="rk-math-formula">K<sub>vs</sub> = 2,06 &middot; &radic;(1 / 0,05) = 2,06 &middot; 4,472 &approx; <span class="rk-math-result">9,21 m&sup3;/h</span></span>
                </div>
            </div>

            <div id="step-5" class="rk-algo-panel">
                <h4>5. Dobór zaworu z katalogu producenta</h4>
                <p>Mając matematyczny wynik K<sub>vs</sub> = 9,21 m&sup3;/h, inżynier projektant dobiera z tabeli produktowej producenta armatury najbliższy, <strong>wyższy seryjny współczynnik K<sub>vs</sub></strong>.</p>
                <div class="rk-math-box">
                    <span class="rk-math-formula">Wybrany parametr: <span class="rk-math-result">K<sub>vs</sub> = 10 m&sup3;/h</span></span>
                </div>
                <p>W praktyce wykonawczej odpowiada to najczęściej armaturze o średnicy przyłącza DN32 lub DN40.</p>
            </div>

        </div>
    </div>

    <div class="rk-algo-mobile-accordion">
        
        <button class="rk-mob-step-btn active" data-mob-step="mob-1">
            <div class="rk-step-number">1</div>
            <h3>Wyznaczenie mocy obiegu (P<sub>obl</sub>)</h3>
        </button>
        <div class="rk-mob-algo-content active" id="mob-1">
            <p>Moc zależy od <strong>OZC</strong> budynku. W przykładzie przyjmujemy strefę o zapotrzebowaniu:</p>
            <div class="rk-math-box"><span class="rk-math-formula">P = <span class="rk-math-result">12 kW</span></span></div>
        </div>

        <button class="rk-mob-step-btn" data-mob-step="mob-2">
            <div class="rk-step-number">2</div>
            <h3>Spadek temperatury (&Delta;T)</h3>
        </button>
        <div class="rk-mob-algo-content" id="mob-2">
            <p>Dla podłogówki i pomp ciepła standardowy spadek to:</p>
            <div class="rk-math-box"><span class="rk-math-formula">&Delta;T = <span class="rk-math-result">5 K</span></span></div>
        </div>

        <button class="rk-mob-step-btn" data-mob-step="mob-3">
            <div class="rk-step-number">3</div>
            <h3>Przepływ objętościowy (V<sub>prz</sub>)</h3>
        </button>
        <div class="rk-mob-algo-content" id="mob-3">
            <p>Wyliczamy ilość wody na podstawie fizyki:</p>
            <div class="rk-math-box">
                <span class="rk-math-formula">V<sub>prz</sub> = P / (c &middot; &rho; &middot; &Delta;T)</span><br>
                <span class="rk-math-formula">V<sub>prz</sub> &approx; <span class="rk-math-result">2,06 m&sup3;/h</span></span>
            </div>
        </div>

        <button class="rk-mob-step-btn" data-mob-step="mob-4">
            <div class="rk-step-number">4</div>
            <h3>Współczynnik zaworu (K<sub>vs</sub>)</h3>
        </button>
        <div class="rk-mob-algo-content" id="mob-4">
            <p>Zakładając spadek ciśnienia 0,05 bar:</p>
            <div class="rk-math-box">
                <span class="rk-math-formula">K<sub>vs</sub> = V<sub>prz</sub> &middot; &radic;(1 / &Delta;p)</span><br>
                <span class="rk-math-formula">K<sub>vs</sub> &approx; <span class="rk-math-result">9,21 m&sup3;/h</span></span>
            </div>
        </div>

        <button class="rk-mob-step-btn" data-mob-step="mob-5">
            <div class="rk-step-number">5</div>
            <h3>Dobór z katalogu</h3>
        </button>
        <div class="rk-mob-algo-content" id="mob-5">
            <p>Dobieramy najbliższy wyższy z typoszeregu:</p>
            <div class="rk-math-box"><span class="rk-math-formula">Wybór: <span class="rk-math-result">K<sub>vs</sub> = 10 m&sup3;/h</span></span></div>
        </div>

    </div>

    <div class="rk-expert-quote">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-expert-avatar" loading="lazy">
        <div class="rk-expert-text">
            <span class="rk-expert-badge">Krytyczne ostrzeżenie</span>
            <p>&#8222;Jeśli instalator zamontowałby tutaj popularny zawór '1 cal&#8217; o współczynniku K<sub>vs</sub> = 1,6 m&sup3;/h (często spotykany w gotowych tanich grupach pompowych), spadek ciśnienia wzrósłby drastycznie, pompa obiegowa uległaby przeciążeniu, a realny przepływ w pętlach spadłby o ponad połowę. Dom pozostałby niedogrzany przy jednoczesnym wzroście rachunków za prąd.&#8221;</p>
            <span class="rk-expert-name">Robert Kucharski – Budowa bez ściemy</span>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP (Zakładki)
    var deskBtns = document.querySelectorAll('.rk-algo-step-btn');
    var deskPanels = document.querySelectorAll('.rk-algo-content-area .rk-algo-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-step');
            
            // Reset
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panel = document.getElementById(targetId);
            if(panel !== null) {
                panel.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Pionowy Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-step-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-step');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkiego
            var allMobBtns = document.querySelectorAll('.rk-mob-step-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-algo-content');
            
            allMobBtns.forEach(function(b) { b.classList.remove('active'); });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Otwieranie (jeśli nie był otwarty)
            if(isAlreadyActive === false) {
                this.classList.add('active');
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset typografii chroniący przed motywami WP */
#rk-kiedy-nie-montowac,
#rk-kiedy-nie-montowac * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-ex-dark: #0f172a;
    --rk-ex-amber: #f59e0b;
    --rk-ex-amber-bg: #fffbeb;
    --rk-ex-red: #ef4444;
    --rk-ex-green: #10b981;
    --rk-ex-text: #334155;
    --rk-ex-gray: #64748b;
    --rk-ex-bg: #ffffff;
    --rk-ex-border: #e2e8f0;
}

.rk-ex-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-ex-bg);
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(245, 158, 11, 0.15);
    border: 1px solid #fde68a;
    overflow: hidden;
}

/* Nagłówek Modułu Ostrzegawczego */
.rk-ex-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-ex-dark) 0%, #451a03 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 25px;
    border-bottom: 4px solid var(--rk-ex-amber);
}

.rk-ex-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(245, 158, 11, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fbbf24;
    flex-shrink: 0;
    border: 1px solid rgba(253, 230, 138, 0.3);
}

.rk-ex-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-ex-header-content p {
    font-size: 15px !important;
    color: #fef3c7 !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Interaktywny Panel Wyjątków */
.rk-ex-interactive {
    display: flex;
    background: #f8fafc;
}

/* Menu Boczne (Desktop) */
.rk-ex-sidebar {
    width: 320px;
    background: #ffffff;
    border-right: 1px solid var(--rk-ex-border);
    display: flex;
    flex-direction: column;
}

.rk-ex-tab-btn {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-ex-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-ex-tab-btn:hover {
    background: var(--rk-ex-amber-bg);
}

.rk-ex-tab-btn.active {
    background: var(--rk-ex-amber-bg);
}

.rk-ex-tab-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-ex-amber);
}

.rk-tab-badge {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e2e8f0;
    color: var(--rk-ex-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-ex-tab-btn.active .rk-tab-badge {
    background: var(--rk-ex-amber);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(245, 158, 11, 0.3);
}

.rk-ex-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-ex-dark) !important;
    margin: 0 !important;
}

/* Obszar Treści */
.rk-ex-content-area {
    flex: 1;
    padding: 35px 40px;
    position: relative;
}

.rk-ex-panel {
    display: none;
    animation: fadeInEx 0.4s ease forwards;
}

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

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

.rk-ex-panel-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.rk-ex-panel-header h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-ex-dark) !important;
    margin: 0 !important;
}

.rk-ex-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-ex-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-ex-panel a {
    color: #d97706 !important;
    font-weight: 800 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Alerty wewnątrz paneli */
.rk-alert-box {
    margin-top: 20px;
    padding: 20px;
    border-radius: 12px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-alert-box.alert-negative {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.rk-alert-box.alert-positive {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
}

.rk-alert-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.rk-alert-text strong {
    display: block;
    margin-bottom: 5px;
    font-size: 14px !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-alert-text p {
    font-size: 14px !important;
    margin: 0 !important;
    color: inherit !important;
}

/* Układ Mobile (Pionowy Akordeon) */
.rk-ex-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-ex-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-ex-icon-main { width: 48px; height: 48px; }
    .rk-ex-header-content h2 { font-size: 22px !important; }
    
    .rk-ex-interactive { display: none; }
    
    .rk-ex-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-ex-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-ex-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-ex-btn.active {
        background: var(--rk-ex-amber-bg);
        border-left: 4px solid var(--rk-ex-amber);
    }
    
    .rk-mob-ex-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-ex-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-ex-icon {
        width: 20px;
        height: 20px;
        color: var(--rk-ex-amber);
        transition: transform 0.3s;
    }
    
    .rk-mob-ex-btn.active .rk-mob-ex-icon {
        transform: rotate(180deg);
    }
    
    .rk-mob-ex-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-ex-amber);
    }
    
    .rk-mob-ex-content.active { display: block; }
    
    .rk-alert-box { flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-kiedy-nie-montowac",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Kiedy NIE montować zaworu mieszającego? Oszczędź na zbędnej hydraulice",
    "description": "Audytor zbędnych kosztów. Przewodnik inżynierski wyjaśniający, w jakich układach (np. pompy ciepła) zawór 3-drogowy jest błędem generującym straty hydrauliczne.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-kiedy-nie-montowac",
    "name": "Katalog Wykluczeń Montażowych Armatury Mieszającej",
    "description": "Zestawienie topologii hydraulicznych, w których montaż zaworów dławiących stanowi błąd inżynierski obniżający sprawność układu (COP).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy nie montować zaworu mieszającego",
      "pompa ciepła a zawór 3 drogowy czy potrzebny",
      "bezpośrednie zasilanie podłogówki ze źródła",
      "przewymiarowanie instalacji grzewczej koszty",
      "niepotrzebne opory hydrauliczne bufor"
    ],
    "measurementTechnique": "Analiza wskaźnika COP (Coefficient of Performance) i oporów miejscowych w układach bezkompromisowo niskotemperaturowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wyjątek 1: 100% ogrzewania płaszczyznowego zasilanego bezpośrednio z pompy ciepła sterowanej inwerterowo.",
        "Wyjątek 2: Monowalentne systemy z niskotemperaturowym kotłem gazowym z wysoką modulacją palnika.",
        "Konsekwencja błędu: Montaż zaworu generuje niepotrzebny opór miejscowy, zmuszając pompę obiegową do wytężonej pracy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-kiedy-nie-montowac",
    "name": "Wykrywacz Zbędnych Kosztów Hydraulicznych",
    "description": "Interaktywny klasyfikator instalacji grzewczych, oceniający zasadność stosowania układów podmieszania w oparciu o typ źródła ciepła.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ex-container" id="rk-kiedy-nie-montowac">
    
    <div class="rk-ex-header">
        <div class="rk-ex-icon-main">
            <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="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-ex-header-content">
            <h2>Kiedy NIE montować zaworu mieszającego?</h2>
            <p>Jako inżynier często spotykam się z &#8222;przeinwestowaniem&#8221; układu. Sprawdź, w jakich sytuacjach montaż zaworu 3-drogowego jest błędem w sztuce i bezsensownym wydawaniem Twoich pieniędzy.</p>
        </div>
    </div>

    <div class="rk-ex-interactive">
        <div class="rk-ex-sidebar">
            <button class="rk-ex-tab-btn active" data-ex="ex-1">
                <div class="rk-tab-badge">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <h3>100% dom z pompą ciepła</h3>
            </button>
            <button class="rk-ex-tab-btn" data-ex="ex-2">
                <div class="rk-tab-badge">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                <h3>Niskotemperaturowy Gaz</h3>
            </button>
            <button class="rk-ex-tab-btn" data-ex="ex-3">
                <div class="rk-tab-badge">
                    <svg width="20" height="20" 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>
                <h3>Mit sprzęgła i bufora</h3>
            </button>
        </div>

        <div class="rk-ex-content-area">
            
            <div id="ex-1" class="rk-ex-panel active">
                <div class="rk-ex-panel-header">
                    <h4>Monowalentny układ z pompą ciepła</h4>
                </div>
                <p>Jeśli cały Twój dom opiera się wyłącznie na instalacji podłogowej, a jedynym źródłem zasilania jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> ze zintegrowanym sterowaniem pogodowym, montaż zaworu mieszającego za pompą jest absurdem.</p>
                <div class="rk-alert-box alert-negative">
                    <div class="rk-alert-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><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg>
                    </div>
                    <div class="rk-alert-text">
                        <strong>Co się stanie, jeśli to zrobisz?</strong>
                        <p>Pompa ciepła samodzielnie ustala krzywą grzewczą (np. tłoczy idealne 32°C). Jeśli dodasz zawór 3-drogowy, stworzysz dodatkowy opór hydrauliczny na rurociągu. Pompa obiegowa będzie zużywać więcej prądu, a sprężarka może zacząć taktować. Płacisz za element, który psuje wydajność.</p>
                    </div>
                </div>
            </div>

            <div id="ex-2" class="rk-ex-panel">
                <div class="rk-ex-panel-header">
                    <h4>Kocioł gazowy kondensacyjny bez grzejników</h4>
                </div>
                <p>Nowoczesne <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotły gazowe kondensacyjne</a> posiadają palniki o bardzo głębokiej modulacji (np. od 2 kW). Jeśli nie masz w domu ani jednego grzejnika ściennego, kocioł może od razu pracować na parametrach dla podłogówki (np. 35°C).</p>
                <div class="rk-alert-box alert-positive">
                    <div class="rk-alert-icon">
                        <svg width="24" height="24" 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>
                    </div>
                    <div class="rk-alert-text">
                        <strong>Prawidłowe rozwiązanie inżynierskie</strong>
                        <p>Kocioł łączy się bezpośrednio z rozdzielaczami (tzw. zasilanie bezpośrednie). Uzyskujesz zjawisko pełnej kondensacji, maksymalną sprawność kotła rzędu 108% i oszczędzasz od 1500 do 2500 zł na wyrzuceniu zbędnego sprzęgła, pompy i zaworu mieszającego z kosztorysu kotłowni.</p>
                    </div>
                </div>
            </div>

            <div id="ex-3" class="rk-ex-panel">
                <div class="rk-ex-panel-header">
                    <h4>Pompujemy bezpośrednio (Brak bufora)</h4>
                </div>
                <p>Instalatorzy ze starymi przyzwyczajeniami (&#8222;szkoła kotłów węglowych&#8221;) często upierają się przy montażu <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora ciepła</a> wpiętego równolegle z pompą ciepła, za którym koniecznie chcą wstawić pompę i zawór mieszający.</p>
                <div class="rk-alert-box alert-negative">
                    <div class="rk-alert-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><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg>
                    </div>
                    <div class="rk-alert-text">
                        <strong>Krytyczny spadek COP</strong>
                        <p>Jeśli pompa ciepła nie wymaga zładu wody do odszraniania, taki układ tylko niszczy sprawność układu (COP). Pompa musi dogrzewać bufor na nieco wyższym parametrze, aby zawór za nim mógł go znów podmieszać. To całkowicie nielogiczne i niszczy sens ekonomiczny.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-ex-mobile-accordion">
        
        <button class="rk-mob-ex-btn active" data-mob-ex="mob-ex-1">
            <div class="rk-tab-badge" style="background:var(--rk-ex-amber); color:#fff; width:28px; height:28px;">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            </div>
            <h3>100% z pompą ciepła</h3>
            <svg class="rk-mob-ex-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg);"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-ex-content active" id="mob-ex-1">
            <p>Jeśli dom jest ogrzewany wyłącznie podłogówką zasilaną z inwerterowej pompy ciepła, zawór mieszający stanowi zbędny opór hydrauliczny, który pogarsza sprawność (COP) układu.</p>
        </div>

        <button class="rk-mob-ex-btn" data-mob-ex="mob-ex-2">
            <div class="rk-tab-badge" style="width:28px; height:28px;">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
            <h3>Niskotemperaturowy Gaz</h3>
            <svg class="rk-mob-ex-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-ex-content" id="mob-ex-2">
            <p>Kocioł kondensacyjny połączony z samą podłogówką pracuje najlepiej przy bezpośrednim podłączeniu (bez sprzęgła i mieszacza), maksymalizując zjawisko kondensacji pary wodnej.</p>
        </div>

        <button class="rk-mob-ex-btn" data-mob-ex="mob-ex-3">
            <div class="rk-tab-badge" style="width:28px; height:28px;">
                <svg width="16" height="16" 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>
            <h3>Mit sprzęgła i bufora</h3>
            <svg class="rk-mob-ex-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-ex-content" id="mob-ex-3">
            <p>Wymuszanie montażu równoległego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora ciepła</a> tylko po to, by za nim dodać grupę z zaworem mieszającym w domach &#8222;100% podłogówki&#8221; to kosztowny błąd obniżający wydajność.</p>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP
    var deskBtns = document.querySelectorAll('.rk-ex-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-ex-content-area .rk-ex-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-ex');
            
            // Czyszczenie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panelToShow = document.getElementById(targetId);
            if(panelToShow !== null) {
                panelToShow.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Akordeon pionowy)
    var mobBtns = document.querySelectorAll('.rk-mob-ex-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-ex');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez operatorów &&
            var allMobBtns = document.querySelectorAll('.rk-mob-ex-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-ex-content');
            var allBadges = document.querySelectorAll('.rk-mob-ex-btn .rk-tab-badge');
            
            allMobBtns.forEach(function(b) { 
                b.classList.remove('active'); 
                var icon = b.querySelector('.rk-mob-ex-icon');
                if(icon !== null) {
                    icon.style.transform = 'rotate(0deg)';
                }
            });
            
            allMobContents.forEach(function(c) { c.classList.remove('active'); });
            allBadges.forEach(function(badge) {
                badge.style.background = '#e2e8f0';
                badge.style.color = 'var(--rk-ex-gray)';
            });

            // Rozwijanie wybranego (jeśli nie był otwarty)
            if(isAlreadyActive === false) {
                this.classList.add('active');
                
                var activeBadge = this.querySelector('.rk-tab-badge');
                if (activeBadge !== null) {
                    activeBadge.style.background = 'var(--rk-ex-amber)';
                    activeBadge.style.color = '#ffffff';
                }
                
                var activeIcon = this.querySelector('.rk-mob-ex-icon');
                if (activeIcon !== null) {
                    activeIcon.style.transform = 'rotate(180deg)';
                }
                
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset dla bezpieczeństwa przed motywem WordPressa */
#rk-diagnoza-zaworu,
#rk-diagnoza-zaworu * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #2563eb;
    --rk-diag-red: #ef4444;
    --rk-diag-red-light: #fef2f2;
    --rk-diag-orange: #f97316;
    --rk-diag-orange-light: #fff7ed;
    --rk-diag-text: #334155;
    --rk-diag-gray: #64748b;
    --rk-diag-bg: #ffffff;
    --rk-diag-border: #e2e8f0;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-diag-bg);
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-diag-border);
    overflow: hidden;
}

/* Nagłówek Diagnostyczny */
.rk-diag-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 25px;
    border-bottom: 4px solid var(--rk-diag-red);
}

.rk-diag-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(239, 68, 68, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #f87171;
    flex-shrink: 0;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.rk-diag-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

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

/* Układ Interaktywny */
.rk-diag-interactive {
    display: flex;
    background: #f8fafc;
}

/* Menu Symptomów (Sidebar Desktop) */
.rk-diag-sidebar {
    width: 320px;
    background: #ffffff;
    border-right: 1px solid var(--rk-diag-border);
    display: flex;
    flex-direction: column;
}

.rk-diag-sidebar-title {
    padding: 20px 25px;
    font-size: 14px !important;
    text-transform: uppercase;
    font-weight: 900 !important;
    color: var(--rk-diag-gray) !important;
    letter-spacing: 1px;
    border-bottom: 1px dashed var(--rk-diag-border);
    background: #f1f5f9;
    margin: 0 !important;
}

.rk-diag-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-diag-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-diag-tab-btn:hover {
    background: var(--rk-diag-red-light);
}

.rk-diag-tab-btn.active {
    background: var(--rk-diag-red-light);
}

.rk-diag-tab-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-diag-red);
}

.rk-symptom-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e2e8f0;
    color: var(--rk-diag-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-diag-tab-btn.active .rk-symptom-icon {
    background: var(--rk-diag-red);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

.rk-diag-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-diag-dark) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Panel Wyniku Diagnostycznego (Desktop) */
.rk-diag-content-area {
    flex: 1;
    padding: 35px 40px;
    position: relative;
}

.rk-diag-panel {
    display: none;
    animation: fadeInDiag 0.4s ease forwards;
}

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

@keyframes fadeInDiag {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}

.rk-diag-cause-box {
    background: #ffffff;
    border: 1px solid var(--rk-diag-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
}

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

.cause-under .rk-diag-cause-box::before { background: var(--rk-diag-red); }
.cause-over .rk-diag-cause-box::before { background: var(--rk-diag-orange); }

.rk-diag-panel-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-diag-panel-header h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-diag-dark) !important;
    margin: 0 !important;
}

.rk-diag-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.cause-under .rk-diag-badge { background: var(--rk-diag-red-light); color: var(--rk-diag-red); border: 1px solid #fecaca; }
.cause-over .rk-diag-badge { background: var(--rk-diag-orange-light); color: var(--rk-diag-orange); border: 1px solid #fed7aa; }

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

.rk-diag-panel p:last-child {
    margin-bottom: 0 !important;
}

.rk-diag-panel a {
    color: var(--rk-diag-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Sekcja Mobile (Akordeon) */
.rk-diag-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-diag-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-diag-icon-main { width: 48px; height: 48px; }
    .rk-diag-header-content h2 { font-size: 22px !important; }
    
    .rk-diag-interactive { display: none; }
    
    .rk-diag-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-diag-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-diag-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-diag-btn.active {
        background: var(--rk-diag-red-light);
        border-left: 4px solid var(--rk-diag-red);
    }
    
    .rk-mob-diag-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-diag-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
        line-height: 1.4 !important;
    }
    
    .rk-mob-diag-icon {
        width: 20px;
        height: 20px;
        color: var(--rk-diag-red);
        transition: transform 0.3s;
    }
    
    .rk-mob-diag-btn.active .rk-mob-diag-icon {
        transform: rotate(180deg);
    }
    
    .rk-mob-diag-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-diag-red);
    }
    
    .rk-mob-diag-content.active { display: block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-diagnoza",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Po czym poznać, że zawór mieszający jest źle dobrany?",
    "description": "Skaner symptomów instalacji. Dowiedz się, dlaczego rotametry nie pokazują przepływu, pompa głośno pracuje lub kocioł taktuje z powodu błędnego Kvs.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-diagnoza",
    "name": "Katalog symptomów błędnie zaprojektowanych węzłów mieszających",
    "description": "Zestawienie objawów fizycznych i awarii urządzeń grzewczych wynikających z niedowymiarowania lub przewymiarowania armatury regulacyjnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "objawy źle dobranego zaworu mieszającego",
      "za mały kvs zaworu podłogówka co robić",
      "dlaczego rotametry nie pokazują przepływu 0 l/min",
      "taktowanie pompy ciepła przez zawór",
      "utrata autorytetu zaworu mieszającego skoki temperatur"
    ],
    "measurementTechnique": "Identyfikacja awarii poprzez weryfikację przepływów na wskaźnikach rotametrycznych oraz analizę cykli pracy źródła ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Niedowymiarowanie (Kvs za mały): Zerowe przepływy, głośna pompa, dławienie układu.",
        "Przewymiarowanie (Kvs za duży): Brak płynnej regulacji (0-1), drastyczne skoki temperatury podłogi.",
        "Taktowanie: Reakcja kotła na brak możliwości oddania zładu ciepła zablokowanego przez zbyt ciasny zawór."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-diagnoza",
    "name": "Detektor Usterek Hydraulicznych",
    "description": "Interaktywne narzędzie diagnostyczne przypisujące obserwowane objawy eksploatacyjne do błędów w inżynierskim doborze parametrów Kvs.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and Javascript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-diagnoza-zaworu">
    
    <div class="rk-diag-header">
        <div class="rk-diag-icon-main">
            <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="M22 12h-4l-3 9L9 3l-3 9H2"></path>
            </svg>
        </div>
        <div class="rk-diag-header-content">
            <h2>Po czym poznać, że zawór mieszający jest źle dobrany?</h2>
            <p>Źle dobrany współczynnik K<sub>vs</sub> to „cichy zabójca” układu grzewczego. Wybierz z listy symptom, z którym boryka się Twoja instalacja, aby poznać jego inżynieryjną przyczynę.</p>
        </div>
    </div>

    <div class="rk-diag-interactive">
        <div class="rk-diag-sidebar">
            <h4 class="rk-diag-sidebar-title">Symptomy w instalacji:</h4>
            
            <button class="rk-diag-tab-btn active" data-diag="diag-1">
                <div class="rk-symptom-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg></div>
                <h3>Zerowy przepływ na rotametrach</h3>
            </button>
            <button class="rk-diag-tab-btn" data-diag="diag-2">
                <div class="rk-symptom-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path></svg></div>
                <h3>Głośna praca pompy (wycie)</h3>
            </button>
            <button class="rk-diag-tab-btn" data-diag="diag-3">
                <div class="rk-symptom-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                <h3>Ciągłe taktowanie źródła ciepła</h3>
            </button>
            <button class="rk-diag-tab-btn" data-diag="diag-4">
                <div class="rk-symptom-icon"><svg width="20" height="20" 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>
                <h3>Nagłe skoki temperatury podłogi</h3>
            </button>
        </div>

        <div class="rk-diag-content-area">
            
            <div id="diag-1" class="rk-diag-panel active cause-under">
                <div class="rk-diag-cause-box">
                    <span class="rk-diag-badge">Diagnoza: Kvs jest zbyt mały</span>
                    <div class="rk-diag-panel-header">
                        <h4>Zawór „dusi” całą instalację</h4>
                    </div>
                    <p>Pompa tłoczy wodę na pełnej mocy, ale <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry na rozdzielaczu</a> uparcie pokazują 0,5 l/min lub w ogóle się nie podnoszą. Dzieje się tak, gdy instalator zastosował zawór o zbyt niskim współczynniku przepustowości, np. klasyczny zawór o K<sub>vs</sub>=1.6 m&sup3;/h przydużej powierzchni domu.</p>
                    <p>Zawór stanowi w tym momencie potężną zwężkę (wąskie gardło), przez którą woda fizycznie nie ma szans przepłynąć w wymaganej ilości, skutkując zimnymi pokojami na końcach pętli.</p>
                </div>
            </div>

            <div id="diag-2" class="rk-diag-panel cause-under">
                <div class="rk-diag-cause-box">
                    <span class="rk-diag-badge">Diagnoza: Kvs jest zbyt mały</span>
                    <div class="rk-diag-panel-header">
                        <h4>Pompa obiegowa jest przeciążona</h4>
                    </div>
                    <p>Zbyt ciasny zawór mieszający wymusza na <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompie obiegowej</a> pokonywanie ekstremalnych oporów miejscowych. Jeśli układ został dobrany „na oko”, pompa zaczyna pracować z pełną mocą, by przepchnąć medium.</p>
                    <p>Efektem ubocznym jest bardzo głośna praca, wycie wirnika, szumy w rurach pex i ryzyko przedwczesnego spalenia urządzenia w wyniku pracy pod zaporowym ciśnieniem (zjawisko kawitacji).</p>
                </div>
            </div>

            <div id="diag-3" class="rk-diag-panel cause-under">
                <div class="rk-diag-cause-box">
                    <span class="rk-diag-badge">Diagnoza: Kvs jest zbyt mały</span>
                    <div class="rk-diag-panel-header">
                        <h4>Kocioł traci zład odbierający ciepło</h4>
                    </div>
                    <p>Źródło ciepła (szczególnie pompa ciepła lub kocioł peletowy) uruchamia się, błyskawicznie dobija do temperatury zadanej i od razu się wyłącza, po czym cykl się powtarza co kilka minut.</p>
                    <p>Wąski zawór ogranicza zrzut nagrzanego medium z pierwotnego układu hydraulicznego na podłogę. Kocioł &#8222;myśli&#8221;, że dom jest nagrzany, podczas gdy woda po prostu odbija się od zblokowanego zaworu, co jest jednym z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najgorszych błędów montażowych</a> skracających żywotność sprężarki i palnika.</p>
                </div>
            </div>

            <div id="diag-4" class="rk-diag-panel cause-over">
                <div class="rk-diag-cause-box">
                    <span class="rk-diag-badge">Diagnoza: Kvs jest zbyt DUŻY</span>
                    <div class="rk-diag-panel-header">
                        <h4>Utrata „autorytetu” regulacyjnego</h4>
                    </div>
                    <p>Co się dzieje, gdy instalator zastosuje na małym układzie potężny zawór np. 5/4 cala (K<sub>vs</sub> > 10)? Zawór traci tzw. <strong>autorytet regulacyjny</strong>. Zamiast płynnie i precyzyjnie dawkować wodę, zaczyna działać jak włącznik światła (system 0-1).</p>
                    <p>Minimalny ruch siłownika powoduje nagły wtrysk wrzątku, na co automatyka reaguje całkowitym zamknięciem zaworu. Efekt to nieprzyjemne falowanie temperatur (raz lód, raz gorąco) i niemożność ustabilizowania posadzki.</p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-diag-mobile-accordion">
        
        <button class="rk-mob-diag-btn active" data-mob-diag="mob-diag-1">
            <div class="rk-symptom-icon" style="width:32px; height:32px; background:var(--rk-diag-red); color:#fff;">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line></svg>
            </div>
            <h3>Zerowy przepływ na rotametrach</h3>
            <svg class="rk-mob-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg);"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-diag-content active" id="mob-diag-1">
            <div class="rk-diag-cause-box cause-under" style="margin-bottom:0; padding:20px;">
                <span class="rk-diag-badge">Diagnoza: Kvs zbyt mały</span>
                <p>Zawór stanowi wąskie gardło. Pompa tłoczy na 100%, ale fizycznie nie jest w stanie przepchnąć wody przez zbyt małą szczelinę, co skutkuje niedogrzaniem podłogi.</p>
            </div>
        </div>

        <button class="rk-mob-diag-btn" data-mob-diag="mob-diag-2">
            <div class="rk-symptom-icon" style="width:32px; height:32px;">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
            </div>
            <h3>Głośna praca pompy (wycie)</h3>
            <svg class="rk-mob-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-diag-content" id="mob-diag-2">
            <div class="rk-diag-cause-box cause-under" style="margin-bottom:0; padding:20px;">
                <span class="rk-diag-badge">Diagnoza: Kvs zbyt mały</span>
                <p>Zbyt ciasny zawór zmusza <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompę obiegową</a> do pracy z ogromnym oporem. Powoduje to szumy i szybką awarię silnika.</p>
            </div>
        </div>

        <button class="rk-mob-diag-btn" data-mob-diag="mob-diag-3">
            <div class="rk-symptom-icon" style="width:32px; height:32px;">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            </div>
            <h3>Ciągłe taktowanie źródła ciepła</h3>
            <svg class="rk-mob-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-diag-content" id="mob-diag-3">
            <div class="rk-diag-cause-box cause-under" style="margin-bottom:0; padding:20px;">
                <span class="rk-diag-badge">Diagnoza: Kvs zbyt mały</span>
                <p>Kocioł nie ma gdzie &#8222;zrzucić&#8221; ciepła. Zablokowany przepływ sprawia, że urządzenie włącza się i wyłącza, niszcząc sprężarkę i zużywając paliwo.</p>
            </div>
        </div>

        <button class="rk-mob-diag-btn" data-mob-diag="mob-diag-4">
            <div class="rk-symptom-icon" style="width:32px; height:32px;">
                <svg width="18" height="18" 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>
            <h3>Nagłe skoki temperatury podłogi</h3>
            <svg class="rk-mob-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-diag-content" id="mob-diag-4">
            <div class="rk-diag-cause-box cause-over" style="margin-bottom:0; padding:20px;">
                <span class="rk-diag-badge">Diagnoza: Kvs jest ZBYT DUŻY</span>
                <p>Zawór stracił &#8222;autorytet&#8221;. Nie potrafi precyzyjnie dawkować ciepła. Niewielki obrót wpompowuje wrzątek w podłogę, tworząc system 0-1 (raz lód, raz ogień).</p>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP
    var deskBtns = document.querySelectorAll('.rk-diag-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-diag-content-area .rk-diag-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-diag');
            
            // Czyszczenie klas
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panelToShow = document.getElementById(targetId);
            if(panelToShow !== null) {
                panelToShow.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Akordeon pionowy)
    var mobBtns = document.querySelectorAll('.rk-mob-diag-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-diag');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez operatorów "&&"
            var allMobBtns = document.querySelectorAll('.rk-mob-diag-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-diag-content');
            
            allMobBtns.forEach(function(b) { 
                b.classList.remove('active'); 
                var iconBox = b.querySelector('.rk-symptom-icon');
                if (iconBox !== null) {
                    iconBox.style.background = '#e2e8f0';
                    iconBox.style.color = 'var(--rk-diag-gray)';
                }
                var chevron = b.querySelector('.rk-mob-diag-icon');
                if (chevron !== null) {
                    chevron.style.transform = 'rotate(0deg)';
                }
            });
            
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Rozwijanie
            if(isAlreadyActive === false) {
                this.classList.add('active');
                
                var iconBox = this.querySelector('.rk-symptom-icon');
                if (iconBox !== null) {
                    iconBox.style.background = 'var(--rk-diag-red)';
                    iconBox.style.color = '#ffffff';
                }
                
                var chevron = this.querySelector('.rk-mob-diag-icon');
                if (chevron !== null) {
                    chevron.style.transform = 'rotate(180deg)';
                }
                
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset typografii chroniący przed motywami WP */
#rk-projekt-wplyw,
#rk-projekt-wplyw * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #f59e0b; /* Złoty akcent premium */
    --rk-proj-text: #334155;
    --rk-proj-gray: #64748b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
}

.rk-project-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-proj-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-proj-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-proj-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
    position: relative;
}

.rk-proj-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-proj-blue);
}

.rk-proj-header-icon {
    width: 64px;
    height: 64px;
    background: rgba(2, 132, 199, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-proj-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

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

/* Układ Interaktywny */
.rk-proj-interactive {
    display: flex;
    background: #f8fafc;
}

/* Menu boczne (Desktop) */
.rk-proj-tabs {
    width: 320px;
    background: #ffffff;
    border-right: 1px solid var(--rk-proj-border);
    display: flex;
    flex-direction: column;
}

.rk-proj-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-proj-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-proj-tab-btn:hover {
    background: var(--rk-proj-blue-light);
}

.rk-proj-tab-btn.active {
    background: var(--rk-proj-blue-light);
}

.rk-proj-tab-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-proj-blue);
}

.rk-tab-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #f1f5f9;
    color: var(--rk-proj-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-proj-tab-btn.active .rk-tab-icon {
    background: var(--rk-proj-blue);
    color: #ffffff;
}

.rk-proj-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-proj-dark) !important;
    margin: 0 !important;
}

/* Panel z treścią (Desktop) */
.rk-proj-content-area {
    flex: 1;
    padding: 35px 40px;
    background: #f8fafc;
    position: relative;
}

.rk-proj-panel {
    display: none;
    animation: fadeInProj 0.4s ease forwards;
}

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

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

.rk-proj-panel h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-proj-dark) !important;
    margin: 0 0 15px 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-proj-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-proj-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-proj-panel p:last-child {
    margin-bottom: 0 !important;
}

.rk-proj-panel a {
    color: var(--rk-proj-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

.rk-proj-panel a:hover {
    color: #0369a1 !important;
}

.rk-panel-highlight {
    padding: 20px;
    background: #ffffff;
    border-radius: 12px;
    border-left: 4px solid var(--rk-proj-blue);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    margin-top: 20px;
}

/* Moduł Mobile - Ukryty na Desktopie */
.rk-proj-mobile-accordion {
    display: none;
}

/* Potężne CTA */
.rk-proj-cta-section {
    padding: 45px 40px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

.rk-proj-cta-section h3 {
    font-size: 24px !important;
    font-weight: 900 !important;
    color: var(--rk-proj-dark) !important;
    margin: 0 0 15px 0 !important;
}

.rk-proj-cta-section p {
    font-size: 16px !important;
    color: var(--rk-proj-gray) !important;
    margin: 0 auto 25px auto !important;
    max-width: 600px;
    line-height: 1.6 !important;
}

.rk-btn-premium {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: #ffffff !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    padding: 18px 36px !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
    border: none !important;
}

.rk-btn-premium:hover {
    background: #d97706;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(245, 158, 11, 0.5);
}

/* Responsywność - Przełączenie na pionowy akordeon */
@media (max-width: 768px) {
    .rk-proj-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-proj-header-icon { width: 48px; height: 48px; }
    .rk-proj-header-content h2 { font-size: 22px !important; }
    
    /* Ukrywamy układ desktopowy */
    .rk-proj-interactive { display: none; }
    
    /* Pokazujemy układ mobilny */
    .rk-proj-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-acc-item {
        border-bottom: 1px solid var(--rk-proj-border);
    }
    
    .rk-mob-acc-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-acc-btn.active {
        background: var(--rk-proj-blue-light);
    }
    
    .rk-mob-acc-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-proj-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-chevron {
        width: 20px;
        height: 20px;
        color: var(--rk-proj-blue);
        transition: transform 0.3s;
    }
    
    .rk-mob-acc-btn.active .rk-mob-chevron {
        transform: rotate(180deg);
    }
    
    .rk-mob-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-top: 1px dashed var(--rk-proj-border);
    }
    
    .rk-mob-content.active {
        display: block;
    }

    .rk-proj-cta-section { padding: 30px 20px; }
    .rk-btn-premium { width: 100%; padding: 16px 10px !important; font-size: 15px !important; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-wplyw-na-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak zawór mieszający wpływa na projekt całego ogrzewania podłogowego?",
    "description": "Techniczna analiza synergii hydraulicznej pomiędzy zaworem mieszającym, pompą obiegową, rozstawem rur a obliczeniami obciążenia cieplnego OZC.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-wplyw-na-projekt",
    "name": "Synergia parametrów zaworu mieszającego z projektem instalacji",
    "description": "Baza wiedzy definiująca zależności fizyczne i matematyczne między armaturą regulacyjną a architekturą systemu ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne ozc a przepływ m3/h",
      "rozstaw rur w ogrzewaniu podłogowym a autorytet zaworu",
      "dobór pompy obiegowej spadek ciśnienia zaworu kpa",
      "bezwładność cieplna wylewki betonowej algorytm tpi",
      "grubość izolacji termicznej podłogówki wpływ na zasilanie"
    ],
    "measurementTechnique": "Korelacja przepływu masowego w układzie zamkniętym ze stratami ciśnienia w pętlach o różnym rozstawie przy uwzględnieniu bezwładności termicznej jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC: Zapotrzebowanie energetyczne wymusza konkretny współczynnik Kvs.",
        "Wpływ rozstawu rur: Zwiększenie gęstości rur podnosi opory hydrauliczne instalacji.",
        "Wpływ na pompę: Zawór stanowi opór miejscowy, który musi pokonać pompa obiegowa.",
        "Wpływ wylewki: Grubość jastrychu determinuje wybór algorytmu sterowania siłownikiem (PID/TPI)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-wplyw-na-projekt",
    "name": "Symulator Wpływu Hydraulicznego",
    "description": "Narzędzie demonstracyjne obrazujące w czasie rzeczywistym zależności pomiędzy węzłem mieszającym a poszczególnymi elementami projektu podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS and JS for dynamic panel switching",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rk-projekt-wplyw">
    
    <div class="rk-proj-header">
        <div class="rk-proj-header-icon">
            <svg width="32" height="32" 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>
        </div>
        <div class="rk-proj-header-content">
            <h2>Jak zawór mieszający wpływa na projekt całego ogrzewania podłogowego?</h2>
            <p>Zawór mieszający to nie odizolowany element. Wpływa bezpośrednio na strukturę hydraulikę całej instalacji, determinując parametry pompy, zrównoważenie pętli oraz efektywność źródła ciepła.</p>
        </div>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-tabs">
            <button class="rk-proj-tab-btn active" data-target="proj-ozc">
                <div class="rk-tab-icon">
                    <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="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>
                </div>
                <h3>Obciążenie Cieplne OZC</h3>
            </button>
            <button class="rk-proj-tab-btn" data-target="proj-rury">
                <div class="rk-tab-icon">
                    <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 6h16M4 12h16M4 18h16"></path></svg>
                </div>
                <h3>Rozstaw Rur PEX</h3>
            </button>
            <button class="rk-proj-tab-btn" data-target="proj-pompa">
                <div class="rk-tab-icon">
                    <svg width="20" height="20" 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><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
                </div>
                <h3>Pompa Obiegowa</h3>
            </button>
            <button class="rk-proj-tab-btn" data-target="proj-beton">
                <div class="rk-tab-icon">
                    <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="M2 20h20"></path><path d="M5 20v-4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"></path><circle cx="12" cy="10" r="4"></circle></svg>
                </div>
                <h3>Wylewka i Bezwładność</h3>
            </button>
        </div>

        <div class="rk-proj-content-area">
            
            <div id="proj-ozc" class="rk-proj-panel active">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-proj-blue)" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path></svg> Zapotrzebowanie i OZC</h4>
                <p>Całkowite zapotrzebowanie budynku na energię fizycznie określa, ile litrów wody na minutę musi przepuścić zawór mieszający. Brak profesjonalnych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń strat ciepła (OZC)</a> to fundament porażki.</p>
                <div class="rk-panel-highlight">
                    <p><strong>Błędne OZC skutkuje wadliwym doborem średnic zaworu.</strong> Zbyt duży zawór straci tzw. autorytet regulacyjny (będzie działał zero-jedynkowo), a zbyt mały odetnie podłogówkę od ciepła.</p>
                </div>
            </div>

            <div id="proj-rury" class="rk-proj-panel">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-proj-blue)" stroke-width="2"><path d="M4 6h16M4 12h16M4 18h16"></path></svg> Autorytet zaworu a rozstaw rur</h4>
                <p>Zagęszczenie rur (np. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur co 10 cm</a> w strefach brzegowych przy dużych przeszkleniach) zwiększa łączną długość wężownicy, a tym samym generuje potężne opory liniowe całej instalacji.</p>
                <div class="rk-panel-highlight">
                    <p>Zawór mieszający musi charakteryzować się na tyle optymalnym oporem własnym, aby nie dławić układu. Musi stanowić proporcjonalny opór w stosunku do najbardziej obciążonej hydraulicznie pętli.</p>
                </div>
            </div>

            <div id="proj-pompa" class="rk-proj-panel">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-proj-blue)" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg> Dobór pompy obiegowej</h4>
                <p>Całkowity opór instalacji to suma oporów najdłuższej pętli (np. 100 m rury PEX 16 mm generuje ok. 15–20 kPa oporu), rozdzielacza (2–4 kPa) oraz oporu samego zaworu mieszającego przy obliczeniowym przepływie.</p>
                <div class="rk-panel-highlight">
                    <p>Jeśli <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">dobór pompy obiegowej</a> zostanie zrobiony &#8222;na oko&#8221;, bez uwzględnienia spadku ciśnienia na zaworze, woda nie popłynie, a rotametry na powrocie wskażą 0 l/min.</p>
                </div>
            </div>

            <div id="proj-beton" class="rk-proj-panel">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-proj-blue)" stroke-width="2"><path d="M2 20h20"></path><path d="M5 20v-4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"></path></svg> Wylewka i bezwładność cieplna</h4>
                <p>Grubość jastrychu (standardowo 5 cm betonu ponad rurą lub 3,5 cm dla anhydrytu) ściśle określa <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Beton akumuluje ciepło, które uwalnia z opóźnieniem.</p>
                <div class="rk-panel-highlight">
                    <p>Przy grubych wylewkach betonowych sterowanie zaworem za pomocą automatyki z algorytmem TPI lub PID staje się kluczowe, aby zapobiec cyklicznemu przegrzewaniu pomieszczeń (tzw. zjawisko przeregulowania).</p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-mobile-accordion">
        
        <div class="rk-mob-acc-item">
            <button class="rk-mob-acc-btn active" data-mob="proj-ozc">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path></svg></div>
                <h3>Obciążenie Cieplne OZC</h3>
                <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-mob-content active" id="mob-proj-ozc">
                <div class="rk-proj-panel active">
                    <p>Całkowite zapotrzebowanie budynku na energię fizycznie określa, ile litrów wody na minutę musi przepuścić zawór mieszający. Brak profesjonalnych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń strat ciepła (OZC)</a> to fundament porażki.</p>
                    <div class="rk-panel-highlight"><p><strong>Błędne OZC skutkuje wadliwym doborem średnic zaworu.</strong> Zbyt duży zawór straci autorytet regulacyjny, a zbyt mały odetnie podłogówkę od ciepła.</p></div>
                </div>
            </div>
        </div>

        <div class="rk-mob-acc-item">
            <button class="rk-mob-acc-btn" data-mob="proj-rury">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16M4 12h16M4 18h16"></path></svg></div>
                <h3>Rozstaw Rur PEX</h3>
                <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-mob-content" id="mob-proj-rury">
                <div class="rk-proj-panel active">
                    <p>Zagęszczenie rur (np. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur co 10 cm</a>) zwiększa łączną długość wężownicy, generując potężne opory liniowe instalacji.</p>
                    <div class="rk-panel-highlight"><p>Zawór mieszający musi charakteryzować się na tyle optymalnym oporem, aby nie dławić układu względem obciążonej pętli.</p></div>
                </div>
            </div>
        </div>

        <div class="rk-mob-acc-item">
            <button class="rk-mob-acc-btn" data-mob="proj-pompa">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div>
                <h3>Pompa Obiegowa</h3>
                <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-mob-content" id="mob-proj-pompa">
                <div class="rk-proj-panel active">
                    <p>Całkowity opór instalacji to suma oporów najdłuższej pętli, rozdzielacza oraz oporu samego zaworu mieszającego przy obliczeniowym przepływie.</p>
                    <div class="rk-panel-highlight"><p>Jeśli <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">dobór pompy obiegowej</a> zostanie zrobiony &#8222;na oko&#8221;, woda nie popłynie, a rotametry wskażą 0 l/min.</p></div>
                </div>
            </div>
        </div>

        <div class="rk-mob-acc-item">
            <button class="rk-mob-acc-btn" data-mob="proj-beton">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 20h20"></path><path d="M5 20v-4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"></path></svg></div>
                <h3>Wylewka i Bezwładność</h3>
                <svg class="rk-mob-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-mob-content" id="mob-proj-beton">
                <div class="rk-proj-panel active">
                    <p>Grubość jastrychu (standardowo 5 cm betonu ponad rurą) ściśle określa <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Beton uwalnia ciepło z opóźnieniem.</p>
                    <div class="rk-panel-highlight"><p>Przy grubych wylewkach sterowanie zaworem za pomocą automatyki z algorytmem TPI lub PID staje się kluczowe, aby zapobiec przegrzewaniu.</p></div>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie zgaduj. Powierz hydraulikę inżynierom.</h3>
        <p>Jak widzisz, zawór mieszający to tylko jeden z trybików wielkiej inżynieryjnej maszyny. Zadbaj o to, by układ współpracował idealnie i zamów kompletny projekt techniczny uwzględniający wszystkie zmienne.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-premium">
            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"><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() {
    
    // Logika DESKTOP (Zakładki)
    var deskBtns = document.querySelectorAll('.rk-proj-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-proj-content-area .rk-proj-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych dla przycisków i paneli na desktopie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja wybranego
            this.classList.add('active');
            var panelToShow = document.getElementById(targetId);
            if(panelToShow !== null) {
                panelToShow.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Pionowy Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-acc-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob');
            var contentBlock = document.getElementById('mob-' + targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijamy wszystko na mobilu
            var allMobBtns = document.querySelectorAll('.rk-mob-acc-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-content');
            
            allMobBtns.forEach(function(b) { b.classList.remove('active'); });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Jeśli nie był wcześniej otwarty - otwieramy
            if(isAlreadyActive === false) {
                this.classList.add('active');
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset dla bezpieczeństwa przed motywem WordPressa */
#rk-kalibracja-zaworu,
#rk-kalibracja-zaworu * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-cal-dark: #0f172a;
    --rk-cal-blue: #0284c7;
    --rk-cal-blue-light: #f0f9ff;
    --rk-cal-green: #10b981;
    --rk-cal-orange: #f59e0b;
    --rk-cal-text: #334155;
    --rk-cal-gray: #64748b;
    --rk-cal-bg: #ffffff;
    --rk-cal-border: #e2e8f0;
}

.rk-cal-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-cal-bg);
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(2, 132, 199, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-cal-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-cal-dark) 0%, #0c4a6e 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 25px;
    border-bottom: 4px solid var(--rk-cal-blue);
}

.rk-cal-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-cal-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

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

/* Interaktywny Panel Kalibracji */
.rk-cal-interactive {
    display: flex;
    background: #f8fafc;
}

/* Kroki (Sidebar Desktop) */
.rk-cal-sidebar {
    width: 340px;
    background: #ffffff;
    border-right: 1px solid var(--rk-cal-border);
    display: flex;
    flex-direction: column;
}

.rk-cal-sidebar-title {
    padding: 20px 25px;
    font-size: 13px !important;
    text-transform: uppercase;
    font-weight: 900 !important;
    color: var(--rk-cal-gray) !important;
    letter-spacing: 1px;
    background: #f1f5f9;
    margin: 0 !important;
    border-bottom: 1px solid var(--rk-cal-border);
}

.rk-cal-step-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-cal-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-cal-step-btn:hover { background: #f0f9ff; }
.rk-cal-step-btn.active { background: #f0f9ff; }

.rk-cal-step-btn.active::before {
    content: '';
    position: absolute;
    left: 0; top: 0; height: 100%; width: 4px;
    background: var(--rk-cal-blue);
}

.rk-step-indicator {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e8f0;
    color: var(--rk-cal-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900 !important;
    font-size: 14px !important;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-cal-step-btn.active .rk-step-indicator {
    background: var(--rk-cal-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

.rk-cal-step-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-cal-dark) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Ekran Wizualizacji (Desktop Prawa Strona) */
.rk-cal-content-area {
    flex: 1;
    padding: 40px;
    position: relative;
}

.rk-cal-panel {
    display: none;
    animation: fadeInCal 0.4s ease forwards;
}

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

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

/* Moduł "Wyświetlacza" */
.rk-cal-display-box {
    background: #ffffff;
    border: 2px solid var(--rk-cal-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-cal-display-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-cal-display-text h4 {
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px;
    color: var(--rk-cal-gray) !important;
    margin: 0 0 5px 0 !important;
    font-weight: 800 !important;
}

.rk-cal-display-value {
    font-size: 24px !important;
    font-weight: 900 !important;
    color: var(--rk-cal-dark) !important;
    margin: 0 !important;
}

/* Tekst Instruktażowy */
.rk-cal-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-cal-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-cal-panel a {
    color: var(--rk-cal-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Alerty wewnątrz paneli */
.rk-cal-alert {
    padding: 15px 20px;
    background: #fffbeb;
    border-left: 4px solid var(--rk-cal-orange);
    border-radius: 8px;
    margin-top: 20px;
}

.rk-cal-alert strong {
    color: #b45309 !important;
    display: block;
    margin-bottom: 5px;
    font-size: 14px !important;
    text-transform: uppercase;
}

.rk-cal-alert p {
    color: #92400e !important;
    font-size: 14px !important;
    margin: 0 !important;
}

/* Sekcja Mobile (Akordeon) */
.rk-cal-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-cal-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-cal-icon-main { width: 48px; height: 48px; }
    .rk-cal-header-content h2 { font-size: 22px !important; }
    
    .rk-cal-interactive { display: none; }
    
    .rk-cal-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-cal-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-cal-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-cal-btn.active {
        background: #f0f9ff;
        border-left: 4px solid var(--rk-cal-blue);
    }
    
    .rk-mob-cal-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-cal-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
        line-height: 1.4 !important;
    }
    
    .rk-mob-cal-icon {
        width: 20px;
        height: 20px;
        color: var(--rk-cal-blue);
        transition: transform 0.3s;
    }
    
    .rk-mob-cal-btn.active .rk-mob-cal-icon {
        transform: rotate(180deg);
    }
    
    .rk-mob-cal-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-cal-blue);
    }
    
    .rk-mob-cal-content.active { display: block; }
    
    .rk-cal-display-box { flex-direction: column; text-align: center; gap: 15px; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-jak-ustawic",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak ustawić zawór mieszający w ogrzewaniu podłogowym?",
    "description": "Profesjonalna procedura nastawy i kalibracji termicznej zaworu. Dowiedz się, jak krok po kroku ustabilizować temperaturę i zabezpieczyć wylewkę.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-jak-ustawic",
    "name": "Procedura kalibracji termicznej armatury mieszającej",
    "description": "Zbiór wytycznych eksploatacyjnych dotyczących inicjalnej nastawy, weryfikacji bezwładności oraz manualnego blokowania strumieni wysokotemperaturowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak ustawić zawór mieszający w ogrzewaniu podłogowym",
      "kalibracja zaworu trójdrogowego",
      "temperatura zasilania rozdzielacza pirometr",
      "blokada maksymalnej temperatury podłogówki",
      "wygrzewanie wylewki betonowej podłogówka"
    ],
    "measurementTechnique": "Pomiary organoleptyczne wspierane odczytami z pirometrów laserowych, kompensujące błędy bezwładności masy akumulacyjnej jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1: Nastawa wstępna w okolicach 30-35°C w fazie rozruchu.",
        "Etap 2: Odczekanie 24-48 godzin na stabilizację masy termicznej betonu.",
        "Etap 3: Weryfikacja rzeczywistej temperatury rur zasilających przed wejściem w wylewkę.",
        "Etap 4: Nałożenie blokady mechanicznej pokrętła na wartości maksymalnej 45°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-jak-ustawic",
    "name": "Wirtualny Asystent Nastawy Zaworu",
    "description": "Interaktywny panel instruktarzowy, symulujący krok po kroku prawidłową ścieżkę diagnostyczną przy uruchamianiu obiegów podłogowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and Javascript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cal-container" id="rk-kalibracja-zaworu">
    
    <div class="rk-cal-header">
        <div class="rk-cal-icon-main">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="3"></circle>
                <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
            </svg>
        </div>
        <div class="rk-cal-header-content">
            <h2>Jak prawidłowo ustawić zawór mieszający?</h2>
            <p>Nie kręć pokrętłem &#8222;na oko&#8221;. Zła kalibracja zaworu to najszybsza droga do uszkodzenia wylewki lub astronomicznych rachunków za prąd. Przejdź przez profesjonalny algorytm nastawy.</p>
        </div>
    </div>

    <div class="rk-cal-interactive">
        <div class="rk-cal-sidebar">
            <h4 class="rk-cal-sidebar-title">Procedura kalibracji</h4>
            
            <button class="rk-cal-step-btn active" data-cal="cal-1">
                <div class="rk-step-indicator">1</div>
                <h3>Wstępna nastawa robocza</h3>
            </button>
            <button class="rk-cal-step-btn" data-cal="cal-2">
                <div class="rk-step-indicator">2</div>
                <h3>Tolerancja na bezwładność</h3>
            </button>
            <button class="rk-cal-step-btn" data-cal="cal-3">
                <div class="rk-step-indicator">3</div>
                <h3>Weryfikacja pirometrem</h3>
            </button>
            <button class="rk-cal-step-btn" data-cal="cal-4">
                <div class="rk-step-indicator">4</div>
                <h3>Mechaniczna blokada limitu</h3>
            </button>
        </div>

        <div class="rk-cal-content-area">
            
            <div id="cal-1" class="rk-cal-panel active">
                <div class="rk-cal-display-box" style="border-color: var(--rk-cal-blue);">
                    <div class="rk-cal-display-icon" style="background: var(--rk-cal-blue-light); color: var(--rk-cal-blue);">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-cal-display-text">
                        <h4>Faza Rozruchu</h4>
                        <p class="rk-cal-display-value">Ustaw: 25 &#8211; 30&deg;C</p>
                    </div>
                </div>
                <p>Na głowicy termostatycznej zaworu lub w menu sterownika ustal początkową temperaturę bezpieczną. Nie próbuj od razu &#8222;nadgonić&#8221; wychłodzonego domu ustawiając maksymalne parametry.</p>
                <div class="rk-cal-alert">
                    <strong>Ważne przy nowym domu!</strong>
                    <p>Jeżeli wykonujesz procedurę <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wygrzewania wylewki</a> (świeży jastrych), bezwzględnie przestrzegaj reżimu narzuconego przez producenta chemii budowlanej. Zwykle zaczynamy od zaledwie 20-25&deg;C, podnosząc wartość o 5&deg;C na dobę.</p>
                </div>
            </div>

            <div id="cal-2" class="rk-cal-panel">
                <div class="rk-cal-display-box" style="border-color: var(--rk-cal-orange);">
                    <div class="rk-cal-display-icon" style="background: #fef3c7; color: var(--rk-cal-orange);">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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 class="rk-cal-display-text">
                        <h4>Bezwładność Układu</h4>
                        <p class="rk-cal-display-value">Odczekaj: 24 &#8211; 48 godzin</p>
                    </div>
                </div>
                <p>Największym błędem inwestorów jest bieganie do kotłowni co godzinę i kręcenie zaworem, bo &#8222;podłoga wciąż jest zimna&#8221;. Beton waży tony – posiada potężną <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>.</p>
                <p>Ogrzewanie płaszczyznowe potrzebuje co najmniej 1 do 2 dób, aby ustabilizować swoją masę akumulacyjną i zacząć oddawać odczuwalne ciepło do pomieszczenia. Zmian nastawy dokonuj powoli.</p>
            </div>

            <div id="cal-3" class="rk-cal-panel">
                <div class="rk-cal-display-box" style="border-color: var(--rk-cal-green);">
                    <div class="rk-cal-display-icon" style="background: #d1fae5; color: var(--rk-cal-green);">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="22" y1="12" x2="18" y2="12"></line><line x1="6" y1="12" x2="2" y2="12"></line><line x1="12" y1="6" x2="12" y2="2"></line><line x1="12" y1="22" x2="12" y2="18"></line></svg>
                    </div>
                    <div class="rk-cal-display-text">
                        <h4>Weryfikacja Rzeczywista</h4>
                        <p class="rk-cal-display-value">Sprzęt: Termometr / Pirometr</p>
                    </div>
                </div>
                <p>Nigdy nie ufaj bezgranicznie nadrukowej skali na głowicy zaworu (szczególnie w tańszych modelach). Zdarza się, że głowica ustawiona na 35&deg;C fizycznie puszcza na instalację 42&deg;C.</p>
                <p>Weź pirometr laserowy lub termometr przylgowy i dotknij rury zasilającej za pompą obiegową (przed samym wejściem na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz</a>). Jeśli występuje odchyłka – skoryguj pokrętło.</p>
            </div>

            <div id="cal-4" class="rk-cal-panel">
                <div class="rk-cal-display-box" style="border-color: var(--rk-cal-dark);">
                    <div class="rk-cal-display-icon" style="background: #e2e8f0; color: var(--rk-cal-dark);">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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-cal-display-text">
                        <h4>Bezpiecznik Ostateczny</h4>
                        <p class="rk-cal-display-value">Blokada mechaniczna</p>
                    </div>
                </div>
                <p>Kiedy znajdziesz optymalną krzywą i idealną temperaturę zasilania, musisz zabezpieczyć układ przed przypadkowym rozregulowaniem (np. przez bawiące się dzieci lub nieświadomych domowników).</p>
                <p>Zdejmij plastikową nasadkę pokrętła głowicy termostatycznej i użyj wewnętrznego pierścienia blokującego, by na sztywno ograniczyć <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalną temperaturę zasilania</a> do poziomu 45&deg;C. To uratuje Twoje podłogi w razie awarii kotła.</p>
            </div>

        </div>
    </div>

    <div class="rk-cal-mobile-accordion">
        
        <button class="rk-mob-cal-btn active" data-mob-cal="mob-cal-1">
            <div class="rk-step-indicator" style="background:var(--rk-cal-blue); color:#fff; width:28px; height:28px;"><span style="font-size:12px;">1</span></div>
            <h3>Wstępna nastawa robocza</h3>
            <svg class="rk-mob-cal-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg);"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cal-content active" id="mob-cal-1">
            <div class="rk-cal-display-box" style="padding:15px; margin-bottom:15px;">
                <div class="rk-cal-display-text">
                    <h4 style="margin-bottom:0;">Faza Rozruchu:</h4>
                    <p class="rk-cal-display-value" style="font-size:20px !important;">25 &#8211; 30&deg;C</p>
                </div>
            </div>
            <p>Ustal początkową bezpieczną temperaturę. Pamiętaj, aby procedurę <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wygrzewania wylewki</a> zacząć rygorystycznie od minimalnych parametrów (zwykle ok. 20&deg;C).</p>
        </div>

        <button class="rk-mob-cal-btn" data-mob-cal="mob-cal-2">
            <div class="rk-step-indicator" style="width:28px; height:28px;"><span style="font-size:12px;">2</span></div>
            <h3>Tolerancja na bezwładność</h3>
            <svg class="rk-mob-cal-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cal-content" id="mob-cal-2">
            <div class="rk-cal-display-box" style="padding:15px; margin-bottom:15px;">
                <div class="rk-cal-display-text">
                    <h4 style="margin-bottom:0;">Odczekaj:</h4>
                    <p class="rk-cal-display-value" style="font-size:20px !important;">24 &#8211; 48 godzin</p>
                </div>
            </div>
            <p>Nie kręć pokrętłem co godzinę. Beton posiada wielką <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Układ musi wchłonąć i ustabilizować dostarczoną energię.</p>
        </div>

        <button class="rk-mob-cal-btn" data-mob-cal="mob-cal-3">
            <div class="rk-step-indicator" style="width:28px; height:28px;"><span style="font-size:12px;">3</span></div>
            <h3>Weryfikacja pirometrem</h3>
            <svg class="rk-mob-cal-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cal-content" id="mob-cal-3">
            <div class="rk-cal-display-box" style="padding:15px; margin-bottom:15px;">
                <div class="rk-cal-display-text">
                    <h4 style="margin-bottom:0;">Użyj sprzętu:</h4>
                    <p class="rk-cal-display-value" style="font-size:20px !important;">Termometr laserowy</p>
                </div>
            </div>
            <p>Skala nadrukowana na plastikowym pokrętle zaworu często kłamie. Skoryguj pozycję głowicy po fizycznym zmierzeniu temperatury rury zasilającej na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu</a>.</p>
        </div>

        <button class="rk-mob-cal-btn" data-mob-cal="mob-cal-4">
            <div class="rk-step-indicator" style="width:28px; height:28px;"><span style="font-size:12px;">4</span></div>
            <h3>Mechaniczna blokada</h3>
            <svg class="rk-mob-cal-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cal-content" id="mob-cal-4">
            <div class="rk-cal-display-box" style="padding:15px; margin-bottom:15px;">
                <div class="rk-cal-display-text">
                    <h4 style="margin-bottom:0;">Zabezpiecz układ:</h4>
                    <p class="rk-cal-display-value" style="font-size:20px !important;">Blokada pierścienia</p>
                </div>
            </div>
            <p>Zdejmij kapsel głowicy i użyj blokady mechanicznej. Ogranicz fizyczny obrót tak, by nikt przypadkowo nie przebił <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperatury zasilania</a> (np. 45&deg;C).</p>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika DESKTOP
    var deskBtns = document.querySelectorAll('.rk-cal-step-btn');
    var deskPanels = document.querySelectorAll('.rk-cal-content-area .rk-cal-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-cal');
            
            // Czyszczenie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panelToShow = document.getElementById(targetId);
            if(panelToShow !== null) {
                panelToShow.classList.add('active');
            }
        });
    });

    // Logika MOBILE (Pionowy Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-cal-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-cal');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if(this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez "&&"
            var allMobBtns = document.querySelectorAll('.rk-mob-cal-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-cal-content');
            var allBadges = document.querySelectorAll('.rk-mob-cal-btn .rk-step-indicator');
            
            allMobBtns.forEach(function(b) { 
                b.classList.remove('active'); 
                var icon = b.querySelector('.rk-mob-cal-icon');
                if(icon !== null) {
                    icon.style.transform = 'rotate(0deg)';
                }
            });
            
            allMobContents.forEach(function(c) { c.classList.remove('active'); });
            allBadges.forEach(function(badge) {
                badge.style.background = '#e2e8f0';
                badge.style.color = 'var(--rk-cal-gray)';
            });

            // Rozwijanie wybranego
            if(isAlreadyActive === false) {
                this.classList.add('active');
                
                var activeBadge = this.querySelector('.rk-step-indicator');
                if (activeBadge !== null) {
                    activeBadge.style.background = 'var(--rk-cal-blue)';
                    activeBadge.style.color = '#ffffff';
                }
                
                var activeIcon = this.querySelector('.rk-mob-cal-icon');
                if (activeIcon !== null) {
                    activeIcon.style.transform = 'rotate(180deg)';
                }
                
                if(contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset dla kontenera, aby motyw WP nie psuł wyglądu */
#rk-diagnostyka-bledow,
#rk-diagnostyka-bledow * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #f87171;
    --rk-err-green: #10b981;
    --rk-err-green-bg: #ecfdf5;
    --rk-err-green-border: #34d399;
    --rk-err-text: #334155;
    --rk-err-gray: #64748b;
    --rk-err-bg: #ffffff;
}

.rk-errors-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(220, 38, 38, 0.15);
    border: 1px solid #fecaca;
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-err-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 24px;
}

.rk-err-icon-main {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.rk-err-header-content h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
    border: none !important;
    padding: 0 !important;
}

.rk-err-header-content p {
    font-size: 16px !important;
    color: #fecaca !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Interaktywny Panel Diagnostyczny */
.rk-err-dashboard {
    padding: 35px 40px;
    background: #f8fafc;
}

.rk-err-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    margin-bottom: 16px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-err-card:last-child {
    margin-bottom: 0;
}

/* Przycisk Aktywacyjny Karty */
.rk-err-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    transition: background 0.3s;
}

.rk-err-trigger:hover {
    background: #f1f5f9;
}

.rk-err-status-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--rk-err-red-bg);
    color: var(--rk-err-red);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.4s;
}

.rk-err-trigger h3 {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--rk-err-dark) !important;
    margin: 0 !important;
    flex-grow: 1;
    line-height: 1.4 !important;
    border: none !important;
    padding: 0 !important;
}

.rk-err-chevron {
    width: 24px;
    height: 24px;
    color: var(--rk-err-gray);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
}

/* Rozwinięta Treść */
.rk-err-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-content-inner {
    overflow: hidden;
}

/* Wnętrze - poprawione wcięcia i czytelność */
.rk-err-details {
    padding: 0 25px 25px 25px;
}

.rk-err-box {
    padding: 20px;
    border-radius: 12px;
    margin-top: 15px;
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: var(--rk-err-text) !important; /* Ciemnoszary, czytelny tekst */
}

.rk-box-danger {
    background: var(--rk-err-red-bg);
    border-left: 4px solid var(--rk-err-red);
    border-top: 1px solid #fee2e2;
    border-right: 1px solid #fee2e2;
    border-bottom: 1px solid #fee2e2;
}

.rk-box-danger strong {
    color: #b91c1c !important; /* Tylko nagłówek jest czerwony */
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    font-weight: 800 !important;
}

.rk-box-solution {
    background: var(--rk-err-green-bg);
    border-left: 4px solid var(--rk-err-green);
    border-top: 1px solid #d1fae5;
    border-right: 1px solid #d1fae5;
    border-bottom: 1px solid #d1fae5;
}

.rk-box-solution strong {
    color: #047857 !important; /* Tylko nagłówek jest zielony */
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    font-weight: 800 !important;
}

.rk-box-solution a {
    color: #059669 !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Stany Aktywne */
.rk-err-card.active {
    border-color: var(--rk-err-red-border);
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.1);
}

.rk-err-card.active .rk-err-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-err-card.active .rk-err-trigger {
    background: #fafaf9;
}

.rk-err-card.active .rk-err-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-red);
}

.rk-err-card.active .rk-err-status-icon {
    background: var(--rk-err-red);
    color: #ffffff;
    transform: scale(1.05);
}

/* Mobile */
@media (max-width: 768px) {
    .rk-err-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-err-header-icon-main { width: 48px; height: 48px; }
    .rk-err-header-content h2 { font-size: 22px !important; }
    .rk-err-dashboard { padding: 20px; }
    .rk-err-trigger { padding: 15px; gap: 15px; }
    .rk-err-trigger h3 { font-size: 16px !important; }
    .rk-err-status-icon { width: 36px; height: 36px; }
    .rk-err-details { padding: 0 15px 20px 15px; }
    .rk-err-box { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Najczęstsze błędy montażowe i eksploatacyjne układów mieszających",
    "description": "Katalog krytycznych błędów hydraulicznych popełnianych przez instalatorów przy montażu zaworów mieszających, pomp obiegowych i bypassów w ogrzewaniu podłogowym.",
    "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://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-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-bledy",
    "name": "Katalog Krytycznych Błędów Hydraulicznych w Węzłach Mieszających",
    "description": "Baza danych dokumentująca powtarzalne usterki wykonawcze instalacji ogrzewania podłogowego wraz z ich symptomami termicznymi i fizycznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "odwrotne podłączenie zaworu mieszającego",
      "montaż pompy obiegowej na powrocie przed zaworem",
      "brak zaworu zwrotnego na bypassie podłogówki",
      "kalibracja zaworu termostatycznego ogrzewania",
      "wygrzewanie wylewki norma PN-EN 1264-4"
    ],
    "measurementTechnique": "Weryfikacja organoleptyczna kierunków przepływu oraz pomiar rozkładu temperatur na rozdzielaczu za pomocą pirometru laserowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Zamiana portów zasilania z powrotem skutkująca zablokowaniem przepływu gorącego medium.",
        "Błąd 2: Zła lokalizacja pompy uniemożliwiająca zassanie czynnika z kotła.",
        "Błąd 3: Brak zaworu zwrotnego wywołujący podsysanie zimnej wody na lewym obiegu.",
        "Błąd 4: Zaniechanie kalibracji skutkujące niedogrzaniem betonu w fazie wygrzewania wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-bledy",
    "name": "Skaner Diagnostyczny Instalacji Mieszającej",
    "description": "Interaktywny panel weryfikacyjny (Troubleshooting UI) pomagający inwestorom zidentyfikować nieprawidłowości hydrauliczne na podstawie objawów instalacji.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires modern browser with CSS Grid and JS support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-container" id="rk-diagnostyka-bledow">
    
    <div class="rk-err-header">
        <div class="rk-err-icon-main">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="#ffffff" 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-err-header-content">
            <h2>Najczęstsze błędy montażowe i eksploatacyjne układów mieszających</h2>
            <p>Wieloletnia praktyka na budowach pozwala mi na stworzenie listy krytycznych błędów, które nagminnie popełniają ekipy instalacyjne bez przygotowania inżynierskiego. Sprawdź, czy Twoja instalacja jest wolna od tych wad.</p>
        </div>
    </div>

    <div class="rk-err-dashboard">
        
        <div class="rk-err-card">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-status-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5"></path><path d="M4 21v-5h5"></path><path d="M21 3l-7 7"></path><path d="M3 21l7-7"></path></svg>
                </div>
                <h3>Odwrotne podłączenie portów zasilania i powrotu</h3>
                <svg class="rk-err-chevron" 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 class="rk-err-content-wrapper">
                <div class="rk-err-content-inner">
                    <div class="rk-err-details">
                        <div class="rk-err-box rk-box-danger">
                            <strong>
                                <svg width="16" height="16" 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>
                                Diagnoza Problemu
                            </strong>
                            Wizualnie zawór wygląda poprawnie, jednak siłownik kręci się w lewo zamiast w prawo lub port powrotu z instalacji został zamieniony z zasilaniem z kotła. Zawór zamyka się, gdy powinien się otwierać.
                        </div>
                        <div class="rk-err-box rk-box-solution">
                            <strong>
                                <svg width="16" height="16" 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>
                                Konsekwencja eksploatacyjna
                            </strong>
                            Instalacja działa &#8222;na opak&#8221;. Gorąca woda jest blokowana, wywołując skrajne wychłodzenie domu. To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania</a>. Należy bezwzględnie przestudiować schemat hydrauliczny zaworu.
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-err-card">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-status-icon">
                    <svg width="22" height="22" 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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <h3>Montaż pompy obiegowej przed zaworem</h3>
                <svg class="rk-err-chevron" 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 class="rk-err-content-wrapper">
                <div class="rk-err-content-inner">
                    <div class="rk-err-details">
                        <div class="rk-err-box rk-box-danger">
                            <strong>
                                <svg width="16" height="16" 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>
                                Diagnoza Problemu
                            </strong>
                            Zamontowanie pompy na powrocie przed zaworem zamiast za nim (w kierunku rozdzielacza). Prawidłowo pompa w układzie mieszającym musi tłoczyć wodę W stronę rozdzielacza zasilającego.
                        </div>
                        <div class="rk-err-box rk-box-solution">
                            <strong>
                                <svg width="16" height="16" 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>
                                Konsekwencja eksploatacyjna
                            </strong>
                            Taki układ uniemożliwia prawidłowe wysysanie i zasysanie gorącej wody ze źródła (port AB). Prawidłowo umieszczona <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa w instalacji podłogowej</a> jest kluczem do zrównoważenia przepływów.
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-err-card">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-status-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 2v6h-6"></path><path d="M3 12a9 9 0 0 1 15-6.7L21 8"></path><path d="M3 22v-6h6"></path><path d="M21 12a9 9 0 0 1-15 6.7L3 16"></path></svg>
                </div>
                <h3>Brak zaworu zwrotnego na bypassie powrotnym</h3>
                <svg class="rk-err-chevron" 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 class="rk-err-content-wrapper">
                <div class="rk-err-content-inner">
                    <div class="rk-err-details">
                        <div class="rk-err-box rk-box-danger">
                            <strong>
                                <svg width="16" height="16" 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>
                                Diagnoza Problemu
                            </strong>
                            Pominięcie zaworu zwrotnego – istna plaga instalacji! Gdy pompa pracuje z wysoką wydajnością, a zawór przymyka dopływ, dochodzi do odwrócenia przepływów w pętli.
                        </div>
                        <div class="rk-err-box rk-box-solution">
                            <strong>
                                <svg width="16" height="16" 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>
                                Konsekwencja eksploatacyjna
                            </strong>
                            Instalacja zaczyna &#8222;podsysać&#8221; brudną i zimną wodę powrotną do źródła w sposób całkowicie niekontrolowany. Dobrze zaprojektowane <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a> lub poprawny bypass rozwiązują ten konflikt ciśnień.
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-err-card">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-status-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                </div>
                <h3>Zostawienie regulacji bez kalibracji</h3>
                <svg class="rk-err-chevron" 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 class="rk-err-content-wrapper">
                <div class="rk-err-content-inner">
                    <div class="rk-err-details">
                        <div class="rk-err-box rk-box-danger">
                            <strong>
                                <svg width="16" height="16" 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>
                                Diagnoza Problemu
                            </strong>
                            Instalator montuje zawór termostatyczny o zakresie 20–43°C i zostawia go &#8222;w ciemno&#8221; w pozycji środkowej. Ignoruje przy tym konieczność wykonania dokładnego pomiaru kontrolnego za pomocą pirometru.
                        </div>
                        <div class="rk-err-box rk-box-solution">
                            <strong>
                                <svg width="16" height="16" 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>
                                Konsekwencja eksploatacyjna
                            </strong>
                            Woda ma faktycznie tylko 22°C. Efekt? Beton nie jest w stanie się wygrzać zgodnie z wymogami <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej</a> i normą <strong>PN-EN 1264-4</strong>, co drastycznie opóźnia bezpieczne ułożenie płytek lub paneli.
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var errCards = document.querySelectorAll('.rk-err-card');

    errCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-err-trigger');
        
        trigger.addEventListener('click', function() {
            var isAlreadyActive = false;
            
            if (card.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijamy wszystkie panele
            errCards.forEach(function(c) {
                c.classList.remove('active');
                c.querySelector('.rk-err-trigger').setAttribute('aria-expanded', 'false');
            });

            // Jeśli element nie był rozwinięty, rozwijamy go
            if (isAlreadyActive === false) {
                card.classList.add('active');
                trigger.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
/* Twardy reset typografii chroniący przed motywem WordPressa */
#rk-case-study-raport,
#rk-case-study-raport * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0284c7;
    --rk-cs-blue-bg: #f0f9ff;
    --rk-cs-red: #dc2626;
    --rk-cs-green: #059669;
    --rk-cs-gray: #64748b;
    --rk-cs-bg: #ffffff;
    --rk-cs-border: #e2e8f0;
}

.rk-cs-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-cs-bg);
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(2, 132, 199, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Nagłówek Raportu */
.rk-cs-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #0f172a 100%);
    color: #ffffff;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    position: relative;
}

.rk-cs-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-cs-blue);
}

.rk-cs-icon-main {
    width: 60px;
    height: 60px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-cs-title-box h2 {
    font-size: 24px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
}

.rk-cs-title-box p {
    font-size: 15px !important;
    color: #94a3b8 !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

.rk-cs-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #bae6fd !important;
    margin-bottom: 12px;
}

/* Interaktywna Teczka (Desktop) */
.rk-cs-interactive {
    display: flex;
    background: #f8fafc;
}

/* Zakładki bocznego menu */
.rk-cs-tabs {
    width: 300px;
    background: #ffffff;
    border-right: 1px solid var(--rk-cs-border);
    display: flex;
    flex-direction: column;
}

.rk-cs-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-cs-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s;
    position: relative;
}

.rk-cs-tab-btn:hover { background: var(--rk-cs-blue-bg); }

.rk-cs-tab-btn.active { background: var(--rk-cs-blue-bg); }

.rk-cs-tab-btn.active::before {
    content: '';
    position: absolute;
    left: 0; top: 0;
    height: 100%;
    width: 4px;
    background: var(--rk-cs-blue);
}

.rk-tab-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #e2e8f0;
    color: var(--rk-cs-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-cs-tab-btn.active .rk-tab-icon {
    background: var(--rk-cs-blue);
    color: #ffffff;
}

.rk-cs-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-cs-dark) !important;
    margin: 0 !important;
}

/* Obszar Treści */
.rk-cs-content-area {
    flex: 1;
    padding: 35px 40px;
}

.rk-cs-panel {
    display: none;
    animation: fadeInCS 0.4s ease forwards;
}

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

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

.rk-cs-panel h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-cs-dark) !important;
    margin: 0 0 15px 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-cs-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #475569 !important;
    margin: 0 0 15px 0 !important;
}

.rk-cs-panel a {
    color: var(--rk-cs-blue) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Boxy z danymi */
.rk-data-box {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 12px;
    padding: 20px;
    margin-top: 20px;
}

.rk-data-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px dashed var(--rk-cs-border);
}

.rk-data-row:last-child { border-bottom: none; padding-bottom: 0; }
.rk-data-row:first-child { padding-top: 0; }

.rk-data-label { font-size: 14px !important; color: var(--rk-cs-gray) !important; font-weight: 700 !important; }
.rk-data-value { font-size: 15px !important; color: var(--rk-cs-dark) !important; font-weight: 900 !important; text-align: right; }

.val-danger { color: var(--rk-cs-red) !important; }
.val-success { color: var(--rk-cs-green) !important; }

/* Mobile Akordeon */
.rk-cs-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-cs-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-cs-icon-main { width: 48px; height: 48px; }
    .rk-cs-title-box h2 { font-size: 22px !important; }
    
    .rk-cs-interactive { display: none; }
    
    .rk-cs-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-cs-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-cs-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-cs-btn.active { background: var(--rk-cs-blue-bg); border-left: 4px solid var(--rk-cs-blue); }
    
    .rk-mob-cs-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-cs-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-cs-icon {
        width: 20px;
        height: 20px;
        color: var(--rk-cs-blue);
        transition: transform 0.3s;
    }
    
    .rk-mob-cs-btn.active .rk-mob-cs-icon { transform: rotate(180deg); }
    
    .rk-mob-cs-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        border-bottom: 2px solid var(--rk-cs-blue);
    }
    
    .rk-mob-cs-content.active { display: block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Studium Przypadku: Wymiana źle dobranego zaworu mieszającego i diagnoza instalacji",
    "description": "Zapis inżynierskiego audytu hydraulicznego. Jak błędny parametr Kvs i brak sterowania pogodowego doprowadziły do taktowania pompy i jak to naprawiono.",
    "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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-case-study",
    "name": "Dane z audytu hydraulicznego - studium przypadku naprawy",
    "description": "Porównanie parametrów technicznych i kosztowych instalacji przed interwencją serwisową (błędny dobór armatury) i po wdrożeniu poprawek inżynieryjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "źle dobrany zawór mieszający kvs",
      "taktowanie pompy ciepła podłogówka",
      "wymiana zaworu 3-drogowego koszty",
      "audyt ogrzewania podłogowego",
      "zimna podłoga mimo gorącego zasilania awaria"
    ],
    "measurementTechnique": "Analiza wskaźnika Kvs, dynamiki przepływu na rotametrach oraz kosztów eksploatacyjnych w skali miesiąca zimowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Zastosowano zawór 1-calowy Kvs 1.6 dla domu 150m2. Objawy: taktowanie pompy ciepła, przepływy poniżej 0.5 l/min.",
        "Rozwiązanie: Wymiana na zawór obrotowy Kvs 4.0 oraz siłownik sterowany pogodowo.",
        "Efekt: Spadek oporów, wzrost przepływów do 2.0 l/min, obniżenie rachunków za energię elektryczną."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-case-study",
    "name": "Raport z Interwencji Hydraulicznej (Case Study)",
    "description": "Interaktywny raport dokumentujący przebieg audytu instalacji ogrzewania podłogowego, z podziałem na diagnozę, wdrożenie i wyniki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS for tab switching",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-case-study-raport">
    
    <div class="rk-cs-header">
        <div class="rk-cs-icon-main">
            <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="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>
        </div>
        <div class="rk-cs-title-box">
            <span class="rk-cs-badge">Case Study / Studium Przypadku</span>
            <h2>Wymiana źle dobranego zaworu: Od zimnej podłogi do pełnego komfortu</h2>
            <p>Zobacz zapis prawdziwej interwencji inżynierskiej. Dom 150 m&sup2;, wysokie rachunki i niedogrzane pokoje. Przyczyną okazał się jeden, błędnie dobrany element hydrauliczny przez poprzednią ekipę.</p>
        </div>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-cs-tabs">
            <button class="rk-cs-tab-btn active" data-tab="tab-1">
                <div class="rk-tab-icon"><svg width="20" height="20" 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>
                <h3>Zgłoszenie i Diagnoza</h3>
            </button>
            <button class="rk-cs-tab-btn" data-tab="tab-2">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div>
                <h3>Błąd Instalatora</h3>
            </button>
            <button class="rk-cs-tab-btn" data-tab="tab-3">
                <div class="rk-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg></div>
                <h3>Naprawa i Oszczędności</h3>
            </button>
        </div>

        <div class="rk-cs-content-area">
            
            <div id="tab-1" class="rk-cs-panel active">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-cs-red)" stroke-width="2" style="margin-right:8px;"><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> Zgłoszenie inwestora</h4>
                <p>Otrzymałem zlecenie audytu w nowym domu o powierzchni 150 m&sup2;. Inwestor skarżył się, że podłoga na parterze jest miejscami lodowata, a <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompa obiegowa</a> pracuje bardzo głośno. Dodatkowo kocioł nieustannie się włączał i wyłączał (zjawisko tzw. taktowania).</p>
                <div class="rk-data-box">
                    <div class="rk-data-row">
                        <span class="rk-data-label">Powierzchnia do ogrzania:</span>
                        <span class="rk-data-value">150 m&sup2; (14 pętli)</span>
                    </div>
                    <div class="rk-data-row">
                        <span class="rk-data-label">Przepływ na rotametrach:</span>
                        <span class="rk-data-value val-danger">zaledwie 0,5 l/min</span>
                    </div>
                </div>
            </div>

            <div id="tab-2" class="rk-cs-panel">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-cs-blue)" stroke-width="2" style="margin-right:8px;"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg> Źródło problemu</h4>
                <p>Poprzednia ekipa zamontowała najtańszą gotową grupę pompową z termostatycznym zaworem 3-drogowym o średnicy 1 cala. Błąd? Nikt nie policzył autorytetu zaworu. Jego współczynnik <strong>Kvs wynosił zaledwie 1.6 m&sup3;/h</strong>.</p>
                <p>Zawór stawiał gigantyczny opór hydrauliczny, z którym pompa nie mogła sobie poradzić. Kocioł nagrzewał małą porcję wody, nie mógł jej wypchnąć na instalację (bo zawór ją dławił) i natychmiast się wyłączał, marnując paliwo. To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów montażowych</a>.</p>
            </div>

            <div id="tab-3" class="rk-cs-panel">
                <h4><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-cs-green)" stroke-width="2" style="margin-right:8px;"><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> Interwencja i wyniki</h4>
                <p>Usunąłem wadliwy element i w jego miejsce wlutowałem obrotowy zawór 3-drogowy dobrany na podstawie obliczeń OZC o parametrze <strong>Kvs = 4.0 m&sup3;/h</strong>. Dodatkowo wyposażyłem go w elektroniczny siłownik i podpiąłem pod <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">automatykę pogodową</a>.</p>
                <div class="rk-data-box">
                    <div class="rk-data-row">
                        <span class="rk-data-label">Przepływ po naprawie:</span>
                        <span class="rk-data-value val-success">stabilne 2,0 l/min</span>
                    </div>
                    <div class="rk-data-row">
                        <span class="rk-data-label">Rachunki miesięczne:</span>
                        <span class="rk-data-value val-success">Spadek o ok. 20%</span>
                    </div>
                    <div class="rk-data-row">
                        <span class="rk-data-label">Komfort:</span>
                        <span class="rk-data-value">Pełne, równe wygrzanie płyty</span>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-cs-mobile-accordion">
        
        <button class="rk-mob-cs-btn active" data-mob-tab="mob-cs-1">
            <div class="rk-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg></div>
            <h3>Zgłoszenie i Diagnoza</h3>
            <svg class="rk-mob-cs-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg);"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cs-content active" id="mob-cs-1">
            <p>Zgłoszenie: zimna podłoga na 150m&sup2;, taktujący kocioł, przepływy na rotametrach to zaledwie 0,5 l/min.</p>
        </div>

        <button class="rk-mob-cs-btn" data-mob-tab="mob-cs-2">
            <div class="rk-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div>
            <h3>Błąd Instalatora</h3>
            <svg class="rk-mob-cs-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cs-content" id="mob-cs-2">
            <p>Poprzednia ekipa dobrała zawór &#8222;na gwint&#8221;, którego <strong>Kvs wynosił tylko 1.6 m&sup3;/h</strong>. Gigantyczny opór dławił pompę i zatrzymywał obieg.</p>
        </div>

        <button class="rk-mob-cs-btn" data-mob-tab="mob-cs-3">
            <div class="rk-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg></div>
            <h3>Naprawa i Oszczędności</h3>
            <svg class="rk-mob-cs-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </button>
        <div class="rk-mob-cs-content" id="mob-cs-3">
            <p>Wymiana na zawór Kvs = 4.0 m&sup3;/h ze sterowaniem pogodowym. Efekt? Przepływy wzrosły do bezpiecznych 2,0 l/min, a rachunki spadły o 20%.</p>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Obsługa DESKTOP
    var deskBtns = document.querySelectorAll('.rk-cs-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-cs-content-area .rk-cs-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-tab');
            
            // Czyszczenie klas
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Aktywacja
            this.classList.add('active');
            var panel = document.getElementById(targetId);
            if (panel !== null) {
                panel.classList.add('active');
            }
        });
    });

    // Obsługa MOBILE (Pionowy Akordeon)
    var mobBtns = document.querySelectorAll('.rk-mob-cs-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-tab');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if (this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez "&&"
            var allMobBtns = document.querySelectorAll('.rk-mob-cs-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-cs-content');
            
            allMobBtns.forEach(function(b) { 
                b.classList.remove('active'); 
                var icon = b.querySelector('.rk-mob-cs-icon');
                if(icon !== null) {
                    icon.style.transform = 'rotate(0deg)';
                }
            });
            
            allMobContents.forEach(function(c) { 
                c.classList.remove('active'); 
            });

            // Rozwijanie
            if (isAlreadyActive === false) {
                this.classList.add('active');
                var icon = this.querySelector('.rk-mob-cs-icon');
                if(icon !== null) {
                    icon.style.transform = 'rotate(180deg)';
                }
                
                if (contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
/* Twardy reset typografii chroniący przed motywem WordPressa */
#rk-ekspert-blok,
#rk-ekspert-blok * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
    /* Zgodnie z wytycznymi - całkowity brak animacji i transition */
    transition: none !important;
    animation: none !important;
}

:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #1d4ed8;
    --rk-auth-blue-bg: #eff6ff;
    --rk-auth-gold: #b45309;
    --rk-auth-gold-bg: #fffbeb;
    --rk-auth-text: #334155;
    --rk-auth-gray: #64748b;
    --rk-auth-bg: #ffffff;
    --rk-auth-border: #cbd5e1;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-auth-bg);
    border-radius: 16px;
    border: 2px solid var(--rk-auth-blue);
    box-shadow: 0 10px 25px -5px rgba(29, 78, 216, 0.15);
    overflow: hidden;
}

/* Nagłówek i Cytat */
.rk-auth-header {
    padding: 40px;
    background: #f8fafc;
    border-bottom: 2px solid var(--rk-auth-border);
    display: flex;
    align-items: center;
    gap: 30px;
}

.rk-auth-avatar-box {
    position: relative;
    flex-shrink: 0;
}

.rk-auth-avatar {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-auth-blue);
}

.rk-auth-badge {
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-auth-blue);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 11px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
    border: 2px solid #ffffff;
}

.rk-auth-quote-box {
    flex-grow: 1;
}

.rk-auth-quote-box h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    color: var(--rk-auth-dark) !important;
    margin: 0 0 15px 0 !important;
    line-height: 1.2 !important;
}

.rk-auth-quote-text {
    font-size: 18px !important;
    line-height: 1.6 !important;
    color: var(--rk-auth-text) !important;
    margin: 0 !important;
    font-style: italic;
    border-left: 4px solid var(--rk-auth-gold);
    padding-left: 20px;
    background: var(--rk-auth-gold-bg);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
}

/* Interaktywny Panel Eksperta */
.rk-auth-interactive {
    display: flex;
    background: #ffffff;
}

.rk-auth-sidebar {
    width: 300px;
    background: #f1f5f9;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
}

.rk-auth-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rk-auth-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-auth-tab-btn.active {
    background: #ffffff;
    border-left: 4px solid var(--rk-auth-blue);
}

.rk-auth-tab-icon {
    width: 24px;
    height: 24px;
    color: var(--rk-auth-gray);
}

.rk-auth-tab-btn.active .rk-auth-tab-icon {
    color: var(--rk-auth-blue);
}

.rk-auth-tab-btn h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--rk-auth-dark) !important;
    margin: 0 !important;
}

.rk-auth-content-area {
    flex: 1;
    padding: 35px 40px;
}

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

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

.rk-auth-panel h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-auth-dark) !important;
    margin: 0 0 15px 0 !important;
}

.rk-auth-panel p {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rk-auth-text) !important;
    margin: 0 0 15px 0 !important;
}

.rk-auth-panel strong {
    color: var(--rk-auth-dark) !important;
}

/* Moduł Social Media / Kontakt */
.rk-social-links {
    display: flex;
    gap: 15px;
    margin-top: 25px;
}

.rk-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    color: #ffffff !important;
}

.rk-social-fb { background: #1877F2; }
.rk-social-in { background: #0A66C2; }

/* Mobile (Pionowy Akordeon) */
.rk-auth-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-auth-header { padding: 25px 20px; flex-direction: column; text-align: center; gap: 20px; }
    .rk-auth-quote-box h2 { font-size: 22px !important; }
    .rk-auth-quote-text { border-left: none; border-top: 4px solid var(--rk-auth-gold); border-radius: 0 0 12px 12px; text-align: left; }
    
    .rk-auth-interactive { display: none; }
    
    .rk-auth-mobile-accordion {
        display: flex;
        flex-direction: column;
        background: #f8fafc;
    }
    
    .rk-mob-auth-btn {
        width: 100%;
        text-align: left;
        background: #ffffff;
        border: none;
        border-bottom: 1px solid var(--rk-auth-border);
        padding: 20px;
        display: flex;
        align-items: center;
        gap: 15px;
        cursor: pointer;
    }
    
    .rk-mob-auth-btn.active {
        background: var(--rk-auth-blue-bg);
        border-left: 4px solid var(--rk-auth-blue);
    }
    
    .rk-mob-auth-btn h3 {
        font-size: 15px !important;
        font-weight: 800 !important;
        color: var(--rk-auth-dark) !important;
        margin: 0 !important;
        flex-grow: 1;
    }
    
    .rk-mob-auth-icon { color: var(--rk-auth-blue); }
    
    .rk-mob-auth-content {
        display: none;
        padding: 20px;
        background: #ffffff;
        border-bottom: 2px solid var(--rk-auth-blue);
    }
    
    .rk-mob-auth-content.active { display: block; }
    
    .rk-social-links { flex-direction: column; }
    .rk-social-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-robert-kucharski",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Robert Kucharski: Autorskie podsumowanie doboru zaworów mieszających",
    "description": "Oficjalny werdykt i inżynieryjne stanowisko Roberta Kucharskiego (Projekt-Ogrzewania.pl) w zakresie bezpieczeństwa i hydrauliki systemów podłogowych.",
    "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/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-robert-kucharski",
    "name": "Baza Wiedzy Eksperckiej - Robert Kucharski HVAC",
    "description": "Ustrukturyzowane stanowisko projektowe dotyczące regulacji hydraulicznej wylewek grzewczych w domach jednorodzinnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania opinie",
      "ekspert hvac robert kucharski kontakt",
      "profesjonalny dobór zaworu mieszającego podłogówka",
      "projekt instalacji ogrzewania podłogowego online",
      "autorytet w branży instalacyjnej ogrzewanie"
    ],
    "measurementTechnique": "Jakościowa i rzetelna ocena komponentów hydraulicznych dokonywana przez inżyniera z wieloletnim stażem wykonawczym i projektowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stanowisko 1: Prawidłowy dobór armatury zabezpiecza inwestycję na dekady.",
        "Weryfikacja: Oficjalne profile LinkedIn i Facebook weryfikujące tożsamość twórcy portalu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-robert-kucharski",
    "name": "Interaktywna Wizytówka Ekspercka",
    "description": "Dynamiczny komponent interfejsu (bez animacji) prezentujący filozofię projektową, doświadczenie oraz oficjalne kanały kontaktowe autora publikacji.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and basic JS. No animations applied.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-ekspert-blok">
    
    <div class="rk-auth-header">
        <div class="rk-auth-avatar-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert ds. Ogrzewania Podłogowego" class="rk-auth-avatar" loading="lazy">
            <div class="rk-auth-badge">Główny Specjalista</div>
        </div>
        <div class="rk-auth-quote-box">
            <h2>Robert Kucharski: Autorskie spojrzenie na układy mieszające</h2>
            <p class="rk-auth-quote-text">
                &#8222;Zawór mieszający to nie jest miejsce na kompromisy czy oszczędności z marketu budowlanego. To serce układu hydraulicznego, które chroni Twoją podłogę przed zniszczeniem i gwarantuje, że projektowe OZC pokryje się z realnymi rachunkami za ogrzewanie.&#8221;
            </p>
        </div>
    </div>

    <div class="rk-auth-interactive">
        <div class="rk-auth-sidebar">
            <button class="rk-auth-tab-btn active" data-auth="auth-1">
                <svg class="rk-auth-tab-icon" 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>
                <h3>Filozofia projektowa</h3>
            </button>
            <button class="rk-auth-tab-btn" data-auth="auth-2">
                <svg class="rk-auth-tab-icon" 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><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>
                <h3>Gwarancja i bezpieczeństwo</h3>
            </button>
            <button class="rk-auth-tab-btn" data-auth="auth-3">
                <svg class="rk-auth-tab-icon" 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>
                <h3>Zweryfikuj mnie</h3>
            </button>
        </div>

        <div class="rk-auth-content-area">
            
            <div id="auth-1" class="rk-auth-panel active">
                <h4>Inżynieria ponad intuicję</h4>
                <p>W każdym z ponad 1000 projektów, które przeszły przez moje ręce, zasada jest jedna: <strong>nie zgadujemy</strong>. Dobór zaworu, średnicy rur czy mocy pompy obiegowej to czysta matematyka. Jeśli instalator w Twoim domu dobiera osprzęt na zasadzie &#8222;zawsze tak robiłem i działało&#8221;, naraża Twój budżet na potężne straty w perspektywie kolejnych dekad.</p>
            </div>

            <div id="auth-2" class="rk-auth-panel">
                <h4>Twoja podłoga jest bezpieczna</h4>
                <p>Niezależnie od tego, czy zasilasz dom z nowoczesnej pompy ciepła, czy z kotła na pellet pracującego na wysokich parametrach rzędu 70°C – precyzyjnie dobrany zawór mieszający z odpowiednim współczynnikiem <strong>Kvs</strong> (oraz jego inteligentne wysterowanie) stanowi żelazną barierę. Twoja wylewka i okładziny wykończeniowe nie ulegną uszkodzeniu.</p>
            </div>

            <div id="auth-3" class="rk-auth-panel">
                <h4>Bądźmy w kontakcie technicznym</h4>
                <p>Wiedzę na temat hydrauliki i nowoczesnego budownictwa przekazuję w sposób twardy, bezpośredni i bez marketingowej ściemy. Jeśli zależy Ci na merytoryce, zapraszam na moje oficjalne kanały:</p>
                <div class="rk-social-links">
                    <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-fb">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                        Fanpage Projekt-Ogrzewania
                    </a>
                    <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-in">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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>
                        Profil LinkedIn
                    </a>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-auth-mobile-accordion">
        
        <button class="rk-mob-auth-btn active" data-mob-auth="mob-auth-1">
            <h3>Filozofia projektowa</h3>
            <svg class="rk-mob-auth-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
        </button>
        <div class="rk-mob-auth-content active" id="mob-auth-1">
            <p>W moich projektach <strong>nie zgadujemy</strong>. Dobór zaworu czy mocy pompy to czysta matematyka. Jeśli instalator dobiera osprzęt na zasadzie &#8222;zawsze tak robiłem&#8221;, naraża Twój budżet.</p>
        </div>

        <button class="rk-mob-auth-btn" data-mob-auth="mob-auth-2">
            <h3>Gwarancja i bezpieczeństwo</h3>
            <svg class="rk-mob-auth-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
        </button>
        <div class="rk-mob-auth-content" id="mob-auth-2">
            <p>Precyzyjnie dobrany zawór mieszający z odpowiednim <strong>Kvs</strong> stanowi żelazną barierę. Twoja wylewka i okładziny wykończeniowe nie ulegną uszkodzeniu, niezależnie od źródła ciepła.</p>
        </div>

        <button class="rk-mob-auth-btn" data-mob-auth="mob-auth-3">
            <h3>Zweryfikuj mnie</h3>
            <svg class="rk-mob-auth-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
        </button>
        <div class="rk-mob-auth-content" id="mob-auth-3">
            <p>Wiedzę budowlaną przekazuję bezpośrednio, bez marketingowej ściemy. Bądźmy w kontakcie:</p>
            <div class="rk-social-links">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-fb">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Fanpage FB
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-in">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><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>
                    LinkedIn
                </a>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zgodnie z wytycznymi - brak animacji, czysta podmiana klas (display block/none)
    
    // Logika DESKTOP
    var deskBtns = document.querySelectorAll('.rk-auth-tab-btn');
    var deskPanels = document.querySelectorAll('.rk-auth-content-area .rk-auth-panel');

    deskBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-auth');
            
            // Czyszczenie
            deskBtns.forEach(function(b) { b.classList.remove('active'); });
            deskPanels.forEach(function(p) { p.classList.remove('active'); });
            
            // Natychmiastowa aktywacja bez animacji
            this.classList.add('active');
            var panel = document.getElementById(targetId);
            if (panel !== null) {
                panel.classList.add('active');
            }
        });
    });

    // Logika MOBILE
    var mobBtns = document.querySelectorAll('.rk-mob-auth-btn');
    
    mobBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-mob-auth');
            var contentBlock = document.getElementById(targetId);
            
            var isAlreadyActive = false;
            if (this.classList.contains('active')) {
                isAlreadyActive = true;
            }

            // Zwijanie wszystkich bez animacji
            var allMobBtns = document.querySelectorAll('.rk-mob-auth-btn');
            var allMobContents = document.querySelectorAll('.rk-mob-auth-content');
            
            allMobBtns.forEach(function(b) { b.classList.remove('active'); });
            allMobContents.forEach(function(c) { c.classList.remove('active'); });

            // Rozwijanie
            if (isAlreadyActive === false) {
                this.classList.add('active');
                if (contentBlock !== null) {
                    contentBlock.classList.add('active');
                }
            }
        });
    });

});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-gray: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-border: #e2e8f0;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-header-icon {
    width: 60px;
    height: 60px;
    background: rgba(56, 189, 248, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
    flex-shrink: 0;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

.rk-faq-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Akordeon */
.rk-faq-list {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
}

.rk-faq-item {
    border-bottom: 1px solid var(--rk-faq-border);
    background: #ffffff;
    transition: background-color 0.3s ease;
}

.rk-faq-item:last-child {
    border-bottom: none;
}

/* Pytanie (Przycisk) */
.rk-faq-q {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 25px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-faq-q:hover {
    background: var(--rk-faq-light-blue);
}

.rk-faq-q h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-faq-toggle-icon {
    width: 24px;
    height: 24px;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

.rk-faq-a-inner {
    overflow: hidden;
    padding: 0 40px; /* Padding tylko po bokach w stanie zwiniętym */
}

/* Aktywny stan elementu */
.rk-faq-item.active .rk-faq-a-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-item.active .rk-faq-q {
    background: var(--rk-faq-light-blue);
}

.rk-faq-item.active .rk-faq-q h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-item.active .rk-faq-a-inner {
    padding-bottom: 25px; /* Dodanie dolnego marginesu przy rozwarciu */
}

.rk-faq-item.active .rk-faq-toggle-icon {
    transform: rotate(180deg);
}

/* Tekst Odpowiedzi */
.rk-faq-answer-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-gray);
    margin: 0;
    padding-top: 10px;
    border-top: 1px dashed var(--rk-faq-border);
}

.rk-faq-answer-text a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-answer-text a:hover {
    border-color: var(--rk-faq-blue);
}

/* Responsywność dla Mobile */
@media (max-width: 768px) {
    .rk-faq-header { padding: 25px 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-faq-header-icon { width: 50px; height: 50px; }
    .rk-faq-header-text h2 { font-size: 22px; }
    .rk-faq-q { padding: 20px; }
    .rk-faq-q h3 { font-size: 16px; }
    .rk-faq-a-inner { padding: 0 20px; }
    .rk-faq-answer-text { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące zaworów mieszających",
    "description": "Baza wiedzy i odpowiedzi na najczęstsze problemy techniczne inwestorów dotyczące sterowania układami mieszającymi w ogrzewaniu podłogowym.",
    "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://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-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#faq-schema",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy zawór mieszający jest konieczny, jeśli mam nowoczesną pompę ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, jeśli pompa ciepła zasila wyłącznie ogrzewanie podłogowe w całym budynku, jest ona bezpośrednio zaprogramowana na pracę niskotemperaturową (np. 35°C) i montaż dodatkowego zaworu mieszającego jest błędem generującym straty hydrauliczne. Zawór jest niezbędny tylko wtedy, gdy pompa musi równolegle przygotowywać wysoką temperaturę dla grzejników radiacyjnych lub innych odbiorników technologicznych."
        }
      },
      {
        "@type": "Question",
        "name": "Jak poznać, że zawór mieszający w mojej podłogówce jest uszkodzony lub zablokowany?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Głównym objawem jest całkowicie zimna wylewka pomimo pracy źródła ciepła i pompy obiegowej, bądź odwrotnie – gwałtowny wzrost temperatury na rozdzielaczu powyżej 50°C. Często dochodzi również do zablokowania mechanicznego zawieradła przez kamień kotłowy lub szlam, co objawia się brakiem reakcji na ręczną zmianę nastawy na skali zaworu."
        }
      },
      {
        "@type": "Question",
        "name": "Co oznacza współczynnik Kvs na tabliczce znamionowej zaworu mieszającego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Współczynnik Kvs to nominalny przepływ objętościowy wody w metrach sześciennych na godzinę (m³/h) przez całkowicie otwarty zawór przy założeniu, że spadek ciśnienia na tym zaworze wynosi dokładnie 1 bar. Jest to najważniejsza wartość obliczeniowa określająca realną wydajność hydrauliczną elementu, niezależna od fizycznej średnicy gwintu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę samodzielnie zamontować siłownik elektryczny na zainstalowanym zaworze termostatycznym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, tradycyjne zawory termostatyczne posiadają wewnętrzną konstrukcję sprężynową przystosowaną do nacisku trzpienia głowicy kapilarnej i nie można na nich bezpośrednio osadzić siłownika obrotowego. Automatyzacja wymaga zastosowania zaworu mieszającego obrotowego (3- lub 4-drogowego) wyposażonego w uniwersalny trzpień montażowy pod adaptery siłowników elektrycznych."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki zakres temperatur powinien mieć termostatyczny zawór mieszający do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalny i bezpieczny zakres regulacji dla termostatycznych zaworów mieszających dedykowanych do instalacji płaszczyznowych wynosi 20–43°C lub maksymalnie 35–60°C (z bezwzględnym ograniczeniem mechanicznym nastawy do poziomu 45°C). Pozwala to na pełną kontrolę nad temperaturą roboczą jastrychu zarówno w fazie rozruchu technologicznego, jak i podczas standardowej eksploatacji zimowej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-faq",
    "name": "Parametry techniczne i eksploatacyjne zaworów mieszających (Baza Wiedzy)",
    "description": "Zestawienie inżynieryjnych wartości odniesienia, w tym dopuszczalnych zakresów temperatur pracy i definicji przepustowości hydraulicznej w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik kvs zaworu mieszającego m3/h",
      "temperatura zasilania ogrzewania podłogowego z pompy ciepła",
      "zablokowany zawór termostatyczny objawy",
      "siłownik obrotowy do zaworu 3 drogowego",
      "bezpieczna temperatura wylewki podłogówki"
    ],
    "measurementTechnique": "Określanie przepływów masowych (Kvs) przy spadku ciśnienia 1 bar oraz weryfikacja zablokowania przepływów termometrem kontaktowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Nominalny przepływ Kvs (m3/h) przy spadku 1 bar jako główne kryterium doboru armatury.",
        "Maksymalna temperatura zasilania dla jastrychu zablokowana mechanicznie na 45°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-faq",
    "name": "Interaktywny panel FAQ ogrzewania podłogowego",
    "description": "Dynamiczny komponent interfejsu użytkownika w formie akordeonu, pozwalający na szybkie odszukiwanie odpowiedzi technicznych bez konieczności przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS Grid Support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-zawor-mieszajacy">
    
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" 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>
                <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>
        </div>
        <div class="rk-faq-header-text">
            <h2>FAQ – Najczęściej zadawane pytania dotyczące zaworów mieszających</h2>
            <p>Kliknij wybrane pytanie, aby rozwinąć techniczną odpowiedź eksperta.</p>
        </div>
    </div>

    <div class="rk-faq-list">
        
        <div class="rk-faq-item">
            <button class="rk-faq-q" aria-expanded="false">
                <h3>Czy zawór mieszający jest konieczny, jeśli mam nowoczesną pompę ciepła?</h3>
                <svg class="rk-faq-toggle-icon" 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 class="rk-faq-a-wrapper">
                <div class="rk-faq-a-inner">
                    <p class="rk-faq-answer-text">
                        Nie, jeśli pompa ciepła zasila wyłącznie ogrzewanie podłogowe w całym budynku, jest ona bezpośrednio zaprogramowana na pracę niskotemperaturową (np. 35°C) i montaż dodatkowego zaworu mieszającego jest błędem generującym straty hydrauliczne. Zobacz wpis: <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">czy pompa ciepła ogrzeje dom z podłogówką</a>, aby poznać poprawne schematy układów. Zawór jest niezbędny tylko wtedy, gdy pompa musi równolegle przygotowywać wysoką temperaturę dla grzejników radiacyjnych lub innych odbiorników technologicznych.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-q" aria-expanded="false">
                <h3>Jak poznać, że zawór mieszający w mojej podłogówce jest uszkodzony lub zablokowany?</h3>
                <svg class="rk-faq-toggle-icon" 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 class="rk-faq-a-wrapper">
                <div class="rk-faq-a-inner">
                    <p class="rk-faq-answer-text">
                        Głównym objawem jest całkowicie zimna wylewka pomimo pracy źródła ciepła i pompy obiegowej, co może być mylone z <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawami zapowietrzenia ogrzewania podłogowego</a>, bądź odwrotnie – gwałtowny wzrost temperatury na rozdzielaczu powyżej 50°C. Często dochodzi również do zablokowania mechanicznego zawieradła przez kamień kotłowy lub szlam, co objawia się brakiem reakcji na ręczną zmianę nastawy na skali zaworu.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-q" aria-expanded="false">
                <h3>Co oznacza współczynnik Kvs na tabliczce znamionowej zaworu mieszającego?</h3>
                <svg class="rk-faq-toggle-icon" 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 class="rk-faq-a-wrapper">
                <div class="rk-faq-a-inner">
                    <p class="rk-faq-answer-text">
                        Współczynnik Kvs to nominalny przepływ objętościowy wody w metrach sześciennych na godzinę (m³/h) przez całkowicie otwarty zawór przy założeniu, że spadek ciśnienia na tym zaworze wynosi dokładnie 1 bar. Jest to najważniejsza wartość obliczeniowa określająca realną wydajność hydrauliczną elementu, niezależna od tego, jakie <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnice rur zasilających</a> zostały zastosowane przed węzłem mieszającym.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-q" aria-expanded="false">
                <h3>Czy mogę samodzielnie zamontować siłownik elektryczny na zainstalowanym zaworze termostatycznym?</h3>
                <svg class="rk-faq-toggle-icon" 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 class="rk-faq-a-wrapper">
                <div class="rk-faq-a-inner">
                    <p class="rk-faq-answer-text">
                        Nie, tradycyjne zawory termostatyczne posiadają wewnętrzną konstrukcję sprężynową przystosowaną do nacisku trzpienia głowicy kapilarnej i nie można na nich bezpośrednio osadzić siłownika obrotowego. Automatyzacja, taka jak np. zaawansowane <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe</a>, wymaga zastosowania zaworu mieszającego obrotowego (3- lub 4-drogowego) wyposażonego w uniwersalny trzpień montażowy pod adaptery siłowników elektrycznych.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-q" aria-expanded="false">
                <h3>Jaki zakres temperatur powinien mieć termostatyczny zawór mieszający do podłogówki?</h3>
                <svg class="rk-faq-toggle-icon" 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 class="rk-faq-a-wrapper">
                <div class="rk-faq-a-inner">
                    <p class="rk-faq-answer-text">
                        Optymalny i bezpieczny zakres regulacji dla termostatycznych zaworów mieszających dedykowanych do instalacji płaszczyznowych wynosi 20–43°C lub maksymalnie 35–60°C. Musisz jednak pamiętać, jak wygląda fizyczna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna dopuszczalna temperatura zasilania</a> (bezwzględne ograniczenie mechaniczne nastawy do poziomu 45°C). Pozwala to na pełną kontrolę nad temperaturą roboczą jastrychu zarówno w fazie rozruchu technologicznego, jak i podczas standardowej eksploatacji zimowej.
                    </p>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(function(item) {
        const btn = item.querySelector('.rk-faq-q');
        
        btn.addEventListener('click', function() {
            const isActive = item.classList.contains('active');
            
            // Zwijamy wszystkie elementy
            faqItems.forEach(function(el) {
                el.classList.remove('active');
                el.querySelector('.rk-faq-q').setAttribute('aria-expanded', 'false');
            });

            // Rozwijamy kliknięty, jeśli wcześniej był zwinięty
            if (isActive === false) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-base-dark: #1e293b;
    --rk-base-blue: #0ea5e9;
    --rk-base-light-blue: #e0f2fe;
    --rk-base-accent: #f59e0b;
    --rk-base-green: #059669;
    --rk-base-red: #dc2626;
    --rk-base-gray: #475569;
    --rk-base-bg: #ffffff;
    --rk-base-border: #cbd5e1;
}

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

/* Sekcja Tytułowa */
.rk-final-header {
    padding: 40px 45px 30px;
    background: linear-gradient(145deg, #0f172a 0%, var(--rk-base-dark) 100%);
    color: #ffffff;
    position: relative;
}

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

.rk-final-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

/* Sekcja Interaktywna - Przełącznik Technologii */
.rk-interactive-panel {
    padding: 35px 45px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-base-border);
}

.rk-panel-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-base-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Switcher */
.rk-switch-group {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

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

.rk-switch-btn:hover {
    border-color: #94a3b8;
    background: #f1f5f9;
}

.rk-switch-btn.active[data-tech="old"] {
    border-color: var(--rk-base-red);
    background: #fef2f2;
    box-shadow: 0 8px 16px -4px rgba(220, 38, 38, 0.15);
}

.rk-switch-btn.active[data-tech="new"] {
    border-color: var(--rk-base-green);
    background: #ecfdf5;
    box-shadow: 0 8px 16px -4px rgba(5, 150, 105, 0.15);
}

.rk-icon-box {
    width: 50px;
    height: 50px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: var(--rk-base-gray);
    flex-shrink: 0;
}

.rk-switch-btn.active[data-tech="old"] .rk-icon-box { background: var(--rk-base-red); color: #fff; }
.rk-switch-btn.active[data-tech="new"] .rk-icon-box { background: var(--rk-base-green); color: #fff; }

.rk-switch-text h4 { margin: 0 0 5px 0; font-size: 16px; font-weight: 800; color: var(--rk-base-dark); }
.rk-switch-text p { margin: 0; font-size: 13px; color: var(--rk-base-gray); }

/* Zawartość Dynamiczna */
.rk-dynamic-view {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 25px;
    align-items: start;
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-base-border);
}

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

.rk-wheel { transform-origin: center; transition: transform 0.5s; }
.state-old .rk-wheel { fill: var(--rk-base-red); }
.state-new .rk-wheel { fill: var(--rk-base-green); animation: spinWheel 4s linear infinite; }

@keyframes spinWheel { 100% { transform: rotate(360deg); } }

.rk-dyn-content h3 { margin: 0 0 10px 0; font-size: 20px; font-weight: 800; color: var(--rk-base-dark); }
.rk-dyn-content p { margin: 0 0 15px 0; font-size: 15px; line-height: 1.7; color: var(--rk-base-gray); }
.rk-dyn-content ul { margin: 0; padding-left: 20px; color: var(--rk-base-gray); font-size: 15px; line-height: 1.6; }
.rk-dyn-content li { margin-bottom: 8px; }
.rk-dyn-content a { color: var(--rk-base-blue); font-weight: 700; text-decoration: none; border-bottom: 1px dashed var(--rk-base-blue); }
.rk-dyn-content a:hover { color: #0284c7; border-bottom-style: solid; }

/* Tagi Długi Ogon */
.rk-tags-container {
    padding: 25px 45px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    border-bottom: 1px solid var(--rk-base-border);
}

.rk-mat-tag {
    background: var(--rk-base-light-blue);
    color: #0369a1;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid #bae6fd;
    white-space: nowrap;
}

/* Sekcja CTA */
.rk-final-cta {
    padding: 40px 45px;
    text-align: center;
    background: #f8fafc;
}

.rk-final-cta h3 {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: var(--rk-base-dark);
}

.rk-final-cta p {
    font-size: 16px;
    color: var(--rk-base-gray);
    margin: 0 auto 25px auto;
    max-width: 650px;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-base-accent);
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}

.rk-btn-cta:hover {
    transform: translateY(-3px);
    background: #d97706;
    box-shadow: 0 15px 25px -5px rgba(245, 158, 11, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-final-header, .rk-interactive-panel, .rk-dynamic-view, .rk-tags-container, .rk-final-cta { padding: 25px 20px; }
    .rk-switch-group { flex-direction: column; }
    .rk-dynamic-view { grid-template-columns: 1fr; text-align: center; }
    .rk-dyn-svg { max-width: 80px; margin: 0 auto; }
    .rk-dyn-content ul { text-align: left; }
    .rk-btn-cta { width: 100%; font-size: 15px; padding: 16px 10px; }
    .rk-final-header h2 { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Podsumowanie – Bezpieczna i wydajna instalacja na lata",
    "description": "Zawór mieszający w ogrzewaniu podłogowym to inżynieryjny fundament. Sprawdź, dlaczego sterowanie pogodowe i profesjonalny dobór Kvs są kluczowe dla efektywności.",
    "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://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-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-podsumowanie",
    "name": "Wydajność Systemów Sterowania Zaworem Mieszającym",
    "description": "Zestawienie porównawcze efektywności stałowartościowego sterowania termostatycznego w stosunku do zaawansowanej automatyki pogodowej sterującej siłownikiem obrotowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zawór mieszający w ogrzewaniu podłogowym",
      "automatyka pogodowa do podłogówki",
      "współczynnik kvs zaworu",
      "siłownik obrotowy zaworu mieszającego",
      "koszty eksploatacyjne ogrzewania"
    ],
    "measurementTechnique": "Analiza dynamiki stabilności hydraulicznej instalacji względem zastosowanego algorytmu sterującego (termostat kontra pogodówka).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sterowanie Głowicą Termostatyczną: Archaiczne, reaguje z opóźnieniem, ignoruje zmienne zyski ciepła.",
        "Automatyka Pogodowa (Siłownik): Proaktywna reakcja, optymalizacja kosztów eksploatacyjnych, najwyższe bezpieczeństwo posadzki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-podsumowanie",
    "name": "Symulator Automatyki Zaworu Mieszającego",
    "description": "Interaktywny moduł edukacyjny pozwalający na wizualizację różnic operacyjnych między dwiema technologiami regulacji hydraulicznej w ogrzewaniu podłogowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="podsumowanie-app">
    
    <div class="rk-final-header">
        <h2>Podsumowanie – Bezpieczna i wydajna instalacja na lata</h2>
        <p><strong>Zawór mieszający w ogrzewaniu podłogowym</strong> nie jest opcjonalnym dodatkiem, lecz fundamentalnym elementem inżynieryjnym instalacji, decydującym o sprawności termodynamicznej i bezpieczeństwie konstrukcyjnym budynku. Każdy proces doboru musi bezwzględnie opierać się na obliczeniach hydraulicznych przepływu masowego i współczynnika Kvs, a nie na intuicji czy średnicach rur.</p>
    </div>

    <div class="rk-interactive-panel">
        <h3 class="rk-panel-title">Wybierz standard sterowania zaworem:</h3>
        
        <div class="rk-switch-group">
            <button class="rk-switch-btn active" data-tech="old">
                <div class="rk-icon-box">
                    <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-switch-text">
                    <h4>Głowica Termostatyczna</h4>
                    <p>Sterowanie Stałowartościowe</p>
                </div>
            </button>
            <button class="rk-switch-btn" data-tech="new">
                <div class="rk-icon-box">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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 class="rk-switch-text">
                    <h4>Automatyka Pogodowa</h4>
                    <p>Siłownik Obrotowy (Smart)</p>
                </div>
            </button>
        </div>

        <div class="rk-dynamic-view state-old" id="dynBox">
            <div class="rk-dyn-icon">
                <svg class="rk-dyn-svg" viewBox="0 0 100 100">
                    <path class="rk-wheel" d="M50 10 C27.9 10 10 27.9 10 50 C10 72.1 27.9 90 50 90 C72.1 90 90 72.1 90 50 C90 27.9 72.1 10 50 10 Z M50 25 C63.8 25 75 36.2 75 50 C75 63.8 63.8 75 50 75 C36.2 75 25 63.8 25 50 C25 36.2 36.2 25 50 25 Z" />
                    <circle cx="50" cy="50" r="10" fill="#1e293b"/>
                </svg>
            </div>
            <div class="rk-dyn-content" id="dynContent">
                <h3 style="color: var(--rk-base-red);">Przestarzały Standard: Straty Energii</h3>
                <p>Archaiczne sterowanie stałowartościowe utrzymuje &#8222;sztywną&#8221; temperaturę zasilania, całkowicie ignorując zmiany pogodowe. Prowadzi to do częstego przegrzewania wylewki w cieplejsze dni i wyższych rachunków za ogrzewanie.</p>
                <ul>
                    <li>Zawór nie skoryguje błędów z <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">braku profesjonalnego projektu</a>.</li>
                    <li>Wolna reakcja elementu woskowego na dynamikę instalacji.</li>
                </ul>
            </div>
        </div>
    </div>

    <div class="rk-tags-container">
        <span class="rk-mat-tag"># zawór mieszający w ogrzewaniu podłogowym</span>
        <span class="rk-mat-tag"># automatyka pogodowa do podłogówki</span>
        <span class="rk-mat-tag"># współczynnik kvs zaworu</span>
        <span class="rk-mat-tag"># siłownik obrotowy zaworu mieszającego</span>
        <span class="rk-mat-tag"># sterowanie stałowartościowe</span>
        <span class="rk-mat-tag"># profesjonalny projekt inżynierski</span>
        <span class="rk-mat-tag"># bezpieczna temperatura wylewki</span>
        <span class="rk-mat-tag"># koszty eksploatacyjne ogrzewania</span>
    </div>

    <div class="rk-final-cta">
        <h3>Nie buduj instalacji na zgadywankach</h3>
        <p>Pamiętaj, że nawet najwyższej klasy zawór nie nadrobi braków na etapie układania rur czy pominięcia <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">rzetelnego bilansu OZC</a>. Podstawą sprawnie działającego systemu zawsze pozostaje kompletny projekt inżynierski, który spina wszystkie parametry w spójną całość.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            ZOBACZ WIĘCEJ PORAD INŻYNIERSKICH NA BLOGU
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggles = document.querySelectorAll('.rk-switch-btn');
    const view = document.getElementById('dynBox');
    const content = document.getElementById('dynContent');

    toggles.forEach(btn => {
        btn.addEventListener('click', function() {
            // Resetowanie klas
            toggles.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

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

            if (tech === 'new') {
                view.className = 'rk-dynamic-view state-new';
                content.innerHTML = `
                    <h3 style="color: var(--rk-base-green);">Nowoczesny Standard: Maksymalna Optymalizacja</h3>
                    <p>Jeśli zależy Ci na radykalnym obniżeniu kosztów eksploatacyjnych, zaawansowana automatyka pogodowa i siłownik obrotowy to jedyny słuszny wybór. System dynamicznie reaguje na straty ciepła budynku.</p>
                    <ul>
                        <li>Płynna kontrola zapobiega naprężeniom termicznym wylewki betonowej.</li>
                        <li>Pełna synergia z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniami OZC</a> i projektem.</li>
                    </ul>
                `;
            } else {
                view.className = 'rk-dynamic-view state-old';
                content.innerHTML = `
                    <h3 style="color: var(--rk-base-red);">Przestarzały Standard: Straty Energii</h3>
                    <p>Archaiczne sterowanie stałowartościowe utrzymuje "sztywną" temperaturę zasilania, całkowicie ignorując zmiany pogodowe. Prowadzi to do częstego przegrzewania wylewki w cieplejsze dni i wyższych rachunków za ogrzewanie.</p>
                    <ul>
                        <li>Zawór nie skoryguje błędów z <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">braku profesjonalnego projektu</a>.</li>
                        <li>Wolna reakcja elementu woskowego na dynamikę instalacji.</li>
                    </ul>
                `;
            }
        });
    });
});
</script>



<style>
/* Twardy reset typografii oraz CAŁKOWITA BLOKADA ANIMACJI chroniące przed motywami WP */
#rk-download-hub,
#rk-download-hub * {
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
    transition: none !important;
    animation: none !important;
}

:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #2563eb;
    --rk-dl-blue-bg: #eff6ff;
    --rk-dl-red: #dc2626;      /* Kolor dla PDF */
    --rk-dl-green: #059669;    /* Kolor dla Obrazka */
    --rk-dl-text: #334155;
    --rk-dl-gray: #64748b;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #cbd5e1;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-dl-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-dl-blue);
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.15);
    overflow: hidden;
}

/* Nagłówek Hubu */
.rk-dl-header {
    padding: 35px 40px;
    background: #f8fafc;
    border-bottom: 2px solid var(--rk-dl-border);
    display: flex;
    align-items: flex-start;
    gap: 25px;
}

.rk-dl-icon-main {
    width: 64px;
    height: 64px;
    background: var(--rk-dl-blue-bg);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-blue);
    flex-shrink: 0;
    border: 1px solid #bfdbfe;
}

.rk-dl-title-box h2 {
    font-size: 26px !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
    color: var(--rk-dl-dark) !important;
}

.rk-dl-title-box p {
    font-size: 15px !important;
    color: var(--rk-dl-text) !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Główny obszar (Desktop) */
.rk-dl-body {
    display: flex;
    background: #ffffff;
}

/* Lewa Kolumna (Miniatura) */
.rk-dl-sidebar-preview {
    width: 320px;
    background: #f1f5f9;
    border-right: 1px solid var(--rk-dl-border);
    padding: 35px 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-preview-label {
    display: block;
    font-size: 12px !important;
    text-transform: uppercase !important;
    font-weight: 800 !important;
    color: var(--rk-dl-gray) !important;
    margin-bottom: 15px !important;
    letter-spacing: 1px;
}

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

/* Prawa Kolumna (Przyciski pobierania) */
.rk-dl-content {
    flex: 1;
    padding: 35px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-content h4 {
    font-size: 20px !important;
    font-weight: 900 !important;
    color: var(--rk-dl-dark) !important;
    margin: 0 0 15px 0 !important;
}

.rk-dl-content p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--rk-dl-text) !important;
    margin: 0 0 25px 0 !important;
}

.rk-download-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-btn-download {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 25px;
    border-radius: 12px;
    text-decoration: none !important;
    font-weight: 800 !important;
    font-size: 16px !important;
    color: #ffffff !important;
    border: none;
}

.rk-btn-pdf {
    background: var(--rk-dl-red);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.3);
}

.rk-btn-webp {
    background: var(--rk-dl-green);
    box-shadow: 0 4px 10px rgba(5, 150, 105, 0.3);
}

.rk-btn-icon {
    background: rgba(255, 255, 255, 0.2);
    padding: 8px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-btn-text-wrap {
    display: flex;
    flex-direction: column;
}

.rk-btn-meta {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa autorskie */
.rk-copyright-bar {
    background: #f8fafc;
    padding: 15px 40px;
    text-align: center;
    border-top: 1px solid var(--rk-dl-border);
}

.rk-copyright-bar p {
    margin: 0 !important;
    font-size: 12px !important;
    color: var(--rk-dl-gray) !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-dl-header { padding: 25px 20px; flex-direction: column; align-items: center; text-align: center; gap: 15px; }
    .rk-dl-title-box h2 { font-size: 22px !important; }
    
    .rk-dl-body { flex-direction: column; }
    
    .rk-dl-sidebar-preview { 
        width: 100%; 
        border-right: none; 
        border-bottom: 1px solid var(--rk-dl-border); 
        padding: 25px 20px; 
    }
    
    .rk-dl-content { padding: 25px 20px; text-align: center; }
    
    .rk-copyright-bar { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Materiały inżynierskie: Schemat i infografika zaworu mieszającego",
    "description": "Pobierz darmową infografikę techniczną (PDF/WebP) przygotowaną przez Roberta Kucharskiego, przedstawiającą zasadę działania układu mieszającego w podłogówce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Zawor-mieszajacy-w-ogrzewaniu-podlogowym.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://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-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#dataset-infografika",
    "name": "Kompilacja wizualna: Schemat działania zaworu mieszającego (PDF/WebP)",
    "description": "Zasoby graficzne do druku dla instalatorów, zawierające ustrukturyzowane informacje na temat przepływów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat podłączenia zaworu trójdrogowego pdf",
      "infografika ogrzewanie podłogowe",
      "jak dobrać zawór kvs pdf",
      "zawór mieszający zasada działania schemat",
      "projekt ogrzewania podłogowego materiały do pobrania"
    ],
    "measurementTechnique": "Wizualizacja wektorowa strumieni cieplnych pozwalająca na błyskawiczne przyswojenie inżynieryjnych parametrów pracy podłogówki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format 1: Wersja PDF wysokiej rozdzielczości, idealna do druku jako dokumentacja do kotłowni.",
        "Format 2: Wersja WebP, zoptymalizowana, lekka do szybkiego podglądu na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/#webapp-infografika",
    "name": "Centrum Pobierania Dokumentacji Hydraulicznej",
    "description": "Moduł bezpośredniego pobierania plików technicznych, oferujący wgląd w miniaturę schematu i dystrybucję materiałów szkoleniowych.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5. Static UI without JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub">
    
    <div class="rk-dl-header">
        <div class="rk-dl-icon-main">
            <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="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>
        </div>
        <div class="rk-dl-title-box">
            <h2>Kompendium Wiedzy: Pobierz darmowe materiały</h2>
            <p>Przygotowałem dla Ciebie czytelną infografikę podsumowującą zasadę działania zaworów mieszających. Możesz ją wydrukować i zawiesić w kotłowni lub traktować jako szybką &#8222;ściągawkę&#8221; na budowie.</p>
        </div>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-sidebar-preview">
            <span class="rk-preview-label">Podgląd schematu</span>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Zawor-mieszajacy-w-ogrzewaniu-podlogowym.webp" alt="Podgląd Infografiki - Zawór mieszający w ogrzewaniu podłogowym" class="rk-preview-img" loading="lazy">
        </div>

        <div class="rk-dl-content">
            <h4>Wybierz format pliku</h4>
            <p>Udostępniam materiały w dwóch formatach: profesjonalny wektorowy PDF (idealny do ostrego druku np. na formacie A4) oraz lekki format graficzny WebP do szybkiego podglądu na smartfonie.</p>
            
            <div class="rk-download-grid">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Zawor-mieszajacy-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-pdf">
                    <div class="rk-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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><path d="M9 15v-4"></path><path d="M12 15v-4"></path><path d="M15 15v-4"></path></svg>
                    </div>
                    <div class="rk-btn-text-wrap">
                        <span>Pobierz dokument PDF</span>
                        <span class="rk-btn-meta">Wysoka jakość do druku</span>
                    </div>
                </a>
                
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Zawor-mieszajacy-w-ogrzewaniu-podlogowym.webp" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-webp">
                    <div class="rk-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    </div>
                    <div class="rk-btn-text-wrap">
                        <span>Pobierz wersję Obrazkową</span>
                        <span class="rk-btn-meta">Format WebP (Szybki podgląd)</span>
                    </div>
                </a>
            </div>
        </div>

    </div>

    <div class="rk-copyright-bar">
        <p>&copy; 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.</p>
    </div>

</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">Zawór mieszający 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>Krzywa grzewcza w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 06 Jan 2026 10:25:59 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kocioł gazowy]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[automatyka c.o.]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[regulacja ogrzewania]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3069</guid>

					<description><![CDATA[<p>Krzywa grzewcza w ogrzewaniu podłogowym to temat, który decyduje nie tylko o komforcie cieplnym, ale też o realnych kosztach eksploatacji domu. W artykule pokazujemy, dlaczego to właśnie algorytm sterujący, a nie sama instalacja, jest kluczem do efektywnego ogrzewania. Krok po kroku wyjaśniamy, jak działa krzywa grzewcza, jak dobrać jej parametry do rodzaju budynku oraz jak ją prawidłowo stroić w praktyce, aby uniknąć przegrzewania, niedogrzania i niepotrzebnych strat energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #0284c7;
    --rk-hero-bg: #f8fafc;
    --rk-hero-border: #e2e8f0;
    --rk-hero-text: #475569;
    --rk-hero-red: #ef4444;
    --rk-hero-green: #10b981;
}

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

/* Sekcja Główna - Hook */
.rk-hero-hook {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-hero-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

.rk-hero-hook h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-hero-hook h2 span {
    color: #38bdf8;
}

.rk-hook-text {
    font-size: 17px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

.rk-hook-text strong {
    color: #ffffff;
}

/* Szybka Odpowiedź (Direct Answer Box) */
.rk-quick-answer {
    margin: -20px 50px 30px 50px;
    background: #ffffff;
    border: 2px solid var(--rk-hero-blue);
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
    position: relative;
    z-index: 10;
}

.rk-qa-label {
    position: absolute;
    top: -12px;
    left: 20px;
    background: var(--rk-hero-blue);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-qa-content {
    font-size: 16px;
    color: var(--rk-hero-dark);
    line-height: 1.6;
    margin: 0;
    font-weight: 600;
}

.rk-qa-content a {
    color: var(--rk-hero-blue);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mapa Narzędzi (Interaktywna zawartość) */
.rk-tools-roadmap {
    padding: 10px 50px 40px;
}

.rk-roadmap-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-hero-dark);
    margin: 0 0 20px 0;
}

.rk-roadmap-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* Przyciski interaktywne */
.rk-tool-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-hero-bg);
    border: 1px solid var(--rk-hero-border);
    padding: 15px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    width: 100%;
}

.rk-tool-btn.active {
    background: #e0f2fe;
    border-color: var(--rk-hero-blue);
}

.rk-tool-icon {
    width: 44px;
    height: 44px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hero-blue);
    flex-shrink: 0;
    border: 1px solid var(--rk-hero-border);
}

.rk-tool-btn.active .rk-tool-icon {
    background: var(--rk-hero-blue);
    color: #ffffff;
    border-color: var(--rk-hero-blue);
}

.rk-tool-info h4 {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-hero-dark);
}

.rk-tool-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-hero-text);
}

/* Dynamiczny panel podglądu */
.rk-tool-preview {
    background: var(--rk-hero-dark);
    border-radius: 12px;
    padding: 25px;
    color: #ffffff;
    display: none; /* Zmiana stanu bez animacji */
}

.rk-tool-preview.active {
    display: block;
}

.rk-preview-badge {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: block;
}

.rk-preview-title {
    font-size: 18px;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 10px 0;
}

.rk-preview-desc {
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-hero-hook { padding: 30px 20px 40px; }
    .rk-hero-hook h2 { font-size: 24px; }
    .rk-quick-answer { margin: -20px 20px 30px 20px; padding: 20px; }
    .rk-tools-roadmap { padding: 10px 20px 30px; }
    .rk-roadmap-grid { grid-template-columns: 1fr; gap: 15px; } /* Układ pionowy na telefonach */
    .rk-tool-btn { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Krzywa grzewcza w ogrzewaniu podłogowym – Wprowadzenie i Szybka Odpowiedź",
    "description": "Definicja i fundamenty działania krzywej grzewczej. Jak niewłaściwa kalibracja sterownika pogodowego podnosi rachunki i niszczy pompę 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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wstep",
    "name": "Wpływ braku kalibracji krzywej na koszty eksploatacji",
    "description": "Dane z ponad 1000 analizowanych schematów hydraulicznych obrazujące finansowe i sprzętowe skutki błędnej konfiguracji parametru krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "koszty eksploatacji pompy ciepła",
      "współczynnik efektywności źródła ciepła cop",
      "taktowanie sprężarki pompy ciepła",
      "optymalna temperatura ogrzewania podłogowego"
    ],
    "measurementTechnique": "Szacunkowa analiza strat energii (wzrost zużycia rzędu 20 do 35 procent) wynikających ze stosowania przewymiarowanych krzywych grzewczych w nowoczesnych domach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak kalibracji podnosi koszty eksploatacji źródła ciepła o 20 do 35% rocznie.",
        "Zbyt wysoka temperatura zasilania doprowadza do groźnego zjawiska taktowania sprężarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-wstep-roadmap",
    "name": "Nawigator Narzędzi Interaktywnych",
    "description": "Moduł zapowiadający i opisujący funkcje inżynieryjnych kalkulatorów oraz symulatorów dostępnych w dalszej części publikacji.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container">
    
    <!-- Hook (Mocne Otwarcie) -->
    <div class="rk-hero-hook">
        <div class="rk-hook-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>
            Problem Inwestora
        </div>
        <h2>Jeden parametr, który decyduje o <span>życiu Twojej pompy ciepła</span></h2>
        <p class="rk-hook-text">
            Przez ponad 20 lat pracy jako specjalista układów hydraulicznych przeanalizowałem ponad 1000 błędnych schematów. Widziałem setki rachunków przewymiarowanych o <strong>20 do 35% rocznie</strong> oraz sprężarki uszkodzone przez tak zwane taktowanie. Powód był niemal zawsze ten sam: kompletny brak kalibracji głównego parametru automatyki.
        </p>
    </div>

    <!-- Szybka Odpowiedź -->
    <div class="rk-quick-answer">
        <div class="rk-qa-label">Szybka Odpowiedź</div>
        <p class="rk-qa-content">
            <strong>Krzywa grzewcza w ogrzewaniu podłogowym</strong> to zależność matematyczna określająca temperaturę wody zasilającej pętle grzewcze w funkcji temperatury na zewnątrz. Jej zadaniem jest płynne dopasowanie mocy instalacji do bieżących strat ciepła, co pozwala utrzymać <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalną i stałą temperaturę wewnętrzną</a> (na poziomie 20 do 22°C) przy najwyższym możliwym współczynniku COP.
        </p>
    </div>

    <!-- Zapowiedź Interaktywnych Narzędzi -->
    <div class="rk-tools-roadmap">
        <h3 class="rk-roadmap-title">Co znajdziesz w dalszej części poradnika?</h3>
        
        <div class="rk-roadmap-grid">
            
            <!-- Lista przycisków -->
            <div class="rk-roadmap-menu">
                <button class="rk-tool-btn active" data-preview="prev-calc" type="button">
                    <div class="rk-tool-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"><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>
                    </div>
                    <div class="rk-tool-info">
                        <h4>Inżynieryjny Kalkulator OZC</h4>
                        <p>Oblicz przepływy krok po kroku</p>
                    </div>
                </button>

                <button class="rk-tool-btn" data-preview="prev-graph" type="button" style="margin-top: 10px;">
                    <div class="rk-tool-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="M3 3v18h18"></path><path d="m19 9-5 5-4-4-3 3"></path></svg>
                    </div>
                    <div class="rk-tool-info">
                        <h4>Interaktywny Wykres Live</h4>
                        <p>Zabawa parametrami sterownika</p>
                    </div>
                </button>

                <button class="rk-tool-btn" data-preview="prev-scan" type="button" style="margin-top: 10px;">
                    <div class="rk-tool-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"><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-tool-info">
                        <h4>Skaner Błędów Instalacji</h4>
                        <p>Moduł diagnostyki problemów</p>
                    </div>
                </button>
            </div>

            <!-- Panele podglądu -->
            <div class="rk-roadmap-previews">
                
                <div class="rk-tool-preview active" id="prev-calc">
                    <span class="rk-preview-badge">Zamiast suchej teorii</span>
                    <h4 class="rk-preview-title">Aplikacja: Kalkulator Parametrów</h4>
                    <p class="rk-preview-desc">Zapomnij o skomplikowanych wzorach matematycznych. W dalszej części artykułu użyjesz prostych suwaków, aby wyliczyć dokładną temperaturę zasilania oraz zapotrzebowanie na przepływ litrów wody dla Twojego konkretnego metrażu domu.</p>
                </div>

                <div class="rk-tool-preview" id="prev-graph">
                    <span class="rk-preview-badge">Zrozumienie przez praktykę</span>
                    <h4 class="rk-preview-title">Aplikacja: Wykres Czasu Rzeczywistego</h4>
                    <p class="rk-preview-desc">Krzywa grzewcza bywa niezrozumiała. Dlatego przygotowałem symulator graficzny. Przesuwając suwaki &#8222;Nachylenia&#8221; oraz &#8222;Przesunięcia&#8221;, na własne oczy zobaczysz, jak zmienia się stromość wykresu na siatce temperatur zewnętrznych.</p>
                </div>

                <div class="rk-tool-preview" id="prev-scan">
                    <span class="rk-preview-badge">Ratunek przed awarią</span>
                    <h4 class="rk-preview-title">Skaner Diagnostyczny</h4>
                    <p class="rk-preview-desc">Masz problem z <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">kosztami ogrzewania domu</a> lub zimnymi strefami? Wykorzystaj przygotowany panel rozwiązywania problemów, który zdiagnozuje m.in. zły montaż czujnika czy blokowanie rotametrów.</p>
                </div>

            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var roadBtns = document.querySelectorAll('.rk-tool-btn');
    var roadPreviews = document.querySelectorAll('.rk-tool-preview');

    for (var i = 0; i < roadBtns.length; i++) {
        roadBtns[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-preview');
            
            // Błyskawiczne czyszczenie klas bez animacji
            for (var j = 0; j < roadBtns.length; j++) {
                roadBtns[j].classList.remove('active');
            }
            for (var k = 0; k < roadPreviews.length; k++) {
                roadPreviews[k].classList.remove('active');
            }
            
            // Błyskawiczne przypisanie nowych klas
            this.classList.add('active');
            var targetPanel = document.getElementById(targetId);
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-bg: #f8fafc;
    --rk-intro-surface: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
}

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

/* Nagłówek i Treść */
.rk-intro-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to right, #ffffff, var(--rk-intro-bg));
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-intro-header h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-blue);
    margin: 0 0 15px 0;
}

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

.rk-intro-header p:last-child {
    margin-bottom: 0;
}

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

.rk-highlight-box {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-intro-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-weight: 600;
    color: var(--rk-intro-dark);
    margin: 20px 0;
}

/* Moduł Interaktywny: Wykres i Kalkulator */
.rk-intro-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-intro-dark);
}

/* Sekcja Wykresu */
.rk-chart-section {
    padding: 40px 50px;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.rk-toggle-chart {
    display: flex;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 4px;
    margin-bottom: 25px;
}

.rk-tgl-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 10px 15px;
    color: #94a3b8;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.3s;
}

.rk-tgl-btn.active {
    background: var(--rk-intro-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
}

.rk-svg-wrapper {
    position: relative;
    width: 100%;
    height: 220px;
}

.rk-chart-axis {
    stroke: rgba(255, 255, 255, 0.3);
    stroke-width: 2;
}

.rk-chart-grid {
    stroke: rgba(255, 255, 255, 0.1);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}

.rk-chart-text {
    fill: #94a3b8;
    font-size: 11px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

/* Ścieżki wykresu */
.path-thermostat {
    stroke: var(--rk-intro-red);
    stroke-width: 3;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: opacity 0.4s;
}

.path-weather {
    stroke: var(--rk-intro-green);
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    transition: opacity 0.4s;
}

.rk-svg-wrapper[data-view="weather"] .path-thermostat { opacity: 0.1; }
.rk-svg-wrapper[data-view="thermostat"] .path-weather { opacity: 0.1; }

/* Sekcja Kalkulatora ROI */
.rk-roi-section {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-roi-title {
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 25px 0;
}

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

.rk-roi-label {
    display: flex;
    justify-content: space-between;
    color: #cbd5e1;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 15px;
}

.rk-roi-val {
    color: var(--rk-intro-blue-light);
    font-weight: 900;
    font-size: 18px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    outline: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-intro-blue);
    border: 4px solid #ffffff;
    cursor: pointer;
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
}

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

.rk-roi-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
}

.rk-roi-card-label {
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 5px;
}

.rk-roi-card-value {
    color: var(--rk-intro-green);
    font-size: 24px;
    font-weight: 900;
    margin: 0;
}

.rk-roi-card-value.blue {
    color: var(--rk-intro-blue-light);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-intro-header { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 24px; }
    .rk-intro-interactive { 
        grid-template-columns: 1fr; /* Pionowy układ interaktywny */
    }
    .rk-chart-section { 
        padding: 30px 20px; 
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .rk-roi-section { padding: 30px 20px; }
    .rk-toggle-chart { flex-direction: column; border-radius: 16px; padding: 6px; }
    .rk-tgl-btn { border-radius: 10px; }
    .rk-roi-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Czym jest krzywa grzewcza w ogrzewaniu podłogowym i jak wpływa na koszty ogrzewania?",
    "description": "Zrozumienie definicji krzywej grzewczej, jej wpływu na efektywność pompy ciepła (SCOP) oraz znaczenia bezwładności termicznej jastrychu.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wplyw-temperatury",
    "name": "Wpływ obniżenia temperatury zasilania na SCOP i koszty",
    "description": "Symulacyjne dane pokazujące oszczędności finansowe w skali roku wynikające z obniżania parametrów zasilania systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "definicja krzywej grzewczej",
      "bezwładność cieplna wylewki betonowej",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "termostat pokojowy a podłogówka",
      "norma PN-EN 1264 maksymalna temperatura zasilania"
    ],
    "measurementTechnique": "Analiza oszczędności finansowych i przyrostu SCOP (2,5% na każdy 1 stopień Celsjusza w dół) dla typowego domu energooszczędnego 150m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obniżenie temperatury zasilania o 1 stopień poprawia efektywność pompy ciepła o około 2.5%.",
        "Sterowanie proaktywne (pogodowe) kompensuje 6-godzinne opóźnienie reakcji ciężkiego jastrychu betonowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-symulator-oszczednosci",
    "name": "Symulator Oszczędności Krzywej Grzewczej",
    "description": "Narzędzie interaktywne ilustrujące różnicę między sterowaniem termostatycznym a pogodowym oraz obliczające oszczędności ze zmniejszenia temperatury zasilania.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    
    <div class="rk-intro-header">
        <h2>Czym jest krzywa grzewcza i jak potężnie wpływa na Twoje rachunki?</h2>
        <p>Krzywa grzewcza to serce <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego</a>. Jest to zaprogramowany algorytm, który precyzyjnie wyznacza temperaturę wody tłoczonej do układu na podstawie tego, jak bardzo mroźnie jest na zewnątrz. Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, absolutna maksymalna temperatura zasilania w strefach mieszkalnych to 55°C, ale w nowoczesnym budownictwie dążymy do wartości radykalnie niższych.</p>
        
        <div class="rk-highlight-box">
            Złota zasada instalatora: Obniżenie średniej temperatury zasilania zaledwie o 1°C podnosi sezonowy współczynnik efektywności (SCOP) pompy ciepła o około 2,5%.
        </div>

        <h3>Bezwładność cieplna a tradycyjny termostat</h3>
        <p>Dlaczego zwykły <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat ścienny (włącz/wyłącz)</a> to wróg podłogówki? Odpowiedzią jest <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a>. Klasyczny betonowy jastrych (grubość 6,5 cm) waży aż 130–150 kg na metr kwadratowy. Zmiana jego temperatury o 1°C zajmuje od 4 do 6 godzin. Termostat działa reaktywnie – włącza grzanie, gdy w domu jest już zimno, i wyłącza, gdy dom jest przegrzany. Sterowanie pogodowe z krzywą działa proaktywnie: zauważa mróz na zewnątrz i podnosi temperaturę wody zanim Twój salon zdąży ostygnąć.</p>
    </div>

    <!-- Moduł Interaktywny -->
    <div class="rk-intro-interactive">
        
        <!-- Wykres SVG -->
        <div class="rk-chart-section">
            <div class="rk-toggle-chart" id="rkChartToggle">
                <button class="rk-tgl-btn" data-view="thermostat" type="button">Termostat (Włącz/Wyłącz)</button>
                <button class="rk-tgl-btn active" data-view="weather" type="button">Krzywa Pogodowa (Proaktywnie)</button>
            </div>

            <div class="rk-svg-wrapper" id="rkGraphWrapper" data-view="weather">
                <svg width="100%" height="100%" viewBox="0 0 400 220" preserveAspectRatio="none">
                    <!-- Linie Siatki -->
                    <line x1="40" y1="180" x2="380" y2="180" class="rk-chart-axis" /> <!-- Oś X -->
                    <line x1="40" y1="20" x2="40" y2="180" class="rk-chart-axis" /> <!-- Oś Y -->
                    
                    <line x1="40" y1="100" x2="380" y2="100" class="rk-chart-grid" />
                    <line x1="40" y1="60" x2="380" y2="60" class="rk-chart-grid" />
                    <line x1="40" y1="140" x2="380" y2="140" class="rk-chart-grid" />

                    <!-- Etykiety -->
                    <text x="5" y="65" class="rk-chart-text">40°C</text>
                    <text x="5" y="105" class="rk-chart-text">30°C</text>
                    <text x="5" y="145" class="rk-chart-text">20°C</text>
                    
                    <text x="100" y="200" class="rk-chart-text">Rano</text>
                    <text x="200" y="200" class="rk-chart-text">Południe</text>
                    <text x="300" y="200" class="rk-chart-text">Wieczór</text>

                    <!-- Ścieżka: Termostat (Skoki) -->
                    <path d="M 40 140 L 90 140 L 100 60 L 150 60 L 160 140 L 220 140 L 230 60 L 280 60 L 290 140 L 350 140 L 360 60 L 380 60" class="path-thermostat" />

                    <!-- Ścieżka: Krzywa Pogodowa (Gładka) -->
                    <path d="M 40 110 Q 100 120 180 115 T 300 100 T 380 105" class="path-weather" />
                </svg>
            </div>
        </div>

        <!-- Kalkulator Oszczędności -->
        <div class="rk-roi-section">
            <h4 class="rk-roi-title">Symulacja Oszczędności (Dom 150m²)</h4>
            
            <div class="rk-roi-slider-box">
                <div class="rk-roi-label">
                    <span>Średnia Temperatura Zasilania</span>
                    <span class="rk-roi-val"><span id="rkZasVal">40</span>°C</span>
                </div>
                <input type="range" id="rkZasSlider" class="rk-range-input" min="30" max="40" step="1" value="40">
            </div>

            <div class="rk-roi-results">
                <div class="rk-roi-card">
                    <span class="rk-roi-card-label">Wzrost SCOP</span>
                    <p class="rk-roi-card-value blue">+<span id="rkScopRise">0.0</span>%</p>
                </div>
                <div class="rk-roi-card">
                    <span class="rk-roi-card-label">Oszczędność w sezonie</span>
                    <p class="rk-roi-card-value"><span id="rkPlnSave">0</span> PLN</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Wykresu SVG
    var tglBtns = document.querySelectorAll('.rk-tgl-btn');
    var graphWrapper = document.getElementById('rkGraphWrapper');

    for (var i = 0; i < tglBtns.length; i++) {
        tglBtns[i].addEventListener('click', function() {
            var view = this.getAttribute('data-view');
            
            for (var j = 0; j < tglBtns.length; j++) {
                tglBtns[j].classList.remove('active');
            }
            this.classList.add('active');
            
            graphWrapper.setAttribute('data-view', view);
        });
    }

    // Logika Suwaka ROI
    var slider = document.getElementById('rkZasSlider');
    var valDisplay = document.getElementById('rkZasVal');
    var scopDisplay = document.getElementById('rkScopRise');
    var plnDisplay = document.getElementById('rkPlnSave');

    // Baza kosztowa: przy zasilaniu 40°C zużywamy 9000 kWh na sezon (np. 1 kWh = 1 PLN) -> Koszt 9000 PLN.
    // Każdy 1°C w dół to 2.5% lepszy SCOP (oszczędność ~150 PLN na każdy stopień w dół).

    function updateROI() {
        var currentTemp = parseFloat(slider.value);
        valDisplay.innerText = currentTemp;

        var tempDrop = 40 - currentTemp;
        
        var scopRise = tempDrop * 2.5;
        var plnSaved = tempDrop * 145; // ~145 PLN oszczędności na każdym stopniu dla domu 150m2

        scopDisplay.innerText = scopRise.toFixed(1);
        plnDisplay.innerText = plnSaved;
    }

    slider.addEventListener('input', updateROI);
    // Inicjalizacja
    updateROI();
});
</script>



<style>
:root {
    --rk-live-dark: #0f172a;
    --rk-live-blue: #0284c7;
    --rk-live-blue-light: #e0f2fe;
    --rk-live-bg: #f8fafc;
    --rk-live-surface: #ffffff;
    --rk-live-border: #e2e8f0;
    --rk-live-text: #475569;
    --rk-live-accent: #10b981;
    --rk-live-grid: #e2e8f0;
}

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

/* Nagłówek */
.rk-live-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-live-border);
}

.rk-live-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-live-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-live-header p {
    font-size: 16px;
    color: var(--rk-live-text);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Przestrzeń Robocza (App) */
.rk-live-workspace {
    display: flex;
    flex-wrap: wrap;
    background: var(--rk-live-bg);
}

/* Sekcja Suwaków (Lewa/Góra) */
.rk-live-controls {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: #ffffff;
    border-right: 1px solid var(--rk-live-border);
}

.rk-live-controls h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-live-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-live-controls h3 svg {
    color: var(--rk-live-blue);
}

.rk-ctrl-group {
    margin-bottom: 35px;
}

.rk-ctrl-group:last-child {
    margin-bottom: 0;
}

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

.rk-ctrl-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-live-dark);
    display: flex;
    flex-direction: column;
}

.rk-ctrl-desc {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
    margin-top: 4px;
}

.rk-ctrl-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-live-blue);
    background: var(--rk-live-blue-light);
    padding: 6px 14px;
    border-radius: 10px;
    min-width: 80px;
    text-align: center;
}

.rk-live-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

.rk-live-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-live-blue);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 3px 8px rgba(0,0,0,0.25);
    transition: transform 0.1s;
}

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

/* Sekcja Wykresu (Prawa/Dół) */
.rk-live-graph-area {
    flex: 1.2;
    min-width: 320px;
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

.rk-graph-box {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-live-border);
    border-radius: 16px;
    padding: 20px;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
}

.rk-svg-render {
    width: 100%;
    height: auto;
    overflow: visible;
}

.rk-axis-line {
    stroke: #94a3b8;
    stroke-width: 2;
}

.rk-grid-line {
    stroke: var(--rk-live-grid);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}

.rk-graph-text {
    fill: #64748b;
    font-size: 11px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
}

.rk-graph-text-axis {
    fill: var(--rk-live-dark);
    font-size: 13px;
    font-weight: 800;
}

/* Dynamiczna linia krzywej */
.rk-dynamic-curve {
    stroke: var(--rk-live-blue);
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    transition: d 0.1s ease-out;
}

/* Punkt na wykresie */
.rk-target-point {
    fill: var(--rk-live-accent);
    stroke: #ffffff;
    stroke-width: 3;
    transition: cx 0.1s ease-out, cy 0.1s ease-out;
}

.rk-target-line {
    stroke: var(--rk-live-accent);
    stroke-width: 2;
    stroke-dasharray: 4 4;
    opacity: 0.5;
    transition: x1 0.1s, y1 0.1s, x2 0.1s, y2 0.1s;
}

/* Panel Wynikowy pod wykresem */
.rk-graph-result {
    margin-top: 25px;
    background: var(--rk-live-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rk-res-info {
    display: flex;
    flex-direction: column;
}

.rk-res-label {
    color: #94a3b8;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.rk-res-val-big {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0;
}

.rk-res-val-big span {
    color: var(--rk-live-accent);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-live-header { padding: 30px 20px; }
    .rk-live-header h2 { font-size: 22px; }
    .rk-live-workspace { flex-direction: column; }
    .rk-live-controls { 
        padding: 30px 20px; 
        border-right: none; 
        border-bottom: 1px solid var(--rk-live-border); 
    }
    .rk-live-graph-area { padding: 30px 20px; }
    .rk-graph-box { padding: 15px; }
    .rk-graph-result { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wykres-interaktywny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Interaktywny wykres krzywej grzewczej – sprawdź, jak działa automatyka",
    "description": "Zrozum mechanikę sterownika pogodowego. Wprowadź zmiany nachylenia i przesunięcia na żywym wykresie, aby zobaczyć reakcję systemu grzewczego na spadek temperatury na zewnątrz.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wykres-zaleznosci",
    "name": "Wektorowe współrzędne zależności temperatury zasilania od pogody",
    "description": "Dynamiczne zestawienie matematyczne przeliczające stromość krzywej grzewczej na docelową temperaturę tłoczenia dla instalacji ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak działa krzywa grzewcza wykres",
      "nastawy sterownika pogodowego podłogówki",
      "temperatura zasilania przy mrozie",
      "kalibracja ogrzewania płaszczyznowego",
      "wykres zależności temperatury"
    ],
    "measurementTechnique": "Generowanie wektorowej ścieżki SVG na podstawie algorytmu: T_zas = 20 + Nachylenie * (20 - T_zew) + Przesunięcie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzrost wartości nachylenia (stromości) powoduje agresywniejszą reakcję kotła lub pompy ciepła na mróz.",
        "Korekta przesunięcia wpływa na podniesienie bazowej temperatury zasilania na całej osi poziomej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-live-graph",
    "name": "Symulator Graficzny Krzywej Grzewczej",
    "description": "Zaawansowane narzędzie pozwalające na manipulowanie osią wykresu w czasie rzeczywistym poprzez wirtualne suwaki sterownika pogodowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-live-graph-container">
    
    <div class="rk-live-header">
        <h2>Interaktywny wykres krzywej grzewczej</h2>
        <p>Zamiast czytać suche wzory, przesuń suwaki i zobacz na własne oczy, jak automatyka wylicza temperaturę. Tak właśnie zachowuje się oprogramowanie wewnątrz Twojej pompy ciepła lub nowoczesnego kotła gazowego.</p>
    </div>

    <div class="rk-live-workspace">
        
        <!-- Panel Kontrolny -->
        <div class="rk-live-controls">
            <h3>
                <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="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
                Skonfiguruj nastawy
            </h3>

            <!-- Suwak Nachylenia -->
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-top">
                    <div class="rk-ctrl-label">
                        Nachylenie (Slope)
                        <span class="rk-ctrl-desc">Decyduje o reakcji na siłę mrozu</span>
                    </div>
                    <div class="rk-ctrl-val" id="rkValSlope">0.40</div>
                </div>
                <input type="range" id="rkRangeSlope" class="rk-live-range" min="0.1" max="1.5" step="0.05" value="0.40">
            </div>

            <!-- Suwak Przesunięcia -->
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-top">
                    <div class="rk-ctrl-label">
                        Przesunięcie (Offset)
                        <span class="rk-ctrl-desc">Podnosi lub obniża całą krzywą</span>
                    </div>
                    <div class="rk-ctrl-val" id="rkValOffset">0 K</div>
                </div>
                <input type="range" id="rkRangeOffset" class="rk-live-range" min="-5" max="5" step="1" value="0">
            </div>
            
            <div style="margin-top: 30px; padding: 15px; background: #eff6ff; border-radius: 12px; font-size: 13px; color: #1e293b; font-weight: 600; line-height: 1.5;">
                <strong style="color: #0284c7;">Wskazówka inżyniera:</strong> Zauważ, że zmiana przesunięcia przesuwa linię równolegle, podczas gdy zmiana nachylenia podnosi ją tym mocniej, im zimniej jest na zewnątrz.
            </div>
        </div>

        <!-- Renderowanie Wykresu -->
        <div class="rk-live-graph-area">
            
            <div class="rk-graph-box">
                <!-- ViewBox o stalych proporcjach, by pozycjonowanie dzialalo matematycznie -->
                <svg class="rk-svg-render" viewBox="0 0 500 320" preserveAspectRatio="xMidYMid meet">
                    
                    <!-- Siatka Tła (Pionowe: temp zewn) -->
                    <!-- +10, 0, -10, -20 -->
                    <line x1="100" y1="20" x2="100" y2="280" class="rk-grid-line" />
                    <line x1="220" y1="20" x2="220" y2="280" class="rk-grid-line" />
                    <line x1="340" y1="20" x2="340" y2="280" class="rk-grid-line" />
                    <line x1="460" y1="20" x2="460" y2="280" class="rk-grid-line" />

                    <!-- Siatka Tła (Poziome: temp zasilania) -->
                    <!-- 20, 30, 40, 50, 60 -->
                    <line x1="40" y1="280" x2="480" y2="280" class="rk-grid-line" />
                    <line x1="40" y1="215" x2="480" y2="215" class="rk-grid-line" />
                    <line x1="40" y1="150" x2="480" y2="150" class="rk-grid-line" />
                    <line x1="40" y1="85" x2="480" y2="85" class="rk-grid-line" />
                    <line x1="40" y1="20" x2="480" y2="20" class="rk-grid-line" />

                    <!-- Osie -->
                    <!-- Oś X (Dół) -->
                    <line x1="40" y1="280" x2="480" y2="280" class="rk-axis-line" />
                    <!-- Oś Y (Lewa) -->
                    <line x1="40" y1="20" x2="40" y2="280" class="rk-axis-line" />

                    <!-- Podpisy Osi X (Temp zewn: 40px to +15, 460px to -20) -->
                    <!-- Zakres: od +15 do -20, czyli 35 stopni = 420 px szerokosci. 1 stopien = 12 px -->
                    <text x="100" y="305" class="rk-graph-text" text-anchor="middle">+10°C</text>
                    <text x="220" y="305" class="rk-graph-text" text-anchor="middle">0°C</text>
                    <text x="340" y="305" class="rk-graph-text" text-anchor="middle">-10°C</text>
                    <text x="460" y="305" class="rk-graph-text" text-anchor="middle">-20°C</text>

                    <!-- Podpisy Osi Y (Temp zas: 280px to 20, 20px to 60) -->
                    <!-- Zakres: od 20 do 60, czyli 40 stopni = 260 px wysokosci. 1 stopien = 6.5 px -->
                    <text x="30" y="284" class="rk-graph-text" text-anchor="end">20°C</text>
                    <text x="30" y="219" class="rk-graph-text" text-anchor="end">30°C</text>
                    <text x="30" y="154" class="rk-graph-text" text-anchor="end">40°C</text>
                    <text x="30" y="89" class="rk-graph-text" text-anchor="end">50°C</text>
                    <text x="30" y="24" class="rk-graph-text" text-anchor="end">60°C</text>

                    <!-- Tytuły osi -->
                    <text x="260" y="320" class="rk-graph-text-axis" text-anchor="middle">Zewnętrzna temperatura pogodowa</text>
                    
                    <!-- Dynamiczna Krzywa -->
                    <path id="rkMainCurve" class="rk-dynamic-curve" d="M 40 280 L 460 100" />
                    
                    <!-- Celownik (Przecięcie dla -10 st C, x=340) -->
                    <line id="rkTargetX" x1="40" y1="150" x2="340" y2="150" class="rk-target-line" />
                    <line id="rkTargetY" x1="340" y1="280" x2="340" y2="150" class="rk-target-line" />
                    <circle id="rkTargetDot" cx="340" cy="150" r="6" class="rk-target-point" />

                </svg>
            </div>

            <!-- Prezentacja Wyniku -->
            <div class="rk-graph-result">
                <div class="rk-res-info">
                    <span class="rk-res-label">Temperatura zasilania przy mrozie -10°C</span>
                    <p class="rk-res-val-big" id="rkResultText"><span>32.0</span> °C</p>
                </div>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Suwaki i etykiety
    var slideSlope = document.getElementById('rkRangeSlope');
    var slideOffset = document.getElementById('rkRangeOffset');
    var valSlope = document.getElementById('rkValSlope');
    var valOffset = document.getElementById('rkValOffset');
    var resultText = document.getElementById('rkResultText');

    // Elementy SVG
    var pathCurve = document.getElementById('rkMainCurve');
    var dot = document.getElementById('rkTargetDot');
    var lineX = document.getElementById('rkTargetX');
    var lineY = document.getElementById('rkTargetY');

    // Funkcje Mapujące (Matematyka SVG)
    // Os X: T_zewn od +15 do -20. Szerokość 420px (od 40 do 460).
    // T_zewn = +15 -> X = 40. T_zewn = -20 -> X = 460.
    // 35 stopni = 420 px. Współczynnik: 12 px na stopień.
    function mapX(tzewn) {
        var diffFrom15 = 15 - tzewn; // jesli tzewn = 10, diff = 5. 
        return 40 + (diffFrom15 * 12);
    }

    // Os Y: T_zas od 20 do 60. Wysokość 260px (od 280 do 20).
    // T_zas = 20 -> Y = 280. T_zas = 60 -> Y = 20.
    // 40 stopni = 260 px. Współczynnik: 6.5 px na stopień.
    function mapY(tzas) {
        // Zabezpieczenie przed wychodzeniem poza ramy
        var safeTemp = tzas;
        if (safeTemp < 20) { safeTemp = 20; }
        if (safeTemp > 65) { safeTemp = 65; } // Pozwalamy lekko wyjsc górą

        var diffFrom20 = safeTemp - 20; // jesli tzas = 30, diff = 10
        return 280 - (diffFrom20 * 6.5);
    }

    function renderGraph() {
        var slope = parseFloat(slideSlope.value);
        var offset = parseFloat(slideOffset.value);

        // Aktualizacja tekstów na suwakach
        valSlope.innerText = slope.toFixed(2);
        
        var offsetText = offset.toString() + " K";
        if (offset > 0) { offsetText = "+" + offset.toString() + " K"; }
        valOffset.innerText = offsetText;

        // Baza algorytmu: T_zas = 20 + nachylenie * (20 - T_zewn) + przesunięcie
        
        // Punkt 1: Poczatek wykresu (T_zewn = +15)
        var tZas15 = 20 + slope * (20 - 15) + offset;
        var y1 = mapY(tZas15);
        var x1 = mapX(15);

        // Punkt 2: Koniec wykresu (T_zewn = -20)
        var tZasMinus20 = 20 + slope * (20 - (-20)) + offset;
        var y2 = mapY(tZasMinus20);
        var x2 = mapX(-20);

        // Aktualizacja Scieżki
        pathCurve.setAttribute('d', 'M ' + x1 + ' ' + y1 + ' L ' + x2 + ' ' + y2);

        // Obliczenie dla punktu referencyjnego (T_zewn = -10)
        var tZasTarget = 20 + slope * (20 - (-10)) + offset;
        
        var targetX = mapX(-10); // Powinno byc 340
        var targetY = mapY(tZasTarget);

        // Aktualizacja Kropki Celownika i Linii
        dot.setAttribute('cx', targetX);
        dot.setAttribute('cy', targetY);

        lineX.setAttribute('x1', 40);
        lineX.setAttribute('y1', targetY);
        lineX.setAttribute('x2', targetX);
        lineX.setAttribute('y2', targetY);

        lineY.setAttribute('x1', targetX);
        lineY.setAttribute('y1', 280);
        lineY.setAttribute('x2', targetX);
        lineY.setAttribute('y2', targetY);

        // Aktualizacja tekstu wyniku z kolorowaniem znacznikow span
        resultText.innerHTML = "<span>" + tZasTarget.toFixed(1) + "</span> °C";
    }

    // Nasłuchiwanie
    slideSlope.addEventListener('input', renderGraph);
    slideOffset.addEventListener('input', renderGraph);

    // Render startowy
    renderGraph();
});
</script>



<style>
:root {
    --rk-sel-dark: #0f172a;
    --rk-sel-blue: #0ea5e9;
    --rk-sel-blue-dark: #0369a1;
    --rk-sel-bg: #f8fafc;
    --rk-sel-surface: #ffffff;
    --rk-sel-border: #e2e8f0;
    --rk-sel-text: #475569;
    --rk-sel-green: #10b981;
    --rk-sel-orange: #f59e0b;
    --rk-sel-red: #ef4444;
}

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

/* Nagłówek */
.rk-sel-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: var(--rk-sel-surface);
    border-bottom: 1px solid var(--rk-sel-border);
}

.rk-sel-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-sel-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-sel-header p {
    font-size: 16px;
    color: var(--rk-sel-text);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

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

/* Interaktywny Selektor Budynku */
.rk-sel-app {
    padding: 40px 50px;
}

.rk-sel-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-bld-btn {
    background: var(--rk-sel-surface);
    border: 2px solid var(--rk-sel-border);
    padding: 16px 10px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-bld-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
}

.rk-bld-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.rk-bld-btn span {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-sel-text);
    line-height: 1.2;
}

/* Stan Aktywny Przycisków */
.rk-bld-btn.active {
    border-color: var(--rk-sel-blue);
    background: #f0f9ff;
    box-shadow: 0 8px 15px -5px rgba(14, 165, 233, 0.2);
}

.rk-bld-btn.active .rk-bld-icon {
    background: var(--rk-sel-blue);
    color: #ffffff;
}

.rk-bld-btn.active span {
    color: var(--rk-sel-dark);
}

/* Panel Wynikowy z Parametrami */
.rk-sel-dashboard {
    background: var(--rk-sel-dark);
    border-radius: 20px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.3);
}

.rk-param-box {
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
}

.rk-param-box:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 10%;
    height: 80%;
    width: 1px;
    background: rgba(255, 255, 255, 0.1);
}

.rk-param-label {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
}

.rk-param-val {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin: 0;
}

.rk-param-val.highlight {
    color: var(--rk-sel-green);
}

/* Wyjaśnienia Pojęć (Diagnostyka) */
.rk-concepts-wrapper {
    padding: 0 50px 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-concept-card {
    background: var(--rk-sel-surface);
    border: 1px solid var(--rk-sel-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-concept-card h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sel-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-concept-desc {
    font-size: 15px;
    color: var(--rk-sel-text);
    line-height: 1.6;
    margin: 0 0 20px 0;
}

.rk-concept-symptoms {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-symptom-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #f1f5f9;
    padding: 12px 15px;
    border-radius: 10px;
}

.rk-symptom-row.alert-red { background: #fef2f2; border: 1px solid #fecaca; }
.rk-symptom-row.alert-blue { background: #eff6ff; border: 1px solid #bfdbfe; }
.rk-symptom-row.alert-orange { background: #fffbeb; border: 1px solid #fde68a; }

.rk-sym-icon { margin-top: 2px; }
.rk-symptom-row.alert-red .rk-sym-icon { color: var(--rk-sel-red); }
.rk-symptom-row.alert-blue .rk-sym-icon { color: var(--rk-sel-blue); }
.rk-symptom-row.alert-orange .rk-sym-icon { color: var(--rk-sel-orange); }

.rk-sym-text {
    font-size: 14px;
    color: var(--rk-sel-dark);
    line-height: 1.5;
    margin: 0;
}

.rk-sym-text strong {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-sel-header { padding: 30px 20px; }
    .rk-sel-app { padding: 30px 20px; }
    .rk-sel-nav { 
        grid-template-columns: 1fr 1fr; /* 2 kolumny na przyciski na mobile */
        gap: 10px;
    }
    .rk-sel-dashboard {
        grid-template-columns: 1fr; /* Pionowy układ parametrów */
        gap: 15px;
        padding: 25px 20px;
    }
    .rk-param-box:not(:last-child)::after {
        right: 0; top: auto; bottom: -8px; height: 1px; width: 100%;
    }
    .rk-concepts-wrapper { 
        grid-template-columns: 1fr; /* Pionowy układ kart pojęć */
        padding: 0 20px 30px; 
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jakie nachylenie i przesunięcie krzywej grzewczej wybrać dla domu jednorodzinnego?",
    "description": "Przewodnik po doborze parametrów krzywej pogodowej (nachylenia i przesunięcia) w zależności od standardu izolacyjnego budynku, z uwzględnieniem wytycznych WT2021.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wskazniki",
    "name": "Zalecane nastawy krzywej grzewczej a standard energetyczny",
    "description": "Zestawienie korelujące wskaźnik EU budynku, zalecane nachylenie krzywej, przesunięcie początkowe i wymaganą temperaturę zasilania przy -10°C.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "nachylenie krzywej grzewczej",
      "przesunięcie krzywej pogodowej",
      "temperatura zasilania podłogówki przy mrozie",
      "wskaźnik EU a ogrzewanie podłogowe",
      "standard WT2021 dom energooszczędny"
    ],
    "measurementTechnique": "Określanie parametrów sterowania na bazie normy cieplnej budynku (od pasywnego do nieocieplonego) przy referencyjnej temperaturze minus 10 stopni Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom energooszczędny WT2021 (EU 40-55) wymaga nachylenia 0.30 - 0.45.",
        "Budynek nieocieplony wymusza nachylenie powyżej 0.80 i wysoką temperaturę zasilania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-selekcjoner",
    "name": "Asystent Doboru Parametrów Krzywej Grzewczej",
    "description": "Narzędzie pozwalające inwestorowi dobrać początkowe parametry sterownika na podstawie klasy energetycznej wybudowanego obiektu.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-selector-container">
    
    <div class="rk-sel-header">
        <h2>Jakie nachylenie i przesunięcie wybrać dla swojego domu?</h2>
        <p>Współczynnik nachylenia krzywej grzewczej dla niskotemperaturowego ogrzewania podłogowego w standardzie energooszczędnym (WT2021) wynosi od 0,2 do 0,5, a przesunięcie początkowe ustala się na 0 Kelwinów. Zgodnie z wytycznymi PORT PC (Część 5), dla ujemnej projektowej temperatury zewnętrznej równej 20 stopni, <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania nie powinna przekraczać 35°C</a>.</p>
    </div>

    <!-- Interaktywny Wybór Domu -->
    <div class="rk-sel-app">
        <div class="rk-sel-nav" id="rkBldNav">
            <button class="rk-bld-btn" data-bld="passive" type="button">
                <div class="rk-bld-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 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>
                </div>
                <span>Dom Pasywny (NF15)</span>
            </button>
            <button class="rk-bld-btn active" data-bld="wt2021" type="button">
                <div class="rk-bld-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="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <span>Nowy Dom (WT2021)</span>
            </button>
            <button class="rk-bld-btn" data-bld="retro" type="button">
                <div class="rk-bld-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><circle cx="12" cy="14" r="4"></circle><line x1="12" y1="6" x2="12.01" y2="6"></line></svg>
                </div>
                <span>Po Termo- modernizacji</span>
            </button>
            <button class="rk-bld-btn" data-bld="old" type="button">
                <div class="rk-bld-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="M2 22h20"></path><path d="M17 2v20"></path><path d="M7 2v20"></path><path d="M12 22v-4"></path><path d="M7 12h10"></path></svg>
                </div>
                <span>Budynek Nieocieplony</span>
            </button>
        </div>

        <!-- Tabela Wyników Zamieniona na Dashboard -->
        <div class="rk-sel-dashboard">
            <div class="rk-param-box">
                <span class="rk-param-label">Wskaźnik EU</span>
                <p class="rk-param-val" id="val-eu">40 - 55 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span></p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Zalecane Nachylenie</span>
                <p class="rk-param-val highlight" id="val-slope">0.30 - 0.45</p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Startowe Przesunięcie</span>
                <p class="rk-param-val" id="val-offset">0 K</p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Zasilanie (przy mrozie 10°C)</span>
                <p class="rk-param-val" id="val-temp">31 - 34°C</p>
            </div>
        </div>
    </div>

    <!-- Definicje i Objawy (Zamiast suchego tekstu) -->
    <div class="rk-concepts-wrapper">
        
        <!-- Nachylenie -->
        <div class="rk-concept-card">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0ea5e9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Nachylenie Krzywej (Slope)
            </h3>
            <p class="rk-concept-desc">Określa stromość reakcji automatyki na spadek temperatury na zewnątrz. Im lepsza izolacja budynku i niższe <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">zapotrzebowanie na moc</a>, tym niższe nachylenie jest wymagane.</p>
            
            <div class="rk-concept-symptoms">
                <div class="rk-symptom-row alert-red">
                    <div class="rk-sym-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"><path d="M12 2v20"></path><path d="m17 7-5-5-5 5"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Zbyt wysokie nachylenie:</strong> Przy zerowej temperaturze w domu jest komfortowo, ale podczas silnych mrozów (minus 15 stopni) robi się stanowczo za gorąco.</p>
                </div>
                <div class="rk-symptom-row alert-blue">
                    <div class="rk-sym-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"><path d="M12 22V2"></path><path d="m17 17-5 5-5-5"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Zbyt niskie nachylenie:</strong> Przy łagodnej zimie i temperaturach dodatnich wewnątrz jest idealnie, ale gdy chwyta mróz, instalacja nie nadąża z dostarczaniem ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Przesunięcie -->
        <div class="rk-concept-card">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 17 12 21 16 17"></polyline><line x1="12" y1="12" x2="12" y2="21"></line><polyline points="8 7 12 3 16 7"></polyline><line x1="12" y1="12" x2="12" y2="3"></line></svg>
                Przesunięcie (Offset)
            </h3>
            <p class="rk-concept-desc">Podnosi lub obniża całą charakterystykę o stałą wartość wyrażoną w Kelwinach (K). Modyfikuje temperaturę zasilania równomiernie, niezależnie od warunków zewnętrznych.</p>
            
            <div class="rk-concept-symptoms">
                <div class="rk-symptom-row alert-orange">
                    <div class="rk-sym-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"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Kiedy stosować?</strong> Rozwiązuje problem jednolitego odchylenia od komfortu. Jeśli przez całą zimę, bez względu na mróz czy odwilż, brakuje Ci w salonie dokładnie 1,5 stopnia, po prostu podnieś przesunięcie o +2 K.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-bld-btn');
    
    // Elementy do aktualizacji
    var elEu = document.getElementById('val-eu');
    var elSlope = document.getElementById('val-slope');
    var elOffset = document.getElementById('val-offset');
    var elTemp = document.getElementById('val-temp');

    // Baza Danych (zastępuje tabelę HTML)
    var db = {
        'passive': {
            eu: '< 15 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.15 - 0.25',
            offset: '0 K',
            temp: '26 - 28°C'
        },
        'wt2021': {
            eu: '40 - 55 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.30 - 0.45',
            offset: '0 K',
            temp: '31 - 34°C'
        },
        'retro': {
            eu: '70 - 90 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.50 - 0.70',
            offset: '+2 K',
            temp: '38 - 42°C'
        },
        'old': {
            eu: '> 120 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.80 - 1.10',
            offset: '+4 K',
            temp: '46 - 52°C'
        }
    };

    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var bldType = this.getAttribute('data-bld');
            
            // Reset klas
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja
            this.classList.add('active');

            // Aktualizacja UI (bezpieczny sposób bez używania &#038;&#038;)
            var targetData = null;
            if (bldType === 'passive') { targetData = db['passive']; }
            else if (bldType === 'wt2021') { targetData = db['wt2021']; }
            else if (bldType === 'retro') { targetData = db['retro']; }
            else if (bldType === 'old') { targetData = db['old']; }

            if (targetData !== null) {
                elEu.innerHTML = targetData.eu;
                elSlope.innerHTML = targetData.slope;
                elOffset.innerHTML = targetData.offset;
                elTemp.innerHTML = targetData.temp;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-bg: #f8fafc;
    --rk-calc-surface: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-accent: #10b981;
}

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

/* Nagłówek */
.rk-calc-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: linear-gradient(to bottom, #ffffff, var(--rk-calc-bg));
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-calc-header p {
    font-size: 16px;
    color: var(--rk-calc-text);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Interfejs Kalkulatora */
.rk-calc-app {
    display: flex;
    flex-wrap: wrap;
}

.rk-calc-controls {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: var(--rk-calc-surface);
}

.rk-calc-results {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: var(--rk-calc-dark);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Suwaki (Sliders) */
.rk-slider-group {
    margin-bottom: 30px;
}

.rk-slider-group:last-child {
    margin-bottom: 0;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-slider-value-box {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

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

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

/* Tablica Wyników */
.rk-result-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin: 0 0 25px 0;
}

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

.rk-res-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 16px;
}

.rk-res-label {
    font-size: 13px;
    color: #cbd5e1;
    margin-bottom: 8px;
    display: block;
}

.rk-res-val {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0;
}

.rk-res-val.highlight {
    color: var(--rk-calc-accent);
}

.rk-res-unit {
    font-size: 14px;
    font-weight: 600;
    color: #94a3b8;
}

/* Opis algorytmu */
.rk-algo-description {
    padding: 0 50px 40px 50px;
    background: var(--rk-calc-surface);
}

.rk-algo-step {
    background: var(--rk-calc-bg);
    border-left: 4px solid var(--rk-calc-blue);
    padding: 20px 25px;
    margin-top: 20px;
    border-radius: 0 12px 12px 0;
}

.rk-algo-step h3 {
    margin: 0 0 8px 0;
    font-size: 16px;
    color: var(--rk-calc-dark);
    font-weight: 800;
}

.rk-algo-step p {
    margin: 0;
    font-size: 15px;
    color: var(--rk-calc-text);
    line-height: 1.6;
}

.rk-algo-step a {
    color: var(--rk-calc-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 768px) {
    .rk-calc-header { padding: 30px 20px; }
    .rk-calc-controls { padding: 30px 20px; }
    .rk-calc-results { padding: 35px 20px; }
    .rk-result-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy układ kafelków */
    .rk-algo-description { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak obliczyć optymalne parametry krzywej grzewczej krok po kroku?",
    "description": "Interaktywny algorytm wyznaczania punktów charakterystyki pogodowej oparty na bilansie cieplnym budynku (PN-EN 12831) oraz równaniu wymiany ciepła dla podłogi grzejnej.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wzory",
    "name": "Zmienne algorytmu wyznaczania krzywej grzewczej",
    "description": "Zbiór wartości wejściowych oraz stałych oporu cieplnego używanych do obliczenia wymaganej temperatury zasilania i strumienia masowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "zapotrzebowanie na ciepło budynku",
      "temperatura zasilania podłogówki",
      "rotametr przepływ litry na minutę"
    ],
    "measurementTechnique": "Wyliczenia w czasie rzeczywistym bazujące na relacji gęstości strumienia cieplnego do zadanej delty temperatur instalacji (zasilanie vs powrót).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wyznaczenie Projektowych Strat Ciepła w kilowatach.",
        "Krok 2: Ustalenie stromości linii względem temperatury bazowej i warunków skrajnych (-20 st. C)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-kalkulator-krzywej",
    "name": "Kalkulator Krzywej Grzewczej i Przepływów OZC",
    "description": "Aplikacja webowa pozwalająca inwestorom na symulację wymaganej temperatury zasilania oraz nachylenia krzywej pogodowej na podstawie powierzchni i strat ciepła domu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calculator-wrapper">
    
    <div class="rk-calc-header">
        <h2>Jak obliczyć optymalne parametry krzywej grzewczej krok po kroku?</h2>
        <p>Algorytm wyznaczania punktów charakterystyki pogodowej opiera się na bilansie cieplnym budynku (norma <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>). Zmień parametry swojego domu na suwakach, aby na żywo zobaczyć, jak automatyka powinna dobrać temperatury i przepływy.</p>
    </div>

    <div class="rk-calc-app">
        
        <!-- Panel Sterowania -->
        <div class="rk-calc-controls">
            
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <svg width="18" height="18" 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>
                        Powierzchnia podłogówki
                    </span>
                    <span class="rk-slider-value-box"><span id="val-area">140</span> m²</span>
                </div>
                <input type="range" id="slider-area" class="rk-range" min="50" max="300" step="5" value="140">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Straty ciepła (OZC)
                    </span>
                    <span class="rk-slider-value-box"><span id="val-power">5.6</span> kW</span>
                </div>
                <input type="range" id="slider-power" class="rk-range" min="2.0" max="20.0" step="0.2" value="5.6">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <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="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Różnica temp. (Zasilanie-Powrót)
                    </span>
                    <span class="rk-slider-value-box"><span id="val-delta">5</span> K</span>
                </div>
                <input type="range" id="slider-delta" class="rk-range" min="3" max="8" step="1" value="5">
            </div>

        </div>

        <!-- Panel Wynikowy -->
        <div class="rk-calc-results">
            <h3 class="rk-result-title">Wymagane parametry instalacji:</h3>
            
            <div class="rk-result-grid">
                
                <div class="rk-res-box">
                    <span class="rk-res-label">Temperatura Zasilania</span>
                    <p class="rk-res-val highlight"><span id="res-temp">28.2</span><span class="rk-res-unit">°C</span></p>
                </div>
                
                <div class="rk-res-box">
                    <span class="rk-res-label">Nachylenie Krzywej (n)</span>
                    <p class="rk-res-val"><span id="res-slope">0.21</span></p>
                </div>

                <div class="rk-res-box">
                    <span class="rk-res-label">Całkowity Przepływ Wody</span>
                    <p class="rk-res-val"><span id="res-flow-total">16.1</span><span class="rk-res-unit"> l/min</span></p>
                </div>

                <div class="rk-res-box">
                    <span class="rk-res-label">Średni Przepływ na Pętlę</span>
                    <p class="rk-res-val"><span id="res-flow-loop">1.34</span><span class="rk-res-unit"> l/min</span></p>
                </div>

            </div>
        </div>

    </div>

    <!-- Opis kroków inżynieryjnych -->
    <div class="rk-algo-description">
        <div class="rk-algo-step">
            <h3>Krok 1: Wyznacz Projektowe Straty Ciepła</h3>
            <p>Odczytujemy wartość strat ciepła z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora OZC</a> dla zewnętrznej temperatury projektowej (przyjęto minus 20 stopni Celsjusza) oraz pożądanej temperatury wewnętrznej (plus 20 stopni).</p>
        </div>
        
        <div class="rk-algo-step">
            <h3>Krok 2: Oblicz Projektową Temperaturę Zasilania</h3>
            <p>Dzieląc moc w watach przez metraż otrzymujemy gęstość strumienia cieplnego. Dodając opór cieplny posadzki (np. dla paneli to 0,05 m2K/W) wyliczamy średnią wymaganą temperaturę czynnika, a dodając połowę Delty T – projektową temperaturę zasilania kotła.</p>
        </div>

        <div class="rk-algo-step">
            <h3>Krok 3: Wyznacz Współczynnik Nachylenia</h3>
            <p>Mając wyznaczoną temperaturę zasilania, podstawiamy ją do wzoru określającego stromość linii pogodowej. Jest to różnica między zasilaniem a temperaturą wewnętrzną, podzielona przez różnicę temperatur wewnętrznej i skrajnej zewnętrznej (np. amplituda 40 Kelwinów).</p>
        </div>

        <div class="rk-algo-step">
            <h3>Krok 4: Weryfikacja Przepływu Masowego</h3>
            <p>Wiedząc jaką dysponujemy mocą i przy założonej różnicy temperatur zasilania i powrotu, <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">obliczamy całkowitą objętość wody krążącej w układzie</a>. Dzieląc to przez przybliżoną ilość obiegów (przyjmując 1 pętlę na 12 metrów kwadratowych), ustalamy wymaganą nastawę na rotametrach.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje do suwaków
    var sArea = document.getElementById('slider-area');
    var sPower = document.getElementById('slider-power');
    var sDelta = document.getElementById('slider-delta');

    // Referencje do etykiet suwaków
    var vArea = document.getElementById('val-area');
    var vPower = document.getElementById('val-power');
    var vDelta = document.getElementById('val-delta');

    // Referencje do wyników
    var rTemp = document.getElementById('res-temp');
    var rSlope = document.getElementById('res-slope');
    var rFlowTotal = document.getElementById('res-flow-total');
    var rFlowLoop = document.getElementById('res-flow-loop');

    // Funkcja licząca
    function calculateCurve() {
        var area = parseFloat(sArea.value);
        var powerKW = parseFloat(sPower.value);
        var delta = parseFloat(sDelta.value);

        // Aktualizacja etykiet suwaków
        vArea.innerText = area;
        vPower.innerText = powerKW.toFixed(1);
        vDelta.innerText = delta;

        // KROK 2: Obliczenia temperatury zasilania
        var powerW = powerKW * 1000;
        var q = powerW / area; // Gęstość strumienia [W/m2]
        // Wzór na srednią temp: T_m = 20 + q * ( (1/10.8) + 0.05 )
        // 1/10.8 = 0.0925. 0.0925 + 0.05 = 0.1425
        var Tm = 20 + (q * 0.1425);
        var Tzas = Tm + (delta / 2);

        // KROK 3: Nachylenie krzywej
        // Zalozenie T_zew = -20, T_wew = 20 -> różnica to 40
        var slope = (Tzas - 20) / 40;

        // KROK 4: Przepływy
        // V [m3/h] = Q[W] * 3600 / (998 * 4.187 * 1000 * delta)
        // Dla uproszczenia: Q[kW] / (1.163 * delta) -> m3/h
        var flowM3H = powerKW / (1.163 * delta);
        var flowLMinTotal = flowM3H * 16.666; // Przeliczenie z m3/h na l/min

        // Ilość pętli (zakładamy pętle co ~12m2)
        var loops = Math.ceil(area / 12);
        var flowPerLoop = flowLMinTotal / loops;

        // Zabezpieczenie przed błędem logicznym i aktualizacja DOM
        if (Tzas > 0) {
            rTemp.innerText = Tzas.toFixed(1);
        }
        if (slope > 0) {
            rSlope.innerText = slope.toFixed(2);
        }
        if (flowLMinTotal > 0) {
            rFlowTotal.innerText = flowLMinTotal.toFixed(1);
        }
        if (flowPerLoop > 0) {
            rFlowLoop.innerText = flowPerLoop.toFixed(2);
        }
    }

    // Nasłuchiwanie zmian
    sArea.addEventListener('input', calculateCurve);
    sPower.addEventListener('input', calculateCurve);
    sDelta.addEventListener('input', calculateCurve);

    // Inicjalne wywołanie
    calculateCurve();
});
</script>



<style>
:root {
    --rk-sim-dark: #0f172a;
    --rk-sim-text: #475569;
    --rk-sim-bg: #f8fafc;
    --rk-sim-border: #e2e8f0;
    --rk-sim-opt: #10b981; /* Zielony dla optymalnego */
    --rk-sim-over: #ef4444; /* Czerwony dla przewymiarowania */
    --rk-sim-under: #3b82f6; /* Niebieski (chłodny) dla niedowymiarowania */
}

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

/* Nagłówek */
.rk-params-header {
    padding: 40px 50px 30px;
    text-align: center;
    border-bottom: 1px solid var(--rk-sim-border);
    background: #ffffff;
}

.rk-params-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-sim-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-params-header p {
    font-size: 16px;
    color: var(--rk-sim-text);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 700px;
}

.rk-params-header a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Przełącznik Wariantów */
.rk-sim-controls {
    padding: 30px 50px;
    background: var(--rk-sim-bg);
    display: flex;
    gap: 15px;
    justify-content: center;
}

.rk-sim-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-sim-border);
    padding: 20px;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 280px;
}

.rk-sim-btn:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-sim-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sim-dark);
}

.rk-sim-btn-val {
    font-size: 14px;
    color: var(--rk-sim-text);
    font-weight: 600;
}

/* Aktywne Stany Przycisków */
.rk-sim-btn.active[data-mode="opt"] {
    border-color: var(--rk-sim-opt);
    background: #ecfdf5;
    box-shadow: 0 8px 15px -5px rgba(16, 185, 129, 0.2);
}

.rk-sim-btn.active[data-mode="over"] {
    border-color: var(--rk-sim-over);
    background: #fef2f2;
    box-shadow: 0 8px 15px -5px rgba(239, 68, 68, 0.2);
}

.rk-sim-btn.active[data-mode="under"] {
    border-color: var(--rk-sim-under);
    background: #eff6ff;
    box-shadow: 0 8px 15px -5px rgba(59, 130, 246, 0.2);
}

/* Tablica Wyników (Kafelki) */
.rk-sim-dashboard {
    padding: 0 50px 40px;
    background: var(--rk-sim-bg);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-dash-card {
    background: #ffffff;
    border: 1px solid var(--rk-sim-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rk-dash-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #f1f5f9;
    color: #64748b;
    transition: all 0.3s ease;
}

.rk-dash-content {
    flex: 1;
}

.rk-dash-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    color: #94a3b8;
    margin: 0 0 4px 0;
}

.rk-dash-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sim-dark);
    margin: 0;
    line-height: 1.3;
}

/* Kolorowanie Dashboardu zależnie od wybranego trybu */
.rk-params-container[data-current="opt"] .rk-dash-icon { background: #d1fae5; color: var(--rk-sim-opt); }
.rk-params-container[data-current="over"] .rk-dash-icon { background: #fee2e2; color: var(--rk-sim-over); }
.rk-params-container[data-current="under"] .rk-dash-icon { background: #dbeafe; color: var(--rk-sim-under); }

@media (max-width: 768px) {
    .rk-params-header { padding: 30px 20px; }
    .rk-params-header h2 { font-size: 22px; }
    .rk-sim-controls { 
        padding: 20px; 
        flex-direction: column; 
    }
    .rk-sim-btn { max-width: 100%; padding: 15px 20px; flex-direction: row; align-items: center; justify-content: space-between; }
    .rk-sim-dashboard { 
        padding: 0 20px 30px; 
        grid-template-columns: 1fr; /* Pionowy układ kafelków bez poziomego scrolla */
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Porównanie parametrów pracy instalacji przy różnych ustawieniach krzywej grzewczej",
    "description": "Zestawienie analityczne wpływu nachylenia krzywej grzewczej na efektywność COP, taktowanie sprężarki oraz realne koszty zużycia energii cieplnej w budynku.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-porownanie",
    "name": "Zestawienie parametrów pracy pompy ciepła dla różnych krzywych grzewczych",
    "description": "Dane pomiarowe obrazujące zużycie energii elektrycznej przez pompę ciepła, taktowanie sprężarki oraz temperatury posadzki w zależności od krzywej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie energii elektrycznej przez pompę ciepła",
      "maksymalna temperatura zasilania podłogówki",
      "wylewka betonowa na ogrzewanie podłogowe",
      "porównanie parametrów pracy instalacji",
      "częstotliwość włączeń sprężarki taktowanie"
    ],
    "measurementTechnique": "Symulacyjne zestawienie wartości wyjściowych pompy ciepła dla domu 150m2 przy trzech profilach nachylenia krzywej (0.15, 0.35, 0.80) w referencyjnej temperaturze zewnętrznej -7 stopni Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant przewymiarowany drastycznie obniża COP i wywołuje ryzyko pękania jastrychu.",
        "Wariant optymalny zapewnia średni COP na poziomie 4.2 przy stabilnej pracy 4-6 cykli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-porownanie",
    "name": "Symulator Wpływu Krzywej Grzewczej na COP i Zużycie Energii",
    "description": "Narzędzie interaktywne zastępujące statyczną tabelę, demonstrujące na żywo zmiany parametrów eksploatacyjnych systemu grzewczego pod wpływem manipulacji sterownikiem.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-params-container" id="rkParamsSim" data-current="opt">
    
    <div class="rk-params-header">
        <h2>Porównanie parametrów pracy instalacji przy różnych ustawieniach krzywej</h2>
        <p>Wybór rzędnych i nachylenia krzywej pogodowej bezpośrednio determinuje zużycie energii elektrycznej, wydajność układu oraz bezpieczeństwo całej płaszczyzny grzewczej. Jak zachowa się instalacja dla domu o powierzchni 150 metrów kwadratowych?</p>
    </div>

    <!-- Przełączniki Wariantów -->
    <div class="rk-sim-controls">
        <button class="rk-sim-btn active" data-mode="opt" type="button">
            <span class="rk-sim-btn-title">Krzywa Optymalna</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.35</span>
        </button>
        <button class="rk-sim-btn" data-mode="over" type="button">
            <span class="rk-sim-btn-title">Przewymiarowana</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.80</span>
        </button>
        <button class="rk-sim-btn" data-mode="under" type="button">
            <span class="rk-sim-btn-title">Niedowymiarowana</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.15</span>
        </button>
    </div>

    <!-- Kafelki Wyników (Zastępują Tabelę) -->
    <div class="rk-sim-dashboard">
        
        <div class="rk-dash-card">
            <div class="rk-dash-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="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-dash-content">
                <p class="rk-dash-label">Temperatura zasilania (przy -7°C)</p>
                <h3 class="rk-dash-value" id="val-temp">31,5°C</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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"><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>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Średni COP pompy ciepła</p>
                <h3 class="rk-dash-value" id="val-cop">4,2</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Cykle sprężarki (24h)</p>
                <h3 class="rk-dash-value" id="val-cycles">4–6 cykli (Stabilnie)</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Temperatura posadzki (salon)</p>
                <h3 class="rk-dash-value" id="val-floor">24,2°C</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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="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-dash-content">
                <p class="rk-dash-label">Główne ryzyko technologiczne</p>
                <h3 class="rk-dash-value" id="val-risk">Brak (Prawidłowa <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka</a>)</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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"><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>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Szacowane zużycie energii (sezon)</p>
                <h3 class="rk-dash-value" id="val-energy">~2100 kWh</h3>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var container = document.getElementById('rkParamsSim');
    var btns = document.querySelectorAll('.rk-sim-btn');
    
    // Obiekty DOM do podmiany tekstu
    var elTemp = document.getElementById('val-temp');
    var elCop = document.getElementById('val-cop');
    var elCycles = document.getElementById('val-cycles');
    var elFloor = document.getElementById('val-floor');
    var elRisk = document.getElementById('val-risk');
    var elEnergy = document.getElementById('val-energy');

    // Baza danych dla 3 stanów (zamiennik tabeli)
    var dataBank = {
        'opt': {
            temp: '31,5°C',
            cop: '4,2',
            cycles: '4–6 cykli (Płynnie)',
            floor: '24,2°C',
            risk: 'Brak (Bezpieczna wylewka)',
            energy: '~2100 kWh'
        },
        'over': {
            temp: '43,0°C',
            cop: '2,8',
            cycles: '22–35 cykli (Taktowanie!)',
            floor: '28,9°C',
            risk: 'Pękanie jastrychu, skrzypienie paneli',
            energy: '~3150 kWh (+50% kosztów)'
        },
        'under': {
            temp: '25,5°C',
            cop: '4,8',
            cycles: '1–2 cykle (Brak mocy)',
            floor: '20,8°C',
            risk: 'Przewlekłe niedogrzanie budynku',
            energy: '~1750 kWh (Brak komfortu)'
        }
    };

    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var mode = this.getAttribute('data-mode');
            
            // Usunięcie aktywnej klasy ze wszystkich przycisków
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            // Aktualizacja zmiennej CSS kontenera dla kolorystyki
            container.setAttribute('data-current', mode);

            // Pobranie odpowiednich danych korzystając z bezpiecznej instrukcji
            var safeData = null;
            if (mode === 'opt') { safeData = dataBank['opt']; }
            else if (mode === 'over') { safeData = dataBank['over']; }
            else if (mode === 'under') { safeData = dataBank['under']; }

            if (safeData !== null) {
                elTemp.innerHTML = safeData.temp;
                elCop.innerHTML = safeData.cop;
                elCycles.innerHTML = safeData.cycles;
                elFloor.innerHTML = safeData.floor;
                elRisk.innerHTML = safeData.risk;
                elEnergy.innerHTML = safeData.energy;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-step-dark: #1e293b;
    --rk-step-blue: #0284c7;
    --rk-step-blue-light: #e0f2fe;
    --rk-step-bg: #ffffff;
    --rk-step-gray-light: #f8fafc;
    --rk-step-border: #e2e8f0;
    --rk-step-text: #475569;
    --rk-step-accent: #38bdf8;
    --rk-step-warning: #f59e0b;
}

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

/* Nagłówek */
.rk-stepper-header {
    padding: 40px 50px 30px;
    background: linear-gradient(145deg, var(--rk-step-dark) 0%, #0f172a 100%);
    color: #ffffff;
    text-align: center;
}

.rk-stepper-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-stepper-header p {
    color: #94a3b8;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 750px;
}

.rk-highlight-badge {
    display: inline-block;
    background: rgba(245, 158, 11, 0.2);
    color: #fbbf24;
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 14px;
    margin-top: 15px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

/* Przewodnik Krokowy */
.rk-stepper-body {
    padding: 40px 50px;
    background: var(--rk-step-bg);
}

.rk-step-item {
    position: relative;
    padding-left: 60px;
    padding-bottom: 30px;
}

/* Linia łącząca */
.rk-step-item::before {
    content: '';
    position: absolute;
    left: 23px;
    top: 45px;
    bottom: -5px;
    width: 2px;
    background: var(--rk-step-border);
    transition: background 0.3s;
}

.rk-step-item:last-child::before {
    display: none;
}

.rk-step-item.active::before {
    background: var(--rk-step-blue);
}

/* Kółko z numerem */
.rk-step-marker {
    position: absolute;
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rk-step-gray-light);
    border: 2px solid var(--rk-step-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    color: #94a3b8;
    z-index: 2;
    transition: all 0.3s ease;
    cursor: pointer;
}

.rk-step-item.active .rk-step-marker {
    background: var(--rk-step-blue);
    border-color: var(--rk-step-blue);
    color: #ffffff;
    box-shadow: 0 0 0 6px var(--rk-step-blue-light);
}

/* Nagłówek kroku */
.rk-step-trigger {
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    padding: 12px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    outline: none;
}

.rk-step-trigger h3 {
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    color: var(--rk-step-dark);
    transition: color 0.3s;
}

.rk-step-item.active .rk-step-trigger h3 {
    color: var(--rk-step-blue);
}

.rk-step-chevron {
    color: #cbd5e1;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-step-item.active .rk-step-chevron {
    transform: rotate(180deg);
    color: var(--rk-step-blue);
}

/* Treść kroku */
.rk-step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
}

.rk-step-item.active .rk-step-content {
    opacity: 1;
}

.rk-step-content-inner {
    padding: 10px 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-step-text);
}

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

/* Interaktywny Algorytm w Kroku 5 */
.rk-decision-matrix {
    margin-top: 20px;
    background: var(--rk-step-gray-light);
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--rk-step-border);
}

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

.rk-matrix-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 20px;
}

.rk-matrix-btn {
    background: #ffffff;
    border: 1px solid var(--rk-step-border);
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-step-text);
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-matrix-btn:hover {
    border-color: var(--rk-step-blue);
    background: var(--rk-step-blue-light);
}

.rk-matrix-btn.selected {
    background: var(--rk-step-dark);
    color: #ffffff;
    border-color: var(--rk-step-dark);
}

.rk-matrix-result {
    background: #ffffff;
    border-left: 4px solid var(--rk-step-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-step-dark);
    min-height: 54px;
    display: flex;
    align-items: center;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-stepper-header { padding: 35px 25px 25px; }
    .rk-stepper-body { padding: 30px 20px; }
    .rk-step-item { padding-left: 50px; }
    .rk-step-marker { width: 38px; height: 38px; font-size: 16px; }
    .rk-step-item::before { left: 18px; top: 38px; }
    .rk-step-trigger h3 { font-size: 16px; }
    .rk-matrix-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-proces-strojenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak przebiega proces strojenia krzywej grzewczej w praktyce?",
    "description": "Zrozum profesjonalny, 6-krokowy proces regulacji parametrów pogodowych instalacji płaszczyznowej przy wykorzystaniu rotametrów i siłowników strefowych.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-algorytm-strojenia",
    "name": "Algorytm Strojenia Krzywej Grzewczej (Decyzyjny)",
    "description": "Macierz decyzyjna określająca wpływ zmian przesunięcia i nachylenia krzywej grzewczej na temperatury wewnętrzne z uwzględnieniem warunków pogodowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strojenie krzywej grzewczej",
      "siłowniki termoelektryczne na rozdzielaczach",
      "rotametry i przepływy nominalne",
      "sterowanie strefowe ogrzewaniem",
      "temperatura referencyjna podłogówki"
    ],
    "measurementTechnique": "Algorytm oparty na iteracyjnej analizie zmian temperatur w pomieszczeniach w odstępach 48-godzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podniesienie przesunięcia o 1.5K koryguje chłód przy dodatnich temperaturach na zewnątrz.",
        "Zwiększenie nachylenia o 0.05 ratuje sytuację przy drastycznych spadkach temperatury."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-kreator-strojenia",
    "name": "Interaktywny Asystent Kalibracji Pogodowej",
    "description": "Kreator krok-po-kroku z wbudowanym panelem diagnostycznym pomagającym instalatorom i inwestorom poprawnie wyregulować automatykę cieplną.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-stepper-container">
    
    <div class="rk-stepper-header">
        <h2>Jak przebiega proces strojenia krzywej grzewczej w praktyce?</h2>
        <p>Proces kalibracji to precyzyjna inżynieria. Wykonuje się go wyłącznie metodą kolejnych kroków, dając wylewce czas na akumulację ciepła.</p>
        <div class="rk-highlight-badge">Wymóg: Temperatura na zewnątrz poniżej 5°C. Odstępy 48-godzinne.</div>
    </div>

    <div class="rk-stepper-body" id="rkStepperWrapper">
        
        <!-- KROK 1 -->
        <div class="rk-step-item active">
            <div class="rk-step-marker">1</div>
            <button class="rk-step-trigger" type="button">
                <h3>Wyloguj układy automatyki strefowej</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Otwórz całkowicie wszystkie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowniki termoelektryczne na rozdzielaczach</a> (zdejmij je mechanicznie z zaworów lub ustaw w systemie tryb manualnie otwarty NO/NC). W tej fazie decydujemy się na sterowanie instalacją wyłącznie z zewnętrznego czujnika pogodowego, omijając wpływ lokalnych termostatów pokojowych.
                </div>
            </div>
        </div>

        <!-- KROK 2 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">2</div>
            <button class="rk-step-trigger" type="button">
                <h3>Ustaw przepływy nominalne</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Wykorzystując <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry na belce rozdzielacza</a>, ustaw przepływy cieczy zgodnie z wartościami wyliczonymi w Twoim projekcie wykonawczym. Zazwyczaj prawidłowe wartości oscylują w granicach od 1,0 do 2,5 litra na minutę na jedną pętlę grzewczą.
                </div>
            </div>
        </div>

        <!-- KROK 3 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">3</div>
            <button class="rk-step-trigger" type="button">
                <h3>Ustal bazową krzywą startową</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Dla nowego budynku mieszkalnego z <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">izolacją grubości 15–20 cm</a> na gruncie (najlepiej EPS 100) oraz 20 cm izolacji na ścianach zewnętrznych (o współczynniku przewodzenia 0,038 W/mK), ustaw bezpieczne parametry początkowe: nachylenie na poziomie 0,35 oraz przesunięcie równoległe równe 0 Kelwinów.
                </div>
            </div>
        </div>

        <!-- KROK 4 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">4</div>
            <button class="rk-step-trigger" type="button">
                <h3>Mierz temperaturę referencyjną</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Wybierz najchłodniejsze pomieszczenie w budynku (zazwyczaj od strony północnej, pozbawione pasywnych zysków słonecznych). Umieść tam dokładny rejestrator temperatury na wysokości około 1,5 metra nad posadzką, aby unikać bezpośredniego wpływu promieniowania podłogi.
                </div>
            </div>
        </div>

        <!-- KROK 5 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">5</div>
            <button class="rk-step-trigger" type="button">
                <h3>Koryguj wg algorytmu decyzyjnego</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Na podstawie obserwacji po 48 godzinach, wybierz z poniższego panelu objaw, który występuje w Twoim budynku, aby otrzymać precyzyjną instrukcję zmiany parametrów:
                    
                    <div class="rk-decision-matrix">
                        <div class="rk-matrix-title">Wybierz zaobserwowany objaw:</div>
                        <div class="rk-matrix-grid">
                            <button class="rk-matrix-btn" data-diag="cold-plus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0284c7" 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>
                                Zimno przy +5°C do +15°C
                            </button>
                            <button class="rk-matrix-btn" data-diag="cold-minus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#2563eb" 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>
                                Zimno poniżej -5°C (Mróz)
                            </button>
                            <button class="rk-matrix-btn" data-diag="hot-plus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" 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>
                                Za gorąco na plusie
                            </button>
                            <button class="rk-matrix-btn" data-diag="hot-minus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#b91c1c" 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>
                                Za gorąco przy mrozie
                            </button>
                        </div>
                        <div class="rk-matrix-result" id="rkDiagResult">
                            Wybierz jeden z powyższych objawów, aby wyświetlić zalecenie.
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- KROK 6 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">6</div>
            <button class="rk-step-trigger" type="button">
                <h3>Zamknij pętlę sprzężenia</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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 class="rk-step-content">
                <div class="rk-step-content-inner">
                    Gdy wreszcie uzyskasz pożądaną, stabilną temperaturę wewnętrzną (na przykład idealne 21 stopni Celsjusza we wszystkich obiegach), możesz przejść do włączenia <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego ogrzewaniem</a>. Załóż z powrotem siłowniki. Od teraz ich zadaniem będzie wyłącznie obcinanie przepływu, gdy pojawi się dodatkowe darmowe ciepło (kominek, sprzęt AGD, nasłonecznienie z południa), co zapobiegnie lokalnemu przegrzaniu.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Logika Steppera (Akordeon kroków)
    var stepItems = document.querySelectorAll('.rk-step-item');
    
    for (var i = 0; i < stepItems.length; i++) {
        var trigger = stepItems[i].querySelector('.rk-step-trigger');
        var marker = stepItems[i].querySelector('.rk-step-marker');
        
        function toggleStep(item) {
            var isActive = item.classList.contains('active');
            var content = item.querySelector('.rk-step-content');
            
            // Zamknij wszystkie pozostałe kroki
            for (var j = 0; j < stepItems.length; j++) {
                if (stepItems[j] !== item) {
                    stepItems[j].classList.remove('active');
                    var otherContent = stepItems[j].querySelector('.rk-step-content');
                    otherContent.style.maxHeight = null;
                }
            }
            
            // Obsługa bieżącego kliknięcia
            if (isActive) {
                item.classList.remove('active');
                content.style.maxHeight = null;
            } else {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        }
        
        trigger.addEventListener('click', function() {
            toggleStep(this.parentElement);
        });
        
        marker.addEventListener('click', function() {
            toggleStep(this.parentElement);
        });
    }

    // Zainicjowanie poprawnej wysokości dla pierwszego (otwartego) kroku
    var firstContent = stepItems[0].querySelector('.rk-step-content');
    if (firstContent) {
        firstContent.style.maxHeight = firstContent.scrollHeight + "px";
    }

    // 2. Logika Panelu Diagnostycznego (Krok 5)
    var diagBtns = document.querySelectorAll('.rk-matrix-btn');
    var diagResult = document.getElementById('rkDiagResult');

    var diagMessages = {
        'cold-plus': '<strong>Rozwiązanie:</strong> Podnieś Przesunięcie krzywej o +1,5 K lub +2 K. Zostaw parametr nachylenia bez zmian.',
        'cold-minus': '<strong>Rozwiązanie:</strong> Zwiększ Nachylenie krzywej o +0,05 lub +0,1. System nie reaguje wystarczająco na mróz.',
        'hot-plus': '<strong>Rozwiązanie:</strong> Obniż Przesunięcie krzywej o -1,5 K. Baza startowa grzania jest ustawiona zbyt wysoko.',
        'hot-minus': '<strong>Rozwiązanie:</strong> Obniż Nachylenie krzywej o -0,05. Woda rośnie zbyt gwałtownie wraz ze spadkiem temperatury zewnętrznej.'
    };

    for (var d = 0; d < diagBtns.length; d++) {
        diagBtns[d].addEventListener('click', function() {
            // Usunięcie zaznaczenia ze wszystkich
            for (var b = 0; b < diagBtns.length; b++) {
                diagBtns[b].classList.remove('selected');
            }
            // Zaznaczenie bieżącego
            this.classList.add('selected');
            
            // Pobranie klucza i wstawienie odpowiedzi
            var key = this.getAttribute('data-diag');
            diagResult.innerHTML = diagMessages[key];

            // Przeliczenie wysokości akordeonu po zmianie zawartości (żeby tekst nie ucinał się w kroku 5)
            var activeContent = this.closest('.rk-step-content');
            if (activeContent) {
                activeContent.style.maxHeight = 'none'; // Tymczasowo by obliczyć nową przestrzeń
                var newHeight = activeContent.scrollHeight;
                activeContent.style.maxHeight = newHeight + "px";
            }
        });
    }
});
</script>



<style>
:root {
    --rk-scan-dark: #1e293b;
    --rk-scan-bg: #f8fafc;
    --rk-scan-border: #e2e8f0;
    --rk-scan-text: #475569;
    --rk-scan-red: #ef4444;
    --rk-scan-red-light: #fef2f2;
    --rk-scan-green: #10b981;
    --rk-scan-green-light: #ecfdf5;
}

.rk-scanner-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-scan-border);
    overflow: hidden;
    transition: all 0.4s ease;
}

/* Stan Zielony - Globalny */
.rk-scanner-container.mode-solution {
    border-color: #a7f3d0;
    box-shadow: 0 15px 35px -10px rgba(16, 185, 129, 0.15);
}

/* Nagłówek */
.rk-scanner-header {
    padding: 40px 50px 20px;
    text-align: center;
}

.rk-scanner-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-scan-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-scanner-header p {
    font-size: 16px;
    color: var(--rk-scan-text);
    margin: 0 auto;
    max-width: 700px;
    line-height: 1.6;
}

/* Główny Przełącznik */
.rk-scanner-toggle-box {
    padding: 0 50px 30px;
    display: flex;
    justify-content: center;
}

.rk-master-toggle {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 999px;
    position: relative;
    width: 100%;
    max-width: 450px;
}

.rk-toggle-option {
    flex: 1;
    padding: 14px 20px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    border: none;
    background: transparent;
}

.rk-toggle-pill {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-scan-red);
    border-radius: 999px;
    z-index: 1;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

/* Stany Przełącznika */
.rk-scanner-container.mode-error .rk-btn-error { color: #ffffff; }
.rk-scanner-container.mode-solution .rk-btn-solution { color: #ffffff; }

.rk-scanner-container.mode-solution .rk-toggle-pill {
    transform: translateX(100%);
    background: var(--rk-scan-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3);
}

/* Lista Kart */
.rk-cards-list {
    padding: 0 50px 40px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-diag-card {
    background: var(--rk-scan-bg);
    border: 2px solid var(--rk-scan-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.4s ease;
}

/* Ikony */
.rk-card-icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.4s ease;
}

/* Typografia w karcie */
.rk-card-content {
    flex: 1;
}

.rk-card-content h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-scan-dark);
}

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

.rk-card-text a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mechanizm przełączania widoku (CSS Only Content Toggle) */
.text-solution { display: none; }

.rk-scanner-container.mode-error .rk-diag-card {
    border-color: #fca5a5;
    background: var(--rk-scan-red-light);
}
.rk-scanner-container.mode-error .rk-card-icon {
    background: #fee2e2;
    color: var(--rk-scan-red);
}

.rk-scanner-container.mode-solution .rk-diag-card {
    border-color: #6ee7b7;
    background: var(--rk-scan-green-light);
}
.rk-scanner-container.mode-solution .rk-card-icon {
    background: #d1fae5;
    color: var(--rk-scan-green);
}
.rk-scanner-container.mode-solution .text-error { display: none; }
.rk-scanner-container.mode-solution .text-solution { display: block; }

/* SVG Icon states */
.icon-solution { display: none; }
.rk-scanner-container.mode-solution .icon-error { display: none; }
.rk-scanner-container.mode-solution .icon-solution { display: block; }

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-scanner-header { padding: 30px 20px 20px; }
    .rk-scanner-header h2 { font-size: 22px; }
    .rk-scanner-toggle-box { padding: 0 20px 25px; }
    .rk-cards-list { padding: 0 20px 30px; }
    .rk-diag-card { padding: 20px; flex-direction: column; gap: 15px; }
    .rk-card-icon { width: 44px; height: 44px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jakie są najczęstsze błędy przy ustawianiu krzywej grzewczej i jak ich unikać?",
    "description": "Zdiagnozuj 4 krytyczne błędy konfiguracyjne instalatorów: od złego montażu czujnika pogodowego, po dławienie rotametrów i ignorowanie bezwładności jastrychu.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-diagnostyka",
    "name": "Diagnostyka Błędów Konfiguracyjnych Krzywej Grzewczej",
    "description": "Zestawienie technologicznych pomyłek w sterowaniu instalacją płaszczyznową wraz ze sprawdzonymi inżynierskimi rozwiązaniami.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż czujnika pogodowego na ścianie",
      "dławienie przepływu pompy ciepła siłownikami",
      "brak zrównoważenia hydraulicznego rotametrami",
      "bezwładność cieplna wylewki betonowej",
      "błąd wysokiego ciśnienia instalacji"
    ],
    "measurementTechnique": "Identyfikacja przyczyn spadku efektywności instalacji w wyniku błędnych nastaw sterownika oraz przymykania pętli na rozdzielaczu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Słońce nagrzewa czujnik południowy przekłamując odczyt o 5–12°C.",
        "Zbyt częste zmiany nastaw zaburzają ocenę ze względu na 48h cykl równowagi betonu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-skaner",
    "name": "Interaktywny Skaner Błędów Instalacyjnych",
    "description": "Cyfrowe narzędzie pozwalające na dynamiczne przełączanie się między objawami błędów instalacyjnych a poprawną metodyką ich usuwania.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-scanner-container mode-error" id="rkDiagScanner">
    
    <div class="rk-scanner-header">
        <h2>Jakie są najczęstsze błędy przy ustawianiu krzywej grzewczej?</h2>
        <p>Błędy w konfiguracji sterowania pogodowego wynikają najczęściej z próby przeniesienia nawyków z wysoko-parametrowych instalacji grzejnikowych na systemy płaszczyznowe.</p>
    </div>

    <div class="rk-scanner-toggle-box">
        <div class="rk-master-toggle">
            <div class="rk-toggle-pill"></div>
            <button class="rk-toggle-option rk-btn-error" id="btn-show-errors" type="button">Objawy Błędów</button>
            <button class="rk-toggle-option rk-btn-solution" id="btn-show-solutions" type="button">Jak To Naprawić</button>
        </div>
    </div>

    <div class="rk-cards-list">
        
        <!-- Błąd 1 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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="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>
                <svg class="icon-solution" 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>
            </div>
            <div class="rk-card-content">
                <h3>1. Zła lokalizacja czujnika pogodowego</h3>
                <p class="rk-card-text text-error">Czujnik na ścianie południowej nagrzewa się od słońca, przekłamując odczyt o 5–12°C. <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterownik pogodowy</a> gwałtownie obniża temperaturę zasilania, a dom szybko się wychładza.</p>
                <p class="rk-card-text text-solution">Montuj element pomiarowy wyłącznie na ścianie północnej lub północno-zachodniej, minimum 2 metry nad gruntem, bezwzględnie z dala od wyrzutni powietrza i dużych okien.</p>
            </div>
        </div>

        <!-- Błąd 2 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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="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>
                <svg class="icon-solution" 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>
            </div>
            <div class="rk-card-content">
                <h3>2. Dławienie przepływu siłownikami</h3>
                <p class="rk-card-text text-error">Gdy jest za gorąco, użytkownik zamiast obniżyć krzywą, odcina <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowniki termoelektryczne</a>. Przepływ spada poniżej wymaganego (ok. 12-15 l/min), pompa ciepła taktuje i zgłasza błąd wysokiego ciśnienia (HP).</p>
                <p class="rk-card-text text-solution">Na czas regulacji otwórz wszystkie siłowniki (tryb manualny). Obniżaj całą krzywą grzewczą na sterowniku głównym, pozwalając na pełny, swobodny obieg wody w instalacji.</p>
            </div>
        </div>

        <!-- Błąd 3 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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="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>
                <svg class="icon-solution" 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>
            </div>
            <div class="rk-card-content">
                <h3>3. Brak zrównoważenia na rotametrach</h3>
                <p class="rk-card-text text-error">Regulacja krzywej bez wstępnego ustawienia przepływów nie działa. Krótkie pętle (np. 30 m) przegrzewają toaletę, a długie (110 m) są zimne. Inwestor sztucznie zawyża nachylenie krzywej pod najsłabszą strefę.</p>
                <p class="rk-card-text text-solution">Przed analizą krzywej ustaw <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry</a> zgodnie z danymi z projektu. Krótkie pętle należy zdławić, a na najdłuższych wymusić przepływ rzędu 2.0 - 2.5 l/min.</p>
            </div>
        </div>

        <!-- Błąd 4 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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="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>
                <svg class="icon-solution" 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>
            </div>
            <div class="rk-card-content">
                <h3>4. Zbyt częste zmiany nastaw</h3>
                <p class="rk-card-text text-error">Użytkownik modyfikuje nachylenie co kilka godzin. Wyciąga błędne wnioski, ponieważ masywna wylewka betonowa nie zdążyła zareagować na poprzednią korektę temperatury.</p>
                <p class="rk-card-text text-solution">Uszanuj <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną wylewki</a> (pojemność cieplna to około 1,0 kJ/kgK). Nowy stan równowagi w domu odczujesz po upływie minimum 24 do 48 godzin od zmiany parametru.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var scanner = document.getElementById('rkDiagScanner');
    var btnErrors = document.getElementById('btn-show-errors');
    var btnSolutions = document.getElementById('btn-show-solutions');

    if (btnErrors) {
        btnErrors.addEventListener('click', function() {
            scanner.classList.remove('mode-solution');
            scanner.classList.add('mode-error');
        });
    }

    if (btnSolutions) {
        btnSolutions.addEventListener('click', function() {
            scanner.classList.remove('mode-error');
            scanner.classList.add('mode-solution');
        });
    }
});
</script>



<style>
:root {
    --rk-tab-dark: #0f172a;
    --rk-tab-blue: #0284c7;
    --rk-tab-blue-hover: #0369a1;
    --rk-tab-light: #f8fafc;
    --rk-tab-border: #cbd5e1;
    --rk-tab-text: #334155;
    --rk-tab-active-bg: #e0f2fe;
}

.rk-project-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-tab-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-project-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: #ffffff;
}

.rk-project-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-tab-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-project-header p {
    font-size: 16px;
    color: var(--rk-tab-text);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Nawigacja Zakładek (Tabs) */
.rk-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0 50px 20px 50px;
    border-bottom: 2px solid var(--rk-tab-light);
}

.rk-tab-btn {
    flex: 1;
    min-width: 140px;
    background: var(--rk-tab-light);
    border: 1px solid var(--rk-tab-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-tab-text);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-tab-btn svg {
    color: #64748b;
    transition: color 0.3s;
}

.rk-tab-btn:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
}

.rk-tab-btn.active {
    background: var(--rk-tab-active-bg);
    border-color: var(--rk-tab-blue);
    color: var(--rk-tab-blue);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

.rk-tab-btn.active svg {
    color: var(--rk-tab-blue);
}

/* Kontenery Treści */
.rk-tab-content-wrapper {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-tab-pane {
    display: none;
    animation: fadeInTab 0.4s ease forwards;
}

.rk-tab-pane.active {
    display: block;
}

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

.rk-pane-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-tab-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-pane-title::before {
    content: '';
    display: block;
    width: 6px;
    height: 24px;
    background: var(--rk-tab-blue);
    border-radius: 4px;
}

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

.rk-pane-text a {
    color: var(--rk-tab-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-pane-text a:hover {
    border-bottom-color: var(--rk-tab-blue);
}

.rk-tech-box {
    background: var(--rk-tab-light);
    border-left: 4px solid var(--rk-tab-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-size: 15px;
    color: var(--rk-tab-dark);
    font-weight: 600;
}

/* CTA */
.rk-project-cta {
    background: var(--rk-tab-dark);
    padding: 45px 50px;
    text-align: center;
}

.rk-project-cta h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-project-cta p {
    color: #cbd5e1;
    font-size: 16px;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.6;
}

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

.rk-btn-sell:hover {
    background: var(--rk-tab-blue-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-project-header, .rk-tab-content-wrapper, .rk-project-cta { padding: 30px 20px; }
    .rk-tabs-nav { 
        padding: 0 20px 20px 20px; 
        flex-direction: column; /* Pionowy układ na mobile, brak przewijania poziomego */
    }
    .rk-tab-btn {
        flex-direction: row;
        justify-content: flex-start;
        padding: 16px 20px;
        min-width: 100%;
    }
    .rk-btn-sell { 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/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak krzywa grzewcza wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dokładna analiza zależności między parametrami krzywej grzewczej, grubością izolacji, buforem ciepła i rekuperacją na etapie projektowania hydraulicznego.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-zaleznosci-projektowe",
    "name": "Zależności hydrauliczne i izolacyjne w projektowaniu krzywej grzewczej",
    "description": "Zestawienie parametrów inżynieryjnych łączących obliczenia OZC z rozstawem rur i doborem armatury kotłowni.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zmniejszenie rozstawu rur ogrzewania podłogowego",
      "dobór pompy obiegowej do podłogówki",
      "obliczanie strat ciepła budynku ozc",
      "wpływ rekuperacji na ogrzewanie",
      "grubość styropianu pod ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Algorytm badający wpływ zmiany gęstości rur i oporu cieplnego izolacji na wymaganą maksymalną temperaturę zasilania pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dogęszczenie rur w strefach brzegowych eliminuje konieczność podnoszenia krzywej globalnej.",
        "Zastosowanie bufora jako sprzęgła hydraulicznego stabilizuje przepływy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-zaleznosci",
    "name": "Symulator Wpływu Komponentów na Krzywą Grzewczą",
    "description": "Narzędzie interaktywne prezentujące relacje między poszczególnymi etapami projektowania HVAC a finalnym ustawieniem sterownika pogodowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container">
    
    <div class="rk-project-header">
        <h2>Jak krzywa grzewcza wpływa na projekt i OZC?</h2>
        <p>Ustawienie optymalnej, niezwykle płaskiej krzywej grzewczej (o nachyleniu mniejszym lub równym 0.3) jest możliwe wyłącznie wtedy, gdy etap wykonawczy został poprzedzony precyzyjnymi obliczeniami inżynieryjnymi. Poznaj 4 filary profesjonalnego przygotowania.</p>
    </div>

    <!-- Zakładki -->
    <div class="rk-tabs-nav" id="rkTabNav">
        <button class="rk-tab-btn active" data-target="tab-ozc" type="button">
            <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="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>
            Projekt OZC
        </button>
        <button class="rk-tab-btn" data-target="tab-rury" type="button">
            <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 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M9 18v-6"></path></svg>
            Gęstość Rur
        </button>
        <button class="rk-tab-btn" data-target="tab-izolacja" type="button">
            <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>
            Izolacja
        </button>
        <button class="rk-tab-btn" data-target="tab-hydraulika" type="button">
            <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><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Pompa i Bufor
        </button>
    </div>

    <!-- Treść Zakładek -->
    <div class="rk-tab-content-wrapper">
        
        <!-- Tab 1: OZC -->
        <div class="rk-tab-pane active" id="tab-ozc">
            <h3 class="rk-pane-title">Bilans Cieplny (PN-EN 12831)</h3>
            <p class="rk-pane-text">
                Profesjonalne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczanie strat ciepła budynku OZC</a> to absolutny fundament. Wyznaczenie dokładnego zapotrzebowania na moc (Q_i) dla każdego pojedynczego pomieszczenia pozwala na idealne dopasowanie parametrów zasilania. Co więcej, <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie</a> (wentylacja mechaniczna ze sprawnością odzysku powyżej 85%) drastycznie spłaszcza krzywą, pozwalając obniżyć jej nachylenie o 0,05–0,08 w skali całego obiektu.
            </p>
            <div class="rk-tech-box">
                Efekt: Obniżenie punktu bazowego krzywej grzewczej dla całego systemu.
            </div>
        </div>

        <!-- Tab 2: Rury -->
        <div class="rk-tab-pane" id="tab-rury">
            <h3 class="rk-pane-title">Rozstaw i Strefy Brzegowe</h3>
            <p class="rk-pane-text">
                Opracowany <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt hydrauliczny instalacji</a> pozwala strategicznie zarządzać mocą. Świadome <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">zmniejszenie rozstawu rur ogrzewania podłogowego</a> z VA 15 cm na VA 10 cm podnosi lokalną moc grzewczą o 18% bez konieczności podnoszenia temperatury zasilania na kotle. Zastosowanie zagęszczenia w obszarach takich jak <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe przy oknach</a> kompensuje chłód od przeszkleń, umożliwiając pracę na bardzo niskich parametrach.
            </p>
            <div class="rk-tech-box">
                Efekt: Wyrównanie niedoborów mocy bez podnoszenia temperatury zasilania.
            </div>
        </div>

        <!-- Tab 3: Izolacja -->
        <div class="rk-tab-pane" id="tab-izolacja">
            <h3 class="rk-pane-title">Opór Cieplny Przegród</h3>
            <p class="rk-pane-text">
                Odpowiednia <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">grubość styropianu pod ogrzewanie podłogowe</a> decyduje o tym, czy grzejesz dom, czy grunt pod nim. Zgodnie z normą PN-EN 1264-4, <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny izolacji posadzki</a> na gruncie musi być równy lub większy niż 3.5 m2K/W. Gwarantuje to, że strumień energii kierowany jest w 95% ku górze. To właśnie doskonała izolacja podłogi i ścian sprawia, że możliwa jest do zastosowania wysoce energooszczędna, płaska krzywa grzewcza.
            </p>
            <div class="rk-tech-box">
                Wymóg: U mniejsze lub równe 0.15 W/m²K dla podłogi na gruncie.
            </div>
        </div>

        <!-- Tab 4: Hydraulika -->
        <div class="rk-tab-pane" id="tab-hydraulika">
            <h3 class="rk-pane-title">Zarządzanie Zładem Wody</h3>
            <p class="rk-pane-text">
                Przy systemach pracujących na ekstremalnie niskich parametrach (np. temperatura zasilania maksymalna na poziomie 32°C), kluczowy jest prawidłowy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">dobór pompy obiegowej do podłogówki</a> zapewniający odpowiedni strumień masy. W układach ze strefowymi termostatami niezbędny okazuje się <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła jako sprzęgło hydrauliczne</a> w konfiguracji 4-rurowej, który chroni pompę przed brakiem odbioru zładu i uniemożliwia taktowanie sprężarki.
            </p>
            <div class="rk-tech-box">
                Bezpieczeństwo: Stały i stabilny przepływ wymuszony niezależnie od siłowników.
            </div>
        </div>

    </div>

    <!-- Wezwanie do akcji (CTA) -->
    <div class="rk-project-cta">
        <h3>Nie ryzykuj błędów na etapie wylewki</h3>
        <p>Tylko pełna dokumentacja inżynierska gwarantuje, że podłoga będzie oddawać ciepło równomiernie, a rachunki spadną do absolutnego minimum. Zamów projekt u ekspertów.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-sell">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <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="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-tab-btn');
    var panes = document.querySelectorAll('.rk-tab-pane');

    for (var i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Usunięcie klasy active ze wszystkich przycisków
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            
            // Usunięcie klasy active ze wszystkich paneli
            for (var k = 0; k < panes.length; k++) {
                panes[k].classList.remove('active');
            }
            
            // Dodanie klasy active do klikniętego przycisku
            this.classList.add('active');
            
            // Dodanie klasy active do odpowiedniego panelu za pomocą if
            var targetPane = document.getElementById(targetId);
            if (targetPane) {
                targetPane.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-bg: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #ecfdf5;
}

.rk-casestudy-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.rk-casestudy-container[data-status="before"] {
    border-color: #fca5a5;
    box-shadow: 0 20px 40px -10px rgba(239, 68, 68, 0.1);
}

.rk-casestudy-container[data-status="after"] {
    border-color: #6ee7b7;
    box-shadow: 0 20px 40px -10px rgba(16, 185, 129, 0.1);
}

/* Nagłówek i Opis */
.rk-case-header {
    padding: 40px 50px 30px;
    background: #ffffff;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-case-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-case-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-case-header p {
    font-size: 16px;
    color: var(--rk-case-text);
    margin: 0;
    line-height: 1.7;
}

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

/* Informacje o Inwestycji */
.rk-case-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 0 50px 30px;
}

.rk-meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-case-bg);
    padding: 10px 18px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-case-dark);
}

.rk-meta-icon {
    color: var(--rk-case-blue);
}

/* Przełącznik Interaktywny */
.rk-case-switch-area {
    padding: 0 50px 30px;
}

.rk-case-toggle {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 16px;
    position: relative;
    max-width: 600px;
    margin: 0 auto;
}

.rk-case-btn {
    flex: 1;
    padding: 16px 20px;
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    border: none;
    background: transparent;
    transition: color 0.3s;
    border-radius: 10px;
}

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    border-radius: 10px;
    z-index: 1;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Kolorystyka i Stany Przełącznika */
.rk-casestudy-container[data-status="before"] .rk-btn-before { color: var(--rk-case-red); }
.rk-casestudy-container[data-status="before"] .rk-toggle-bg {
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
    border: 1px solid #fca5a5;
}

.rk-casestudy-container[data-status="after"] .rk-btn-after { color: var(--rk-case-green); }
.rk-casestudy-container[data-status="after"] .rk-toggle-bg {
    transform: translateX(100%);
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
    border: 1px solid #6ee7b7;
}

/* Panel Danych (Dashboard) */
.rk-case-dashboard {
    padding: 30px 50px 40px;
    background: var(--rk-case-bg);
    border-top: 1px solid var(--rk-case-border);
    transition: background 0.4s;
}

.rk-casestudy-container[data-status="before"] .rk-case-dashboard { background: var(--rk-case-red-bg); }
.rk-casestudy-container[data-status="after"] .rk-case-dashboard { background: var(--rk-case-green-bg); }

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

.rk-stat-card {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-stat-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
}

.rk-casestudy-container[data-status="before"] .rk-stat-card::before { background: var(--rk-case-red); }
.rk-casestudy-container[data-status="after"] .rk-stat-card::before { background: var(--rk-case-green); }

.rk-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 10px;
    display: block;
    letter-spacing: 0.5px;
}

.rk-stat-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 5px 0;
}

.rk-stat-desc {
    font-size: 13px;
    color: var(--rk-case-text);
    margin: 0;
}

/* Notatka Diagnostyczna */
.rk-case-note {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-note-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    margin-top: 2px;
}

.rk-casestudy-container[data-status="before"] .rk-note-icon { color: var(--rk-case-red); }
.rk-casestudy-container[data-status="after"] .rk-note-icon { color: var(--rk-case-green); }

.rk-note-text {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-case-text);
    margin: 0;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-meta { padding: 0 20px 20px; flex-direction: column; gap: 10px; }
    .rk-meta-item { width: 100%; justify-content: center; }
    .rk-case-switch-area { padding: 0 20px 25px; }
    .rk-case-toggle { flex-direction: column; }
    .rk-toggle-bg { width: calc(100% - 12px); height: calc(50% - 6px); bottom: auto; }
    .rk-casestudy-container[data-status="after"] .rk-toggle-bg { transform: translateY(100%); }
    .rk-case-dashboard { padding: 25px 20px; }
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy układ kafelków na smartfony */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Studium Przypadku (Case Study): Rzeczywiste koszty błędnie ustawionej krzywej",
    "description": "Zestawienie danych przed i po optymalizacji automatyki pogodowej na przykładzie domu jednorodzinnego 160 metrów kwadratowych w okolicach Rzeszowa.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wyniki-optymalizacji",
    "name": "Wyniki zysku energetycznego po kalibracji sterowania",
    "description": "Pomiary zużycia energii, taktowania sprężarki oraz COP zestawione na przykładzie realnego wdrożenia optymalizacji krzywej pogodowej w domu WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rzeczywiste oszczędności na kosztach ogrzewania w skali roku",
      "czy pompa ciepła ogrzeje dom z podłogówką",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "optymalizacja krzywej grzewczej 0.35",
      "taktowanie pompy ciepła podłogówka"
    ],
    "measurementTechnique": "Porównanie danych liczbowych (rachunki za energię elektryczną, średnia temperatura wody zasilającej, cykle pracy jednostki zewnętrznej) zarejestrowanych przed i po wykonanej usłudze audytu hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan przed: Krzywa ustawiona na wartość 0.8 doprowadziła do taktowania i wysokich kosztów ogrzewania rzędu 3800 PLN.",
        "Stan po: Obniżenie krzywej do 0.35 oraz prawidłowe wyrównanie na belkach obniżyło rachunek do 2450 PLN w sezonie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-case-study",
    "name": "Interaktywny Przegląd Studium Przypadku",
    "description": "Moduł aplikacyjny pozwalający czytelnikowi dynamicznie przełączać i analizować parametry diagnostyczne systemu przed i po interwencji inżynierskiej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-casestudy-container" id="rkCaseApp" data-status="before">
    
    <div class="rk-case-header">
        <div class="rk-case-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>
            Case Study (Studium Przypadku)
        </div>
        <h2>Ile kosztuje "ustawienie fabryczne" instalatora?</h2>
        <p>Pan Tomasz przez pierwszy rok zamieszkiwania w nowym domu borykał się z chłodem od dużych okien oraz rachunkami za prąd, które nie przystawały do nowoczesnego budownictwa. Sprawdź, dlaczego <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy uruchamianiu podłogówki</a> potrafią zrujnować portfel.</p>
    </div>

    <div class="rk-case-meta">
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"></path><circle cx="12" cy="10" r="3"></circle></svg>
            Okolice Rzeszowa (woj. podkarpackie)
        </div>
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
            Dom WT2021, 160 mkw
        </div>
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" 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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            Pompa Ciepła 8 kW
        </div>
    </div>

    <div class="rk-case-switch-area">
        <div class="rk-case-toggle">
            <div class="rk-toggle-bg"></div>
            <button class="rk-case-btn rk-btn-before" id="btnCaseBefore" type="button">Sezon 1: Błędy</button>
            <button class="rk-case-btn rk-btn-after" id="btnCaseAfter" type="button">Sezon 2: Optymalizacja</button>
        </div>
    </div>

    <div class="rk-case-dashboard">
        
        <div class="rk-dash-grid">
            <div class="rk-stat-card">
                <span class="rk-stat-label">Krzywa Grzewcza</span>
                <p class="rk-stat-val" id="valCaseCurve">0.80</p>
                <p class="rk-stat-desc" id="descCaseCurve">Nastawa fabryczna (zbyt wysoka)</p>
            </div>
            
            <div class="rk-stat-card">
                <span class="rk-stat-label">Praca Sprężarki</span>
                <p class="rk-stat-val" id="valCaseCompressor">32 cykle</p>
                <p class="rk-stat-desc" id="descCaseCompressor">Na dobę (Ekstremalne taktowanie)</p>
            </div>
            
            <div class="rk-stat-card">
                <span class="rk-stat-label">Koszt Sezonu</span>
                <p class="rk-stat-val" id="valCaseCost">3800 PLN</p>
                <p class="rk-stat-desc" id="descCaseCost">Płacone za zaniżony wskaźnik COP</p>
            </div>
        </div>

        <div class="rk-case-note">
            <svg class="rk-note-icon" id="iconCaseNote" 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>
            <p class="rk-note-text" id="textCaseNote">
                <strong>Diagnoza początkowa:</strong> Instalator pozostawił strome nachylenie krzywej, dedykowane dla grzejników w starym budownictwie. Gdy w domu robiło się nieznośnie gorąco, Pan Tomasz zamykał przepływy termostatami ściennymi. Efekt? Pompa ciepła dusiła się na zamkniętym obiegu i ulegała przedwczesnemu zużyciu.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var container = document.getElementById('rkCaseApp');
    var btnBefore = document.getElementById('btnCaseBefore');
    var btnAfter = document.getElementById('btnCaseAfter');

    // Elementy do aktualizacji tekstu
    var valCurve = document.getElementById('valCaseCurve');
    var descCurve = document.getElementById('descCaseCurve');
    var valCompress = document.getElementById('valCaseCompressor');
    var descCompress = document.getElementById('descCaseCompressor');
    var valCost = document.getElementById('valCaseCost');
    var descCost = document.getElementById('descCaseCost');
    
    var iconNote = document.getElementById('iconCaseNote');
    var textNote = document.getElementById('textCaseNote');

    // Funkcje aktualizujące (Bez użycia &&)
    function setBeforeState() {
        container.setAttribute('data-status', 'before');
        
        valCurve.innerText = '0.80';
        descCurve.innerText = 'Nastawa fabryczna (zbyt wysoka)';
        
        valCompress.innerText = '32 cykle';
        descCompress.innerText = 'Na dobę (Ekstremalne taktowanie)';
        
        valCost.innerText = '3800 PLN';
        descCost.innerText = 'Płacone za zaniżony wskaźnik COP';

        iconNote.innerHTML = '<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>';
        textNote.innerHTML = '<strong>Diagnoza początkowa:</strong> Instalator pozostawił strome nachylenie krzywej, dedykowane dla starych instalacji. Gdy w domu robiło się nieznośnie gorąco, Pan Tomasz zamykał przepływy termostatami ściennymi. Efekt? <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">Pompa ciepła</a> dusiła się na zamkniętym zładzie wody.';
    }

    function setAfterState() {
        container.setAttribute('data-status', 'after');
        
        valCurve.innerText = '0.35';
        descCurve.innerText = 'Płaska charakterystyka WT2021';
        
        valCompress.innerText = '5 cykli';
        descCompress.innerText = 'Stabilna, płynna praca na niskich obrotach';
        
        valCost.innerText = '2450 PLN';
        descCost.innerText = 'Rzeczywiste oszczędności finansowe';

        iconNote.innerHTML = '<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>';
        textNote.innerHTML = '<strong>Korekta Inżynierska:</strong> Otworzyliśmy wszystkie pętle, wymuszając pełny zład instalacji. Krzywa grzewcza została spłaszczona do poziomu 0.35 i podniesiona delikatnym przesunięciem. Osiągnęliśmy <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rzeczywiste oszczędności na kosztach ogrzewania</a> oraz ciepłą podłogę przez 24 godziny na dobę.';
    }

    // Podpięcie zdarzeń
    if (btnBefore) {
        btnBefore.addEventListener('click', setBeforeState);
    }
    
    if (btnAfter) {
        btnAfter.addEventListener('click', setAfterState);
    }
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-bg: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #475569;
    --rk-auth-social: #f1f5f9;
}

.rk-author-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-auth-border);
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
}

/* Lewa Kolumna: Profil */
.rk-author-profile {
    flex: 1;
    min-width: 300px;
    background: var(--rk-auth-bg);
    padding: 40px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-author-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

.rk-author-name {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 5px 0;
}

.rk-author-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

/* Social Media */
.rk-social-links {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}

.rk-social-btn {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-auth-dark);
    text-decoration: none;
}

.rk-social-btn:hover {
    background: var(--rk-auth-blue);
    color: #ffffff;
    border-color: var(--rk-auth-blue);
}

/* Prawa Kolumna: Treść i Interakcja */
.rk-author-content {
    flex: 2;
    min-width: 320px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-author-h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

/* Interaktywne menu opinii */
.rk-auth-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    border-bottom: 2px solid var(--rk-auth-border);
    padding-bottom: 15px;
}

.rk-auth-tab-btn {
    background: var(--rk-auth-social);
    border: 1px solid var(--rk-auth-border);
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-text);
    cursor: pointer;
}

.rk-auth-tab-btn.active {
    background: var(--rk-auth-blue);
    color: #ffffff;
    border-color: var(--rk-auth-blue);
}

/* Cytat */
.rk-quote-box {
    position: relative;
    padding: 25px 30px;
    background: #f0f9ff;
    border-left: 4px solid var(--rk-auth-blue);
    border-radius: 0 12px 12px 0;
    margin-bottom: 20px;
}

.rk-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: #ffffff;
    padding: 0 10px;
    color: var(--rk-auth-blue);
}

.rk-quote-text {
    font-size: 17px;
    font-weight: 600;
    color: var(--rk-auth-dark);
    line-height: 1.6;
    margin: 0;
    font-style: italic;
}

/* Zwykły tekst rozwinięcia */
.rk-auth-desc {
    font-size: 15px;
    color: var(--rk-auth-text);
    line-height: 1.7;
    margin: 0;
}

.rk-auth-desc a {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Ukrywanie zakładek - bez animacji */
.rk-auth-panel {
    display: none;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-author-profile { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-auth-border); }
    .rk-author-content { padding: 30px 20px; }
    .rk-author-h2 { font-size: 22px; }
    .rk-auth-tabs { flex-direction: column; border-bottom: none; gap: 8px; padding-bottom: 0; }
    .rk-auth-tab-btn { width: 100%; text-align: center; padding: 14px; }
    .rk-quote-box { padding: 20px; }
    .rk-quote-text { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-podsumowanie-autorskie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Krzywa grzewcza zdaniem Roberta Kucharskiego",
    "description": "Autorskie podsumowanie tematyki optymalizacji krzywej grzewczej i projektowania układów hydraulicznych przez eksperta HVAC, Roberta Kucharskiego.",
    "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": "Inżynier HVAC & CEO 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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wiedza-ekspercka",
    "name": "Baza Wiedzy Eksperckiej: Robert Kucharski",
    "description": "Zbiór autorskich opinii, doświadczeń i rozwiązań instalacyjnych związanych ze sterowaniem pogodowym w domach jednorodzinnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert pomp ciepła",
      "projektowanie instalacji grzewczych",
      "optymalizacja krzywej grzewczej",
      "autorytet branży hvac",
      "koszty eksploatacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Weryfikacja założeń projektowych na podstawie doświadczenia z setek zrealizowanych inwestycji grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalizacja automatyki pogodowej wymaga kompleksowego podejścia inżynieryjnego.",
        "Kluczem do niezawodności jest pełna zgodność rozstawu rur i izolacji z projektem OZC."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-panel-ekspercki",
    "name": "Panel Konsultacji Eksperckiej",
    "description": "Moduł umożliwiający interaktywne zapoznanie się z opiniami głównego inżyniera w kluczowych aspektach działania instalacji: ekonomii, komforcie i automatyce.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-author-container">
    
    <!-- Kolumna Lewa: Wizytówka Autora -->
    <div class="rk-author-profile">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-author-photo" />
        <h3 class="rk-author-name">Robert Kucharski</h3>
        <p class="rk-author-title">Główny Projektant HVAC</p>
        
        <div class="rk-social-links">
            <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Facebook">
                <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/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="LinkedIn">
                <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" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="X Twitter">
                <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>

        <p style="font-size: 13px; color: #64748b; line-height: 1.5; margin: 0;">
            Specjalista z ponad 15-letnim doświadczeniem. Twórca setek bezbłędnych instalacji płaszczyznowych w Polsce.
        </p>
    </div>

    <!-- Kolumna Prawa: Interaktywne Opinie -->
    <div class="rk-author-content">
        <h2 class="rk-author-h2">Krzywa grzewcza zdaniem Roberta Kucharskiego</h2>
        
        <div class="rk-auth-tabs" id="rkOpinionTabs">
            <button class="rk-auth-tab-btn active" data-target="opin-ekonomia" type="button">O Ekonomii</button>
            <button class="rk-auth-tab-btn" data-target="opin-bledy" type="button">O Błędach Instalatorów</button>
            <button class="rk-auth-tab-btn" data-target="opin-projekt" type="button">O Projektowaniu</button>
        </div>

        <!-- Panel 1 -->
        <div class="rk-auth-panel active" id="opin-ekonomia">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" 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>
                </div>
                <p class="rk-quote-text">
                    Nigdy nie traktuj krzywej grzewczej jak magicznego przycisku, który sam naprawi wadliwą instalację. To tylko oprogramowanie. Jeśli fizyka budynku się nie spina, żadna elektronika tego nie oszuka.
                </p>
            </div>
            <p class="rk-auth-desc">
                Z mojego doświadczenia wynika, że aż 8 na 10 inwestorów płaci zawyżone rachunki za prąd do pompy ciepła, ponieważ ich system jest dławiony lokalnymi termostatami. Świadome zarządzanie <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">zładem wody grzewczej</a> i otwarcie przepływów na rotametrach to jedyna droga do prawdziwych oszczędności.
            </p>
        </div>

        <!-- Panel 2 -->
        <div class="rk-auth-panel" id="opin-bledy">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" 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>
                </div>
                <p class="rk-quote-text">
                    Najgorsze co możesz zrobić, to korygować nachylenie krzywej codziennie rano. Beton ma gigantyczną bezwładność. Reaguje dopiero po dwóch dobach.
                </p>
            </div>
            <p class="rk-auth-desc">
                Instalatorzy, którzy konfigurują automatykę "na oko" i opuszczają kotłownię, zostawiają klienta z ogromnym problemem. Brak świadomości, jak <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzina podłogowa</a> opóźnia oddawanie ciepła, prowadzi do ciągłego przegrzewania i wychładzania pomieszczeń.
            </p>
        </div>

        <!-- Panel 3 -->
        <div class="rk-auth-panel" id="opin-projekt">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" 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>
                </div>
                <p class="rk-quote-text">
                    Prawidłowa krzywa grzewcza rodzi się na papierze milimetrowym inżyniera, a nie w menu sterownika w gotowej kotłowni.
                </p>
            </div>
            <p class="rk-auth-desc">
                Złota zasada jest brutalnie prosta. Bez rzetelnych <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczeń strat cieplnych</a> dla poszczególnych pokoi oraz bez indywidualnego dopasowania gęstości rur, Twój dom nigdy nie osiągnie standardu energetycznego, za który zapłaciłeś. Zadbaj o inżynieryjne fundamenty.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-auth-tab-btn');
    var panels = document.querySelectorAll('.rk-auth-panel');

    for (var i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }
            
            // Ustawienie aktywnych (bez animacji, instant)
            this.classList.add('active');
            var activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #1e293b;
    --rk-faq-blue: #0284c7;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-hover: #f1f5f9;
    --rk-faq-accent: #38bdf8;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to right, var(--rk-faq-dark), #0f172a);
    color: #ffffff;
    text-align: center;
}

.rk-faq-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-faq-header h2 svg {
    color: var(--rk-faq-accent);
}

.rk-faq-header p {
    color: #94a3b8;
    margin: 10px 0 0 0;
    font-size: 15px;
}

/* Moduł Akordeonu */
.rk-faq-wrapper {
    padding: 30px 50px 40px;
    background: var(--rk-faq-bg);
    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 ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk Pytania */
.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: background 0.3s;
}

.rk-faq-btn:hover {
    background: var(--rk-faq-hover);
}

.rk-faq-icon-box {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #e0f2fe;
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-faq-item.active .rk-faq-icon-box {
    background: var(--rk-faq-blue);
    color: #ffffff;
}

.rk-faq-btn h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    flex: 1;
    line-height: 1.4;
}

.rk-faq-chevron {
    color: #94a3b8;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-chevron {
    transform: rotate(180deg);
    color: var(--rk-faq-blue);
}

/* Treść Odpowiedzi */
.rk-faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-faq-content-inner {
    padding: 0 25px 25px 84px; /* Wcięcie wyrównane z tekstem h3 */
}

.rk-faq-content-inner p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-faq-content-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
}

/* Wyróżnienia danych technicznych */
.rk-data-highlight {
    font-weight: 800;
    color: var(--rk-faq-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 22px; }
    .rk-faq-wrapper { padding: 25px 15px; }
    .rk-faq-btn { padding: 18px 15px; gap: 12px; }
    .rk-faq-btn h3 { font-size: 15px; }
    .rk-faq-content-inner { padding: 0 15px 20px 15px; } /* Usunięto duże wcięcie na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Często zadawane pytania (FAQ) – Parametry krzywej grzewczej",
    "description": "Zbiór najważniejszych pytań i odpowiedzi technicznych dotyczących konfiguracji krzywej grzewczej, wykończenia podłóg i temperatur zasilania.",
    "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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jakie nachylenie krzywej grzewczej ustawić dla pompy ciepła i podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla nowoczesnego, dobrze izolowanego domu jednorodzinnego (standard WT2021) optymalne nachylenie krzywej grzewczej dla pompy ciepła połączonej z ogrzewaniem podłogowym wynosi od 0,3 do 0,4. W budynkach pasywnych wartość ta może spaść do 0,15–0,25, natomiast w starym budownictwie po termomodernizacji oscyluje w granicach 0,5–0,6."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różni się nachylenie krzywej grzewczej od jej przesunięcia?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nachylenie (slope) decyduje o stromości wykresu i zmienia temperaturę zasilania proporcjonalnie do spadku temperatury zewnętrznej (reakcja na mróz), natomiast przesunięcie (offset) podnosi lub obniża całą krzywą o stałą wartość stopni w całym zakresie temperatur. Nachylenie reguluje dynamikę przy mrozach, a przesunięcie koryguje temperaturę bazową w ciągu całego sezonu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ustawiać osobną krzywą grzewczą dla łazienki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie stosuje się osobnej krzywej grzewczej dla pojedynczego pomieszczenia na jednym rozdzielaczu, lecz projektuje się w łazience gęstszy rozstaw rur (np. VA 7,5 cm zamiast VA 15 cm) lub instaluje dodatkowy grzejnik elektryczny/drabinkowy. Alternatywą jest zastosowanie modułu mieszającego dla wyodrębnionej strefy wysokotemperaturowej, co jednak obniża sprawność skraplania pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego podłoga jest zimna, mimo że w domu jest ciepło?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W dobrze ocieplonym domu pracującym na optymalnej krzywej grzewczej, wysoka temperatura wody zasilającej nie jest wymagana – woda ma często 26–28°C. Ponieważ temperatura ciała człowieka to około 36,6°C, posadzka o temperaturze 24°C będzie w dotyku subiektywnie chłodna, co jest zjawiskiem całkowicie prawidłowym i świadczy o wysokiej efektywności energetycznej obiektu."
        }
      },
      {
        "@type": "Question",
        "name": "Jak zmiana wykończenia podłogi z płytek na panele wpływa na krzywą grzewczą?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele podłogowe cechują się wyższym oporem cieplnym (R około 0,05 - 0,10 m2K/W) niż płytki ceramiczne (R około 0,01 m2K/W), co utrudnia przekazywanie ciepła z wylewki do pomieszczenia. Zmiana okładziny na panele wymaga podniesienia temperatury zasilania o około 2–4°C, co oznacza konieczność podbicia przesunięcia krzywej o +2 K do +3 K lub nieznacznego zwiększenia nachylenia."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-parametry-faq",
    "name": "Wskaźniki termiczne i parametry konfiguracyjne krzywej grzewczej",
    "description": "Zestawienie wytycznych dotyczących optymalnego nachylenia, przesunięcia oraz wpływu oporu cieplnego materiałów na temperaturę zasilania systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "nachylenie krzywej grzewczej",
      "przesunięcie krzywej pogodowej",
      "opór cieplny paneli podłogowych",
      "temperatura zasilania podłogówki",
      "sprawność skraplania pompy ciepła"
    ],
    "measurementTechnique": "Parametry określone na podstawie norm izolacyjności budynków (WT2021) oraz wartości oporu cieplnego materiałów wykończeniowych posadzek.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalne nachylenie krzywej (WT2021): 0.3 - 0.4.",
        "Korekta temperatury dla paneli podłogowych: przesunięcie o +2K do +3K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-faq",
    "name": "Interaktywny Panel FAQ Krzywej Grzewczej",
    "description": "Moduł aplikacyjny wyświetlający kluczowe pytania inwestorów i techniczne odpowiedzi w formie dynamicznego, rozwijanego interfejsu (akordeon).",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <h2>
            <svg width="28" height="28" 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>
            Często zadawane pytania (FAQ)
        </h2>
        <p>Rozwiewamy inżynieryjne wątpliwości dotyczące nastaw automatyki pogodowej.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Jakie nachylenie krzywej grzewczej ustawić dla pompy ciepła i podłogówki?</h3>
                <svg class="rk-faq-chevron" width="20" height="20" 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 class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Dla nowoczesnego, dobrze izolowanego domu jednorodzinnego (standard WT2021) optymalne nachylenie krzywej grzewczej dla <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> połączonej z ogrzewaniem podłogowym wynosi <span class="rk-data-highlight">od 0,3 do 0,4</span>. W budynkach pasywnych wartość ta może spaść do <span class="rk-data-highlight">0,15–0,25</span>, natomiast w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">starym budownictwie po termomodernizacji</a> oscyluje w granicach <span class="rk-data-highlight">0,5–0,6</span>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Czym różni się nachylenie krzywej grzewczej od jej przesunięcia?</h3>
                <svg class="rk-faq-chevron" width="20" height="20" 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 class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p><strong>Nachylenie (slope)</strong> decyduje o stromości wykresu i zmienia temperaturę zasilania proporcjonalnie do spadku temperatury zewnętrznej (reakcja na mróz), natomiast <strong>przesunięcie (offset)</strong> podnosi lub obniża całą krzywą o stałą wartość stopni w całym zakresie temperatur. Nachylenie reguluje dynamikę przy mrozach, a przesunięcie koryguje temperaturę bazową w ciągu całego sezonu.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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="9" y1="3" x2="9" y2="21"></line></svg>
                </div>
                <h3>Czy ustawiać osobną krzywą grzewczą dla łazienki?</h3>
                <svg class="rk-faq-chevron" width="20" height="20" 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 class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Nie stosuje się osobnej krzywej grzewczej dla pojedynczego pomieszczenia na jednym <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu</a>, lecz projektuje się w łazience gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (np. <span class="rk-data-highlight">VA 7,5 cm</span> zamiast VA 15 cm) lub instaluje dodatkowy grzejnik elektryczny. Alternatywą jest zastosowanie modułu mieszającego dla wyodrębnionej strefy wysokotemperaturowej, co jednak obniża sprawność skraplania pompy ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Dlaczego podłoga jest zimna, mimo że w domu jest ciepło?</h3>
                <svg class="rk-faq-chevron" width="20" height="20" 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 class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>W dobrze ocieplonym domu pracującym na optymalnej krzywej grzewczej, wysoka temperatura wody zasilającej nie jest wymagana – woda ma często <span class="rk-data-highlight">26–28°C</span>. Ponieważ temperatura ciała człowieka to około 36,6°C, posadzka o temperaturze 24°C będzie w dotyku subiektywnie chłodna, co jest zjawiskiem całkowicie prawidłowym i świadczy o wysokiej efektywności energetycznej obiektu.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3>Jak zmiana wykończenia podłogi z płytek na panele wpływa na krzywą grzewczą?</h3>
                <svg class="rk-faq-chevron" width="20" height="20" 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 class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Panele podłogowe cechują się wyższym oporem cieplnym (<span class="rk-data-highlight">R około 0,05 - 0,10 m2K/W</span>) niż płytki ceramiczne (<span class="rk-data-highlight">R około 0,01 m2K/W</span>), co utrudnia przekazywanie ciepła z wylewki do pomieszczenia. Zmiana <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">płytek na panele</a> wymaga podniesienia temperatury zasilania o około 2–4°C, co oznacza konieczność podbicia przesunięcia krzywej o +2 K do +3 K lub nieznacznego zwiększenia nachylenia.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqBtns = document.querySelectorAll('.rk-faq-btn');
    
    for (var i = 0; i < faqBtns.length; i++) {
        faqBtns[i].addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne otwarte panele dla zachowania czystości interfejsu
            for (var j = 0; j < faqBtns.length; j++) {
                var otherItem = faqBtns[j].parentElement;
                var otherContent = faqBtns[j].nextElementSibling;
                if (otherItem !== item) {
                    otherItem.classList.remove('active');
                    otherContent.style.maxHeight = null;
                }
            }
            
            // Przełącz kliknięty panel
            if (isActive) {
                item.classList.remove('active');
                content.style.maxHeight = null;
            } else {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #475569;
    --rk-dl-red: #ef4444;
}

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

/* Układ główny karty */
.rk-dl-grid {
    display: flex;
    flex-wrap: wrap;
}

/* Lewa sekcja - Miniatura */
.rk-dl-visual {
    flex: 1;
    min-width: 300px;
    background: var(--rk-dl-bg);
    padding: 40px;
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-dl-thumbnail-wrapper {
    position: relative;
    width: 100%;
    max-width: 280px;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    background: #ffffff;
    padding: 10px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.rk-dl-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    cursor: pointer;
}

.rk-dl-badge {
    position: absolute;
    top: -12px;
    right: -12px;
    background: var(--rk-dl-red);
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
    padding: 6px 12px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

/* Prawa sekcja - Treść i Przyciski */
.rk-dl-content {
    flex: 1.5;
    min-width: 320px;
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-dl-content h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-dl-blue);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-desc {
    font-size: 15px;
    color: var(--rk-dl-text);
    line-height: 1.6;
    margin: 0 0 25px 0;
}

.rk-dl-desc a {
    color: var(--rk-dl-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Grupa Przycisków */
.rk-dl-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn-pdf, .rk-btn-img {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    border: none;
}

.rk-btn-pdf {
    background: var(--rk-dl-dark);
    color: #ffffff;
}

.rk-btn-pdf:hover {
    background: #1e293b;
}

.rk-btn-img {
    background: #e0f2fe;
    color: var(--rk-dl-blue);
    border: 1px solid #bae6fd;
}

.rk-btn-img:hover {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border-color: var(--rk-dl-blue);
}

/* Stopka z Prawami Autorskimi */
.rk-dl-copyright {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.5;
}

.rk-dl-copyright strong {
    color: var(--rk-dl-text);
}

/* Lightbox (Pełny ekran dla obrazka) - Błyskawiczne pojawianie */
.rk-lightbox {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-lightbox.active {
    display: flex;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
}

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
    display: block;
}

.rk-lightbox-close {
    position: absolute;
    top: -20px;
    right: -20px;
    background: var(--rk-dl-red);
    color: #ffffff;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 4px solid #1e293b;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-lightbox-close:hover {
    background: #b91c1c;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dl-grid { flex-direction: column; }
    .rk-dl-visual { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-content { padding: 30px 20px; }
    .rk-dl-actions { flex-direction: column; }
    .rk-btn-pdf, .rk-btn-img { width: 100%; justify-content: center; }
    .rk-lightbox-close { top: -10px; right: -10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Pobierz darmową infografikę: Krzywa grzewcza w pigułce",
    "description": "Zestawienie parametrów, objawów błędów i metod strojenia krzywej pogodowej w formie czytelnej, autorskiej infografiki do pobrania w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-infografika-pdf",
    "name": "Schemat instalacji i ustawienia pompy ciepła (Infografika)",
    "description": "Zestawienie wizualne prawidłowych parametrów zasilania rozdzielacza ogrzewania podłogowego w oparciu o aktualne normy WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "schemat instalacji ogrzewania",
      "ustawienia pompy ciepła tabela",
      "parametry zasilania rozdzielacza",
      "kompleksowa wycena ogrzewania podłogowego"
    ],
    "measurementTechnique": "Przedstawienie skondensowanej wiedzy inżynieryjnej dotyczącej przesunięcia i nachylenia krzywej pogodowej w formie plików WEBP oraz PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szybka ściągawka ułatwiająca identyfikację problemów z przegrzewaniem lub niedogrzewaniem budynku.",
        "Dokument PDF przeznaczony dla instalatorów oraz inwestorów do wykorzystania bezpośrednio w kotłowni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-przegladarka",
    "name": "Interaktywna Przeglądarka Infografik HVAC",
    "description": "Moduł umożliwiający błyskawiczne wyświetlenie podglądu schematów hydraulicznych na pełnym ekranie oraz bezpieczne pobranie zautoryzowanego pliku PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-container">
    <div class="rk-dl-grid">
        
        <!-- Podgląd Wizualny -->
        <div class="rk-dl-visual">
            <div class="rk-dl-thumbnail-wrapper">
                <div class="rk-dl-badge">Darmowy PDF</div>
                <img decoding="async" 
                    src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp" 
                    alt="Miniatura infografiki: Krzywa grzewcza w ogrzewaniu podłogowym" 
                    class="rk-dl-image" 
                    id="rkThumbTrigger"
                />
            </div>
        </div>

        <!-- Treść i Przyciski -->
        <div class="rk-dl-content">
            <h3>Narzędzie dla Inwestora i Instalatora</h3>
            <h2>Pobierz infografikę: Krzywa grzewcza w pigułce</h2>
            
            <p class="rk-dl-desc">
                Wiedza, którą przedstawiłem w tym artykule, to techniczny fundament. Aby ułatwić Ci pracę bezpośrednio w kotłowni, przygotowałem kompleksowy <strong>schemat instalacji ogrzewania</strong> oraz <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">zestawienie parametrów zasilania rozdzielacza</a> w formie czytelnej infografiki. Zabierz te dane ze sobą, gdy tylko zauważysz, że Twój system wymaga interwencji.
            </p>

            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-pdf">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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-btn-img" id="rkBtnView">
                    <svg width="20" height="20" 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>

            <!-- Prawa Autorskie -->
            <div class="rk-dl-copyright">
                <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
                Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
            </div>
        </div>

    </div>
</div>

<!-- Modal / Lightbox (Brak animacji, błyskawiczny popup) -->
<div class="rk-lightbox" id="rkLightboxPopup">
    <div class="rk-lightbox-content">
        <button type="button" class="rk-lightbox-close" id="rkLightboxClose" aria-label="Zamknij podgląd">
            <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="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" 
            src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp" 
            alt="Powiększona infografika krzywej grzewczej" 
            class="rk-lightbox-img"
        />
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var lightbox = document.getElementById('rkLightboxPopup');
    var btnView = document.getElementById('rkBtnView');
    var thumbTrigger = document.getElementById('rkThumbTrigger');
    var btnClose = document.getElementById('rkLightboxClose');

    // Funkcja otwierająca (bezpieczna bez operatorów &&)
    function openLightbox() {
        if (lightbox !== null) {
            lightbox.classList.add('active');
            // Zablokowanie scrollowania strony
            document.body.style.overflow = 'hidden';
        }
    }

    // Funkcja zamykająca
    function closeLightbox() {
        if (lightbox !== null) {
            lightbox.classList.remove('active');
            // Odblokowanie scrollowania strony
            document.body.style.overflow = '';
        }
    }

    // Podpięcie zdarzeń
    if (btnView !== null) {
        btnView.addEventListener('click', openLightbox);
    }
    
    if (thumbTrigger !== null) {
        thumbTrigger.addEventListener('click', openLightbox);
    }

    if (btnClose !== null) {
        btnClose.addEventListener('click', closeLightbox);
    }

    // Zamknięcie po kliknięciu w ciemne tło (poza obrazkiem)
    if (lightbox !== null) {
        lightbox.addEventListener('click', function(event) {
            if (event.target === lightbox) {
                closeLightbox();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dash-dark: #0f172a;
    --rk-dash-blue: #0284c7;
    --rk-dash-blue-hover: #0369a1;
    --rk-dash-light: #f8fafc;
    --rk-dash-green: #059669;
    --rk-dash-red: #dc2626;
    --rk-dash-border: #e2e8f0;
    --rk-dash-tag-bg: #f1f5f9;
    --rk-dash-tag-text: #475569;
}

.rk-summary-dashboard {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-dash-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-dash-header {
    padding: 40px 50px 20px;
}

.rk-dash-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-dash-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-dash-header h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-dash-blue);
    margin: 30px 0 15px 0;
}

.rk-dash-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 15px;
}

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

/* Przełącznik App-Style */
.rk-app-toggle-container {
    background: var(--rk-dash-light);
    padding: 30px 50px;
    border-top: 1px solid var(--rk-dash-border);
    border-bottom: 1px solid var(--rk-dash-border);
}

.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 6px;
    position: relative;
    max-width: 500px;
    margin: 0 auto 30px auto;
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    text-align: center;
}

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

.rk-toggle-indicator {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-dash-blue);
    border-radius: 999px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    z-index: 1;
}

.rk-toggle-wrapper[data-state="bad"] .rk-toggle-indicator {
    transform: translateX(100%);
    background: var(--rk-dash-red);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.3);
}

/* Karty Wyników */
.rk-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-result-card {
    background: #ffffff;
    border: 2px solid var(--rk-dash-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: border-color 0.3s ease;
}

.rk-result-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-result-content h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
}

.rk-result-content .rk-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-dash-dark);
    margin: 0 0 5px 0;
}

.rk-result-content .rk-desc {
    font-size: 13px;
    color: #64748b;
    margin: 0;
    line-height: 1.4;
}

/* Stan: Dobry (Projekt) */
.state-good .card-cop { border-color: #a7f3d0; }
.state-good .card-cop .rk-result-icon { background: #d1fae5; color: var(--rk-dash-green); }
.state-good .card-bill { border-color: #bae6fd; }
.state-good .card-bill .rk-result-icon { background: #e0f2fe; color: var(--rk-dash-blue); }

/* Stan: Zły (Na oko) */
.state-bad .card-cop { border-color: #fecaca; }
.state-bad .card-cop .rk-result-icon { background: #fee2e2; color: var(--rk-dash-red); }
.state-bad .card-bill { border-color: #fef08a; }
.state-bad .card-bill .rk-result-icon { background: #fef9c3; color: #ca8a04; }

/* Tagi Długi Ogon */
.rk-tags-container {
    padding: 30px 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-dash-tag-bg);
    color: var(--rk-dash-tag-text);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid #cbd5e1;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: #e2e8f0;
    color: var(--rk-dash-dark);
}

/* CTA */
.rk-final-cta {
    background: var(--rk-dash-dark);
    padding: 40px 50px;
    text-align: center;
}

.rk-final-cta h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-massive-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-dash-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
}

.rk-massive-link:hover {
    background: var(--rk-dash-blue-hover);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dash-header, .rk-app-toggle-container, .rk-tags-container, .rk-final-cta {
        padding: 30px 20px;
    }
    .rk-results-grid {
        grid-template-columns: 1fr; /* Pionowy układ na mobile */
        gap: 15px;
    }
    .rk-toggle-wrapper {
        flex-direction: column; /* Akordeonowy przełącznik */
        border-radius: 16px;
    }
    .rk-toggle-indicator {
        width: calc(100% - 12px);
        height: calc(50% - 6px);
        bottom: auto;
    }
    .rk-toggle-wrapper[data-state="bad"] .rk-toggle-indicator {
        transform: translateY(100%);
    }
    .rk-massive-link {
        width: 100%;
        padding: 18px 20px;
        font-size: 16px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Podsumowanie: Optymalizacja Krzywej Grzewczej a Projekt OZC",
    "description": "Zakończenie analizy konfiguracji krzywej grzewczej. Poznaj realny wpływ profesjonalnego projektu obciążenia cieplnego na współczynnik COP pompy ciepła i 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-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-cop",
    "name": "Wpływ Projektu OZC na SCOP Pompy Ciepła",
    "description": "Dane pomiarowe i szacunkowe porównujące koszty eksploatacji oraz wydajność systemu grzewczego w zależności od precyzji obliczeń inżynierskich.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalizacja krzywej grzewczej",
      "cop pompy ciepła a podłogówka",
      "projektowe obciążenie cieplne ozc",
      "zrównoważenie hydrauliczne rotametrów",
      "bezwładność jastrychu betonowego"
    ],
    "measurementTechnique": "Porównanie parametrów pracy pompy ciepła z poprawnie dobranym rozstawem rur (na bazie OZC) z instalacją wykonaną intuicyjnie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System zoptymalizowany: Wymaga zrównoważenia przepływów i precyzyjnego przesunięcia krzywej.",
        "System bez projektu: Wymusza podniesienie temperatury zasilania, drastycznie obniżając SCOP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-symulator",
    "name": "Symulator Efektywności Krzywej Grzewczej",
    "description": "Interaktywna aplikacja webowa demonstrująca wpływ błędów projektowych na efektywność instalacji płaszczyznowej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-dashboard">
    <!-- Część tekstowa -->
    <div class="rk-dash-header">
        <h2>Podsumowanie: Inżynieria vs Intuicja</h2>
        <p>
            Optymalnie skonfigurowana krzywa grzewcza w ogrzewaniu podłogowym stanowi warunek konieczny do uzyskania wysokiego współczynnika COP pompy ciepła lub niskiego zużycia paliwa przez kocioł kondensacyjny. Proces jej regulacji wymaga cierpliwości, wyłączenia agresywnego sterowania strefowego na czas kalibracji oraz zrozumienia <strong>bezwładności jastrychu betonowego</strong>.
        </p>

        <h3>Dlaczego projekt to fundament?</h3>
        <p>
            Bez usunięcia błędów projektowych – takich jak brak wyznaczenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>, niewłaściwy rozstaw rur czy brak <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">zrównoważenia hydraulicznego na rozdzielaczu</a> – sama regulacja sterownika pogodowego nie rozwiąże problemów z niedogrzaniem lub wysokimi rachunkami. Jeśli planujesz budowę lub modernizację instalacji, dopilnuj wykonania pełnego <a href="https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/">projektu wykonawczego HVAC</a>. To jedyna droga do uzyskania stabilnego komfortu cieplnego przy minimalnych kosztach eksploatacji.
        </p>
    </div>

    <!-- Przełącznik aplikacji -->
    <div class="rk-app-toggle-container">
        <div class="rk-toggle-wrapper" id="rkToggleUI" data-state="good">
            <div class="rk-toggle-indicator"></div>
            <button class="rk-toggle-btn active" id="btn-pro" type="button">Z projektem OZC</button>
            <button class="rk-toggle-btn" id="btn-amateur" type="button">Montaż "na oko"</button>
        </div>

        <div class="rk-results-grid state-good" id="rkResultsGrid">
            <!-- Karta COP -->
            <div class="rk-result-card card-cop">
                <div class="rk-result-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-result-content">
                    <h4>Wydajność (COP)</h4>
                    <div class="rk-value" id="val-cop">4.6 - 5.0</div>
                    <p class="rk-desc" id="desc-cop">Sprężarka pracuje płynnie. Zasilanie rzędu 28-32°C.</p>
                </div>
            </div>
            
            <!-- Karta Kosztów -->
            <div class="rk-result-card card-bill">
                <div class="rk-result-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>
                <div class="rk-result-content">
                    <h4>Rachunki za prąd</h4>
                    <div class="rk-value" id="val-bill">Niskie</div>
                    <p class="rk-desc" id="desc-bill">Zrównoważone pętle oddają pełną moc do pomieszczeń.</p>
                </div>
            </div>
        </div>
    </div>

    <!-- Tagi długiego ogona -->
    <div class="rk-tags-container">
        <span class="rk-mat-tag"># optymalizacja krzywej grzewczej</span>
        <span class="rk-mat-tag"># cop pompy ciepła a podłogówka</span>
        <span class="rk-mat-tag"># ustawienie sterownika pogodowego</span>
        <span class="rk-mat-tag"># bezwładność jastrychu betonowego</span>
        <span class="rk-mat-tag"># projektowe obciążenie cieplne ozc</span>
        <span class="rk-mat-tag"># zrównoważenie hydrauliczne rotametrów</span>
        <span class="rk-mat-tag"># prawidłowy rozstaw rur ogrzewania</span>
        <span class="rk-mat-tag"># koszty eksploatacji ogrzewania</span>
        <span class="rk-mat-tag"># pełny projekt wykonawczy hvac</span>
        <span class="rk-mat-tag"># stabilny komfort cieplny w domu</span>
    </div>

    <!-- Mocne CTA - brak animacji -->
    <div class="rk-final-cta">
        <h3>Nie zgaduj przy budowie domu. Projektuj.</h3>
        <p>Błędy hydrauliczne zamarzają w betonie na zawsze. Zdobądź wiedzę, która uchroni Twój system grzewczy przed błędami instalacyjnymi.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-massive-link">
            CZYTAJ BAZĘ WIEDZY PREMIUM
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnPro = document.getElementById('btn-pro');
    const btnAmateur = document.getElementById('btn-amateur');
    const toggleUI = document.getElementById('rkToggleUI');
    const resultsGrid = document.getElementById('rkResultsGrid');
    
    // Elementy tekstowe do podmiany
    const valCop = document.getElementById('val-cop');
    const descCop = document.getElementById('desc-cop');
    const valBill = document.getElementById('val-bill');
    const descBill = document.getElementById('desc-bill');

    function setGoodState() {
        // UI logic
        btnAmateur.classList.remove('active');
        btnPro.classList.add('active');
        toggleUI.setAttribute('data-state', 'good');
        
        resultsGrid.classList.remove('state-bad');
        resultsGrid.classList.add('state-good');
        
        // Data logic
        valCop.innerText = "4.6 - 5.0";
        descCop.innerText = "Sprężarka pracuje płynnie. Zasilanie rzędu 28-32°C.";
        valBill.innerText = "Zoptymalizowane";
        descBill.innerText = "Zrównoważone pętle oddają pełną moc cieplną do pomieszczeń.";
    }

    function setBadState() {
        // UI logic
        btnPro.classList.remove('active');
        btnAmateur.classList.add('active');
        toggleUI.setAttribute('data-state', 'bad');
        
        resultsGrid.classList.remove('state-good');
        resultsGrid.classList.add('state-bad');
        
        // Data logic
        valCop.innerText = "2.8 - 3.2";
        descCop.innerText = "Taktowanie pompy. Sztuczne podbijanie zasilania do 45°C.";
        valBill.innerText = "+40% Kosztów";
        descBill.innerText = "Pompa ciepła zużywa prąd na nadrabianie strat hydraulicznych.";
    }

    if (btnPro) {
        btnPro.addEventListener('click', setGoodState);
    }
    
    if (btnAmateur) {
        btnAmateur.addEventListener('click', setBadState);
    }
});
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

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

  /* RWD - Mobile (układ pionowy, akordeon, brak przycisków obok siebie) */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "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-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>


<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kocioł gazowy.</title>
		<link>https://projekt-ogrzewania.pl/kociol-gazowy/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 04 Jan 2026 14:02:32 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kocioł gazowy]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[kocioł gazowy]]></category>
		<category><![CDATA[kocioł kondensacyjny]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz podłogówki]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3048</guid>

					<description><![CDATA[<p>Wybór źródła ciepła do ogrzewania podłogowego to decyzja, która wpływa na komfort, koszty i niezawodność systemu przez długie lata. Kocioł gazowy w ogrzewaniu podłogowym pozostaje jednym z najczęściej wybieranych rozwiązań, ponieważ idealnie wpisuje się w charakterystykę instalacji niskotemperaturowych. W artykule omawiamy zasadę działania kotła kondensacyjnego, proces kondensacji, kluczowe elementy instalacji, dobór mocy, sterowanie oraz praktyczne aspekty projektowania i eksploatacji. To kompleksowy przewodnik zarówno dla inwestorów, jak i osób technicznych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">Kocioł gazowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-gas-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-graphite: #2c414f;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff7438;
    --rk-red: #e33d35;
    --rk-green: #16856b;
    --rk-green-soft: #eaf8f4;
    --rk-yellow: #f5b942;
    --rk-ink: #1f2937;
    --rk-text: #465866;
    --rk-muted: #687986;
    --rk-line: #dce8ee;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ed;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-gas-guide,
  #rk-gas-guide * {
    box-sizing: border-box;
  }

  #rk-gas-guide img,
  #rk-gas-guide svg {
    max-width: 100%;
  }

  #rk-gas-guide button,
  #rk-gas-guide input,
  #rk-gas-guide label,
  #rk-gas-guide a,
  #rk-gas-guide summary {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-gas-guide a {
    color: var(--rk-blue);
    font-weight: 760;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-gas-guide a:hover,
  #rk-gas-guide a:focus-visible {
    color: var(--rk-red);
  }

  #rk-gas-guide h2,
  #rk-gas-guide h3,
  #rk-gas-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-gas-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.6rem);
  }

  #rk-gas-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.56rem);
  }

  #rk-gas-guide h4 {
    margin-bottom: 8px;
    font-size: 1.04rem;
    letter-spacing: -0.018em;
  }

  /* Ochrona przed dekoracjami nagłówków dodawanymi przez motyw. */
  #rk-gas-guide h2::before,
  #rk-gas-guide h2::after,
  #rk-gas-guide h3::before,
  #rk-gas-guide h3::after,
  #rk-gas-guide h4::before,
  #rk-gas-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-gas-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-gas-guide strong {
    color: var(--rk-dark);
  }

  #rk-gas-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-gas-guide .rk-gas-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-gas-guide .rk-gas-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.86);
  }

  #rk-gas-guide .rk-gas-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange), var(--rk-red));
  }

  #rk-gas-guide .rk-gas-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 12%, rgba(255, 116, 56, 0.38), transparent 27%),
      radial-gradient(circle at 82% 80%, rgba(40, 201, 218, 0.24), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #095e78 100%);
  }

  #rk-gas-guide .rk-gas-hero::before,
  #rk-gas-guide .rk-gas-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-gas-guide .rk-gas-hero::before {
    right: -115px;
    bottom: -170px;
    width: 390px;
    height: 390px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-gas-guide .rk-gas-hero::after {
    right: 115px;
    bottom: -130px;
    width: 230px;
    height: 230px;
    border: 34px solid rgba(255, 116, 56, 0.11);
  }

  #rk-gas-guide .rk-gas-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 116, 56, 0.18);
  }

  #rk-gas-guide .rk-gas-hero h2 {
    max-width: 930px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.25vw, 3.9rem);
    letter-spacing: -0.055em;
  }

  #rk-gas-guide .rk-gas-hero h2 em {
    color: #84edf5;
    font-style: normal;
  }

  #rk-gas-guide .rk-gas-hook {
    max-width: 940px;
    margin: 0 0 25px;
    padding: 18px 22px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 16px 16px 0;
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(4px);
  }

  #rk-gas-guide .rk-gas-hook p {
    margin: 0;
    color: #f8fcff;
    font-size: clamp(1.05rem, 2.15vw, 1.35rem);
    font-weight: 720;
  }

  #rk-gas-guide .rk-gas-hook strong,
  #rk-gas-guide .rk-gas-hero strong {
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-hero-lead {
    max-width: 900px;
    color: #d9e9f1;
    font-size: 1.05rem;
  }

  #rk-gas-guide .rk-gas-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin-top: 28px;
  }

  #rk-gas-guide .rk-gas-hero-meta b {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    color: #d8e8ef;
    font-size: 0.86rem;
  }

  #rk-gas-guide .rk-gas-hero-meta b::before {
    content: "";
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-gas-guide .rk-gas-content {
    padding: clamp(28px, 5vw, 66px);
  }

  #rk-gas-guide .rk-gas-learn,
  #rk-gas-guide .rk-gas-nav,
  #rk-gas-guide .rk-gas-callout,
  #rk-gas-guide .rk-gas-formula,
  #rk-gas-guide .rk-gas-table-wrap,
  #rk-gas-guide .rk-gas-chart,
  #rk-gas-guide .rk-gas-scheme,
  #rk-gas-guide .rk-gas-sources {
    margin: 28px 0;
  }

  #rk-gas-guide .rk-gas-learn {
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: linear-gradient(145deg, #f9fdff, var(--rk-cyan-soft));
  }

  #rk-gas-guide .rk-gas-eyebrow {
    display: block;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-learn-grid,
  #rk-gas-guide .rk-gas-card-grid,
  #rk-gas-guide .rk-gas-check-grid,
  #rk-gas-guide .rk-gas-kpi-grid {
    display: grid;
    gap: 18px;
  }

  #rk-gas-guide .rk-gas-learn-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-gas-guide .rk-gas-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-gas-guide .rk-gas-check-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-gas-guide .rk-gas-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-gas-guide .rk-gas-learn-card,
  #rk-gas-guide .rk-gas-card,
  #rk-gas-guide .rk-gas-check,
  #rk-gas-guide .rk-gas-kpi {
    min-width: 0;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-learn-card,
  #rk-gas-guide .rk-gas-card,
  #rk-gas-guide .rk-gas-check {
    padding: 22px;
  }

  #rk-gas-guide .rk-gas-learn-no,
  #rk-gas-guide .rk-gas-card-tag,
  #rk-gas-guide .rk-gas-check-no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1;
  }

  #rk-gas-guide .rk-gas-learn-no,
  #rk-gas-guide .rk-gas-check-no {
    width: 46px;
    height: 46px;
    border-radius: 15px;
  }

  #rk-gas-guide .rk-gas-card-tag {
    min-height: 32px;
    padding: 7px 11px;
    border-radius: 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-learn-card p,
  #rk-gas-guide .rk-gas-card p,
  #rk-gas-guide .rk-gas-check p,
  #rk-gas-guide .rk-gas-kpi p {
    margin-bottom: 0;
  }

  #rk-gas-guide .rk-gas-nav {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-gas-guide .rk-gas-nav > strong {
    display: block;
    margin-bottom: 13px;
  }

  #rk-gas-guide .rk-gas-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }

  #rk-gas-guide .rk-gas-nav-links > a {
    padding: 7px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-white);
    font-size: 0.79rem;
    text-decoration: none;
  }

  #rk-gas-guide .rk-gas-nav-links > a:hover,
  #rk-gas-guide .rk-gas-nav-links > a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-gas-guide .rk-gas-section {
    padding: clamp(38px, 6vw, 70px) 0;
    border-top: 1px solid var(--rk-line);
  }

  #rk-gas-guide .rk-gas-section:first-of-type {
    border-top: 0;
  }

  #rk-gas-guide .rk-gas-section-head {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    margin-bottom: 28px;
  }

  #rk-gas-guide .rk-gas-section-no {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 19px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
    font-weight: 900;
  }

  #rk-gas-guide .rk-gas-section-head h2 {
    margin-bottom: 8px;
  }

  #rk-gas-guide .rk-gas-section-head p {
    margin: 0;
    color: var(--rk-muted);
  }

  #rk-gas-guide .rk-gas-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(190px, 0.45fr);
    gap: 24px;
    align-items: center;
    margin: 25px 0;
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid #ffd7c3;
    border-radius: 24px;
    background: linear-gradient(145deg, #fffaf7, var(--rk-warm));
  }

  #rk-gas-guide .rk-gas-answer-label {
    display: block;
    margin-bottom: 10px;
    color: #c94e18;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-answer-main {
    color: var(--rk-dark);
    font-size: clamp(1.2rem, 3vw, 1.75rem);
    font-weight: 900;
    line-height: 1.25;
  }

  #rk-gas-guide .rk-gas-answer-main p {
    margin: 0;
    color: inherit;
  }

  #rk-gas-guide .rk-gas-answer-badge {
    padding: 22px;
    border-radius: 20px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    text-align: center;
    box-shadow: 0 16px 35px rgba(227, 61, 53, 0.2);
  }

  #rk-gas-guide .rk-gas-answer-badge b,
  #rk-gas-guide .rk-gas-answer-badge small {
    display: block;
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-answer-badge b {
    font-size: clamp(1.8rem, 5vw, 3rem);
    line-height: 1;
  }

  #rk-gas-guide .rk-gas-answer-badge small {
    margin-top: 7px;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-gas-guide .rk-gas-note,
  #rk-gas-guide .rk-gas-warning,
  #rk-gas-guide .rk-gas-truth {
    margin: 25px 0;
    padding: 21px 23px;
    border-radius: 0 18px 18px 0;
  }

  #rk-gas-guide .rk-gas-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-cyan-soft);
  }

  #rk-gas-guide .rk-gas-warning {
    border-left: 5px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-gas-guide .rk-gas-truth {
    border-left: 5px solid var(--rk-cyan);
    background: linear-gradient(135deg, var(--rk-dark), #24485c);
  }

  #rk-gas-guide .rk-gas-truth p,
  #rk-gas-guide .rk-gas-truth strong {
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-note p:last-child,
  #rk-gas-guide .rk-gas-warning p:last-child,
  #rk-gas-guide .rk-gas-truth p:last-child {
    margin-bottom: 0;
  }

  #rk-gas-guide .rk-gas-formula {
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: linear-gradient(145deg, #f8feff, var(--rk-cyan-soft));
  }

  #rk-gas-guide .rk-gas-formula-label {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-equation {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: clamp(1.15rem, 3vw, 1.7rem);
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-gas-guide .rk-gas-equation small {
    display: block;
    margin-top: 11px;
    color: var(--rk-muted);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 0.78rem;
    font-weight: 570;
    line-height: 1.6;
  }

  #rk-gas-guide .rk-gas-table-wrap {
    width: 100%;
  }

  #rk-gas-guide .rk-gas-table-title {
    display: block;
    margin-bottom: 12px;
    color: var(--rk-dark);
    font-weight: 900;
  }

  #rk-gas-guide table {
    width: 100%;
    border: 1px solid var(--rk-line);
    border-spacing: 0;
    border-collapse: separate;
    border-radius: 18px;
    overflow: hidden;
    background: var(--rk-white);
  }

  #rk-gas-guide th,
  #rk-gas-guide td {
    padding: 15px 17px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }

  #rk-gas-guide th:last-child,
  #rk-gas-guide td:last-child {
    border-right: 0;
  }

  #rk-gas-guide tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-gas-guide thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 0.83rem;
    line-height: 1.45;
  }

  #rk-gas-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-gas-guide td {
    color: var(--rk-text);
    font-size: 0.88rem;
  }

  #rk-gas-guide .rk-gas-status {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-gas-guide .rk-gas-status-good {
    color: #0d6b56;
    background: #dff5ed;
  }

  #rk-gas-guide .rk-gas-status-check {
    color: #9a5510;
    background: #fff0d7;
  }

  #rk-gas-guide .rk-gas-status-no {
    color: #ae302b;
    background: #ffe6e4;
  }

  #rk-gas-guide .rk-gas-scheme {
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-soft);
  }

  #rk-gas-guide .rk-gas-scheme > input,
  #rk-gas-guide .rk-gas-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  #rk-gas-guide .rk-gas-scheme-tabs,
  #rk-gas-guide .rk-gas-author-tabs {
    display: grid;
    gap: 0;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    overflow: hidden;
    background: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-scheme-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-gas-guide .rk-gas-author-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-radius: 0;
    border-right: 0;
    border-left: 0;
  }

  #rk-gas-guide .rk-gas-scheme-tab,
  #rk-gas-guide .rk-gas-author-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 11px 14px;
    color: var(--rk-muted);
    background: var(--rk-white);
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-gas-guide .rk-gas-scheme-tab + .rk-gas-scheme-tab,
  #rk-gas-guide .rk-gas-author-tab + .rk-gas-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-gas-guide #rk-gas-scheme-direct:checked ~ .rk-gas-scheme-tabs label[for="rk-gas-scheme-direct"],
  #rk-gas-guide #rk-gas-scheme-mixed:checked ~ .rk-gas-scheme-tabs label[for="rk-gas-scheme-mixed"],
  #rk-gas-guide #rk-gas-author-about:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-tabs label[for="rk-gas-author-about"],
  #rk-gas-guide #rk-gas-author-exp:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-tabs label[for="rk-gas-author-exp"],
  #rk-gas-guide #rk-gas-author-sites:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-tabs label[for="rk-gas-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-gas-guide .rk-gas-scheme-panel,
  #rk-gas-guide .rk-gas-author-panel {
    display: none;
  }

  #rk-gas-guide #rk-gas-scheme-direct:checked ~ .rk-gas-scheme-panels .rk-gas-scheme-panel-direct,
  #rk-gas-guide #rk-gas-scheme-mixed:checked ~ .rk-gas-scheme-panels .rk-gas-scheme-panel-mixed,
  #rk-gas-guide #rk-gas-author-about:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-panel-about,
  #rk-gas-guide #rk-gas-author-exp:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-panel-exp,
  #rk-gas-guide #rk-gas-author-sites:checked ~ .rk-gas-author-layout .rk-gas-author-main .rk-gas-author-panel-sites {
    display: block;
  }

  #rk-gas-guide .rk-gas-scheme-panel {
    padding-top: 28px;
  }

  #rk-gas-guide .rk-gas-flow {
    display: flex;
    gap: 10px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-gas-guide .rk-gas-flow-box {
    display: flex;
    flex: 1 1 0;
    min-width: 0;
    min-height: 94px;
    align-items: center;
    justify-content: center;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.83rem;
    font-weight: 850;
    line-height: 1.4;
    text-align: center;
  }

  #rk-gas-guide .rk-gas-flow-box-hot {
    color: var(--rk-white);
    border-color: transparent;
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
  }

  #rk-gas-guide .rk-gas-flow-box-cold {
    color: var(--rk-white);
    border-color: transparent;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-gas-guide .rk-gas-flow-arrow {
    display: flex;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    color: var(--rk-orange);
    font-size: 1.4rem;
    font-weight: 900;
  }

  #rk-gas-guide .rk-gas-lab {
    margin: 30px 0;
    overflow: hidden;
    border: 1px solid #b9dce8;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 20px 50px rgba(16, 37, 54, 0.1);
  }

  #rk-gas-guide .rk-gas-lab-head {
    padding: clamp(26px, 5vw, 44px);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #174e68);
  }

  #rk-gas-guide .rk-gas-lab-head h3,
  #rk-gas-guide .rk-gas-lab-head p {
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-lab-head p:last-child {
    margin-bottom: 0;
    color: #d8e9f0;
  }

  #rk-gas-guide .rk-gas-lab-body {
    display: grid;
    grid-template-columns: minmax(270px, 0.82fr) minmax(0, 1.18fr);
  }

  #rk-gas-guide .rk-gas-lab-controls {
    padding: clamp(24px, 4vw, 36px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-gas-guide .rk-gas-control {
    margin-bottom: 24px;
  }

  #rk-gas-guide .rk-gas-control:last-child {
    margin-bottom: 0;
  }

  #rk-gas-guide .rk-gas-control-top {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 9px;
  }

  #rk-gas-guide .rk-gas-control-label {
    color: var(--rk-dark);
    font-size: 0.82rem;
    font-weight: 850;
    line-height: 1.4;
  }

  #rk-gas-guide .rk-gas-control-value {
    flex: 0 0 auto;
    min-width: 68px;
    padding: 5px 9px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
  }

  #rk-gas-guide input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-gas-guide .rk-gas-lab-results {
    min-width: 0;
    padding: clamp(24px, 4vw, 36px);
  }

  #rk-gas-guide .rk-gas-kpi {
    padding: 17px;
    background: var(--rk-soft);
  }

  #rk-gas-guide .rk-gas-kpi-label {
    display: block;
    min-height: 2.8em;
    margin-bottom: 8px;
    color: var(--rk-muted);
    font-size: 0.67rem;
    font-weight: 800;
    line-height: 1.4;
  }

  #rk-gas-guide .rk-gas-kpi-value {
    display: block;
    color: var(--rk-dark);
    font-size: clamp(1.05rem, 2.3vw, 1.42rem);
    font-weight: 950;
    letter-spacing: -0.03em;
    line-height: 1.15;
  }

  #rk-gas-guide .rk-gas-chart {
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-gas-guide .rk-gas-chart h4 {
    margin-bottom: 3px;
  }

  #rk-gas-guide .rk-gas-chart-sub {
    margin-bottom: 13px;
    color: var(--rk-muted);
    font-size: 0.76rem;
  }

  #rk-gas-guide .rk-gas-chart-svg {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 15px;
    background: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    font-weight: 700;
  }

  #rk-gas-guide .rk-gas-legend-item {
    display: inline-flex;
    gap: 7px;
    align-items: center;
  }

  #rk-gas-guide .rk-gas-legend-line {
    width: 24px;
    height: 4px;
    border-radius: 99px;
  }

  #rk-gas-guide .rk-gas-lab-verdict {
    margin-top: 22px;
    padding: 17px 19px;
    border-radius: 16px;
    background: var(--rk-cyan-soft);
    color: var(--rk-dark);
    font-size: 0.84rem;
    font-weight: 760;
  }

  #rk-gas-guide .rk-gas-lab-verdict[data-state="warning"] {
    background: var(--rk-warm);
  }

  #rk-gas-guide .rk-gas-lab-verdict[data-state="danger"] {
    background: #ffe7e4;
  }

  #rk-gas-guide .rk-gas-faq {
    display: grid;
    gap: 12px;
  }

  #rk-gas-guide .rk-gas-faq details {
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-faq summary {
    position: relative;
    padding: 18px 54px 18px 20px;
    color: var(--rk-dark);
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-gas-guide .rk-gas-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-gas-guide .rk-gas-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 1.15rem;
    transform: translateY(-50%);
  }

  #rk-gas-guide .rk-gas-faq details[open] summary::after {
    content: "−";
    background: var(--rk-orange);
  }

  #rk-gas-guide .rk-gas-faq-answer {
    padding: 0 20px 18px;
  }

  #rk-gas-guide .rk-gas-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-gas-guide .rk-gas-sources {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
    color: var(--rk-text);
    font-size: 0.82rem;
  }

  #rk-gas-guide .rk-gas-sources > strong {
    display: block;
    margin-bottom: 9px;
  }

  #rk-gas-guide .rk-gas-cta {
    margin: 48px 0 0;
    overflow: hidden;
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 20%, rgba(255, 116, 56, 0.36), transparent 28%),
      linear-gradient(135deg, var(--rk-dark), #174b63);
  }

  #rk-gas-guide .rk-gas-cta-copy {
    padding: clamp(28px, 5vw, 48px);
  }

  #rk-gas-guide .rk-gas-cta h2,
  #rk-gas-guide .rk-gas-cta p,
  #rk-gas-guide .rk-gas-cta strong {
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-cta p {
    max-width: 810px;
    color: #d6e7ef;
  }

  #rk-gas-guide .rk-gas-cta-bar {
    padding: 18px clamp(24px, 5vw, 48px) 26px;
  }

  #rk-gas-guide .rk-gas-cta-button {
    display: flex;
    width: 100%;
    min-height: 66px;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    border-radius: 17px;
    color: var(--rk-white);
    background: linear-gradient(100deg, var(--rk-orange), #f04435);
    box-shadow: 0 16px 35px rgba(227, 61, 53, 0.26);
    font-weight: 950;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }

  #rk-gas-guide .rk-gas-cta-button:hover,
  #rk-gas-guide .rk-gas-cta-button:focus-visible {
    color: var(--rk-white);
    box-shadow: 0 20px 42px rgba(227, 61, 53, 0.34);
    transform: translateY(-2px);
  }

  #rk-gas-guide .rk-gas-cta-note {
    display: block;
    margin-top: 10px;
    color: #bcd2dc;
    font-size: 0.71rem;
    line-height: 1.45;
    text-align: center;
  }

  #rk-gas-guide .rk-gas-author {
    position: relative;
    margin-top: 50px;
    overflow: hidden;
    border: 1px solid #cbdfe8;
    border-radius: 28px;
    background: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-author-head {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: clamp(26px, 5vw, 46px);
    border-bottom: 6px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-gas-guide .rk-gas-author-head h2,
  #rk-gas-guide .rk-gas-author-head p {
    color: var(--rk-white);
  }

  #rk-gas-guide .rk-gas-author-head h2 {
    margin-bottom: 6px;
  }

  #rk-gas-guide .rk-gas-author-head p {
    margin: 0;
    color: #d6e8f0;
  }

  #rk-gas-guide .rk-gas-author-mark {
    flex: 0 0 auto;
    padding: 12px 18px;
    border: 1px solid rgba(40, 201, 218, 0.45);
    border-radius: 15px;
    color: #76ecf5;
    font-size: 0.78rem;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-gas-guide .rk-gas-author-layout {
    display: grid;
    grid-template-columns: 31% 69%;
  }

  #rk-gas-guide .rk-gas-author-side {
    padding: clamp(28px, 5vw, 46px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-gas-guide .rk-gas-author-photo {
    width: min(220px, 82%);
    aspect-ratio: 1;
    margin: 0 auto 24px;
    overflow: hidden;
    border: 10px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 16px 38px rgba(16, 37, 54, 0.14);
  }

  #rk-gas-guide .rk-gas-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-gas-guide .rk-gas-author-name {
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 1.15;
  }

  #rk-gas-guide .rk-gas-author-role {
    color: var(--rk-blue);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-gas-guide .rk-gas-author-main {
    min-width: 0;
  }

  #rk-gas-guide .rk-gas-author-quote {
    position: relative;
    margin: clamp(26px, 5vw, 44px);
    padding: 26px 28px 26px 55px;
    border-radius: 20px;
    background: var(--rk-cyan-soft);
  }

  #rk-gas-guide .rk-gas-author-quote::before {
    content: "“";
    position: absolute;
    top: 10px;
    left: 18px;
    color: var(--rk-cyan);
    font-size: 3.5rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-gas-guide .rk-gas-author-quote p {
    margin: 0;
    color: var(--rk-dark);
    font-size: clamp(1rem, 2.2vw, 1.23rem);
    font-style: italic;
    font-weight: 760;
  }

  #rk-gas-guide .rk-gas-author-panel {
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-gas-guide .rk-gas-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-gas-guide .rk-gas-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-gas-guide .rk-gas-site-links > a {
    padding: 9px 14px;
    border: 1px solid #c9dde6;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-decoration: none;
  }

  #rk-gas-guide .rk-gas-site-links > a:hover,
  #rk-gas-guide .rk-gas-site-links > a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 980px) {
    #rk-gas-guide .rk-gas-learn-grid,
    #rk-gas-guide .rk-gas-kpi-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-gas-guide .rk-gas-card-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-gas-guide .rk-gas-lab-body {
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-lab-controls {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-gas-guide .rk-gas-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
  }

  @media (max-width: 760px) {
    #rk-gas-guide {
      margin: 18px auto 46px;
      font-size: 16px;
    }

    #rk-gas-guide .rk-gas-shell,
    #rk-gas-guide .rk-gas-author,
    #rk-gas-guide .rk-gas-lab {
      border-radius: 20px;
    }

    #rk-gas-guide .rk-gas-content {
      padding-right: 18px;
      padding-left: 18px;
    }

    #rk-gas-guide .rk-gas-learn-grid,
    #rk-gas-guide .rk-gas-card-grid,
    #rk-gas-guide .rk-gas-check-grid,
    #rk-gas-guide .rk-gas-kpi-grid {
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-section-head {
      grid-template-columns: 48px minmax(0, 1fr);
      gap: 14px;
    }

    #rk-gas-guide .rk-gas-section-no {
      width: 48px;
      height: 48px;
      border-radius: 15px;
    }

    #rk-gas-guide .rk-gas-answer {
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-flow {
      flex-direction: column;
    }

    #rk-gas-guide .rk-gas-flow-arrow {
      flex-basis: 24px;
      transform: rotate(90deg);
    }

    #rk-gas-guide .rk-gas-scheme-tabs,
    #rk-gas-guide .rk-gas-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-scheme-tab + .rk-gas-scheme-tab,
    #rk-gas-guide .rk-gas-author-tab + .rk-gas-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    /* Tabele zmieniają się w pionowe kafle — bez przewijania poziomego. */
    #rk-gas-guide table,
    #rk-gas-guide thead,
    #rk-gas-guide tbody,
    #rk-gas-guide tr,
    #rk-gas-guide th,
    #rk-gas-guide td {
      display: block;
      width: 100%;
    }

    #rk-gas-guide table {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-gas-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-gas-guide tbody {
      display: grid;
      gap: 15px;
    }

    #rk-gas-guide tbody tr {
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 17px;
      background: var(--rk-white);
    }

    #rk-gas-guide td,
    #rk-gas-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(104px, 38%) minmax(0, 62%);
      gap: 12px;
      padding: 13px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
    }

    #rk-gas-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.74rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-gas-guide tbody tr td:last-child {
      border-bottom: 0;
    }

    #rk-gas-guide .rk-gas-author-head {
      align-items: flex-start;
      flex-direction: column;
    }
  }

  @media (max-width: 430px) {
    #rk-gas-guide .rk-gas-hero {
      padding-right: 22px;
      padding-left: 22px;
    }

    #rk-gas-guide .rk-gas-nav-links {
      display: grid;
      grid-template-columns: 1fr;
    }

    #rk-gas-guide .rk-gas-nav-links > a {
      border-radius: 12px;
      text-align: center;
    }

    #rk-gas-guide td {
      grid-template-columns: 1fr;
      gap: 5px;
    }

    #rk-gas-guide .rk-gas-author-quote {
      margin-right: 18px;
      margin-left: 18px;
      padding-left: 46px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-gas-guide *,
    #rk-gas-guide *::before,
    #rk-gas-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
    }
  }
</style>

<article id="rk-gas-guide" aria-labelledby="rk-gas-hero-title">
  <div class="rk-gas-shell">
    <div class="rk-gas-progress-track" aria-hidden="true"><div class="rk-gas-progress"></div></div>

    <header class="rk-gas-hero">
      <div class="rk-gas-badge">Analiza techniczna • aktualizacja 2026</div>
      <h2 id="rk-gas-hero-title">Kocioł gazowy do ogrzewania podłogowego – <em>dobór mocy, modulacja, schemat i ustawienia</em></h2>

      <div class="rk-gas-hook">
        <p><strong>Kocioł 24 kW nie oznacza, że dom potrzebuje 24 kW.</strong> W budynku tracącym 5–7 kW wysoka moc maksymalna bywa potrzebna do przygotowania ciepłej wody, ale o jakości ogrzewania podłogowego decydują przede wszystkim moc minimalna, modulacja, przepływ oraz temperatura powrotu.</p>
      </div>

      <p class="rk-gas-hero-lead">Ten poradnik pokazuje, kiedy kondensacyjny kocioł gazowy może zasilać rozdzielacz bezpośrednio, kiedy potrzebne są dodatkowa pompa, zawór mieszający albo sprzęgło oraz jak odróżnić obliczeniowy dobór od zestawu elementów dodanych „na wszelki wypadek”.</p>

      <div class="rk-gas-hero-meta">
        <b>Autor: Robert Kucharski</b>
        <b>Aktualizacja: 25 sierpnia 2026 r.</b>
        <b>Czas czytania: około 22 min</b>
      </div>
    </header>

    <div class="rk-gas-content">
      <aside class="rk-gas-learn" aria-labelledby="rk-gas-learn-title">
        <span class="rk-gas-eyebrow">Po przeczytaniu będziesz wiedzieć</span>
        <h3 id="rk-gas-learn-title">Cztery decyzje, które naprawdę określają pracę kotła z podłogówką</h3>
        <div class="rk-gas-learn-grid">
          <div class="rk-gas-learn-card"><div class="rk-gas-learn-no" aria-hidden="true">01</div><h4>Jaka moc na CO?</h4><p>Oddzielisz projektowe obciążenie cieplne od katalogowej mocy urządzenia.</p></div>
          <div class="rk-gas-learn-card"><div class="rk-gas-learn-no" aria-hidden="true">02</div><h4>Jak nisko moduluje?</h4><p>Ocenisz moc minimalną i ryzyko częstego włączania palnika w cieplejsze dni.</p></div>
          <div class="rk-gas-learn-card"><div class="rk-gas-learn-no" aria-hidden="true">03</div><h4>Czy hydraulika pasuje?</h4><p>Sprawdzisz przepływ, opory oraz możliwości pompy wbudowanej w kocioł.</p></div>
          <div class="rk-gas-learn-card"><div class="rk-gas-learn-no" aria-hidden="true">04</div><h4>Co wymusza CWU?</h4><p>Zobaczysz, dlaczego moc dla prysznica może być wielokrotnie większa niż dla domu.</p></div>
        </div>
      </aside>

      <nav class="rk-gas-nav" aria-label="Nawigacja po poradniku">
        <strong>Przejdź do wybranej części:</strong>
        <div class="rk-gas-nav-links">
          <a href="#rk-gas-werdykt">Werdykt</a>
          <a href="#rk-gas-kondensacja">Kondensacja</a>
          <a href="#rk-gas-dobor">Dobór mocy</a>
          <a href="#rk-gas-laboratorium">Laboratorium</a>
          <a href="#rk-gas-cwu">Ciepła woda</a>
          <a href="#rk-gas-schematy">Schematy</a>
          <a href="#rk-gas-hydraulika">Hydraulika</a>
          <a href="#rk-gas-sterowanie">Sterowanie</a>
          <a href="#rk-gas-armatura">Armatura</a>
          <a href="#rk-gas-uruchomienie">Uruchomienie</a>
          <a href="#rk-gas-2026">Kocioł w 2026</a>
          <a href="#rk-gas-faq">FAQ</a>
        </div>
      </nav>

<section class="rk-gas-section" id="rk-gas-werdykt" aria-labelledby="rk-gas-s1">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">1</div>
          <div>
            <h2 id="rk-gas-s1">Czy kocioł gazowy dobrze współpracuje z ogrzewaniem podłogowym?</h2>
            <p>Tak — pod warunkiem że jest to kocioł kondensacyjny dobrany do niskotemperaturowej instalacji, a nie tylko do chwilowego zapotrzebowania na ciepłą wodę.</p>
          </div>
        </div>

        <div class="rk-gas-answer">
          <div>
            <span class="rk-gas-answer-label">Odpowiedź projektowa</span>
            <div class="rk-gas-answer-main"><p>Najprostszy układ jest często najlepszy: kocioł pracujący pogodowo na temperaturze wymaganej przez podłogę, pompa kotłowa oraz prawidłowo wyregulowany rozdzielacz.</p></div>
          </div>
          <div class="rk-gas-answer-badge"><b>3× nie</b><small>mieszacz, sprzęgło i druga pompa nie są elementami obowiązkowymi z definicji</small></div>
        </div>

        <p><strong>Kocioł gazowy do ogrzewania podłogowego</strong> ma sprzyjające warunki pracy, ponieważ instalacja płaszczyznowa zazwyczaj potrzebuje niższej temperatury wody niż klasyczna instalacja grzejnikowa. Chłodniejszy powrót ułatwia kondensację pary wodnej ze spalin, a duża powierzchnia grzewcza pozwala dostarczyć wymaganą moc bez rozgrzewania wody do 60–70°C.</p>

        <p>Ta zgodność nie oznacza jednak, że każdy kocioł i każdy schemat będą działały poprawnie. W małym lub dobrze ocieplonym domu problemem częściej okazuje się zbyt wysoka <strong>moc minimalna</strong>, zamykanie większości pętli przez automatykę albo brak wymaganego przepływu niż niedostatek mocy maksymalnej.</p>

        <div class="rk-gas-card-grid">
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Źródło</div><h4>Kocioł kondensacyjny</h4><p>Powinien mieć niską moc minimalną, szeroki zakres modulacji, sterowanie pogodowe i pompę zdolną pokonać opory obiegu.</p></div>
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Odbiornik</div><h4>Podłoga z projektu</h4><p>Temperatura zasilania, rozstaw rur, przepływ i temperatura powierzchni muszą wynikać z obciążenia każdego pomieszczenia.</p></div>
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Połączenie</div><h4>Hydraulika bez zgadywania</h4><p>O dodatkowej pompie, mieszaczu lub sprzęgle decydują obiegi, temperatury, opory i wymagania kotła — nie przyzwyczajenie wykonawcy.</p></div>
        </div>

        <div class="rk-gas-truth">
          <p><strong>Najważniejsza zasada:</strong> nie podgrzewaj wody do wysokiej temperatury tylko po to, żeby później schładzać ją zaworem mieszającym, jeżeli cały budynek może pracować na jednym niskotemperaturowym parametrze.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-kondensacja" aria-labelledby="rk-gas-s2">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">2</div>
          <div>
            <h2 id="rk-gas-s2">Kondensacja w kotle gazowym — dlaczego liczy się powrót?</h2>
            <p>Kocioł odzyskuje dodatkową energię ze skraplania pary wodnej zawartej w spalinach, gdy wymiennik jest odpowiednio chłodny.</p>
          </div>
        </div>

        <p>Spalanie gazu wytwarza między innymi parę wodną. Jeżeli spaliny zostaną schłodzone poniżej ich rzeczywistego punktu rosy, para zaczyna się skraplać i oddaje ciepło utajone do wody instalacyjnej. Punkt rosy nie jest jedną stałą wartością dla każdego kotła: zależy między innymi od składu gazu, zawartości dwutlenku węgla w spalinach i nadmiaru powietrza. W praktycznych objaśnieniach często pojawia się okolica 55°C, ale należy traktować ją jako przybliżenie, a nie nastawę regulatora.</p>

        <p>Im niższa temperatura wody wracającej do wymiennika, tym większa część jego powierzchni może pracować w warunkach sprzyjających kondensacji. Dlatego układ 34/28°C będzie z reguły korzystniejszy od 55/45°C. Nie wolno jednak wyciągać z samej temperatury powrotu dokładnej sprawności ani gwarantowanej oszczędności paliwa — wpływ mają także modulacja, regulacja, straty postojowe, komin, jakość spalania i charakterystyka budynku.</p>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Jak interpretować temperaturę powrotu?</span>
          <table>
            <thead><tr><th>Powrót</th><th>Ocena warunków</th><th>Znaczenie praktyczne</th><th>Czego nie wolno obiecywać</th></tr></thead>
            <tbody>
              <tr><td data-label="Powrót"><strong>25–35°C</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-good">bardzo korzystne</span></td><td data-label="Znaczenie">Typowy zakres dobrze zaprojektowanej podłogówki przy niskim parametrze.</td><td data-label="Bez obietnic">Sama temperatura nie podaje sezonowego zużycia gazu.</td></tr>
              <tr><td data-label="Powrót"><strong>35–45°C</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-good">korzystne</span></td><td data-label="Znaczenie">Kondensacja nadal może być intensywna; wynik zależy od warunków spalania.</td><td data-label="Bez obietnic">Nie oznacza automatycznie konkretnej sprawności procentowej.</td></tr>
              <tr><td data-label="Powrót"><strong>45–55°C</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-check">zakres przejściowy</span></td><td data-label="Znaczenie">Odzysk ciepła utajonego może się zmniejszać wraz ze wzrostem temperatury.</td><td data-label="Bez obietnic">Nie istnieje ostra, identyczna granica dla każdego gazu i palnika.</td></tr>
              <tr><td data-label="Powrót"><strong>powyżej 55°C</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-no">ograniczona kondensacja</span></td><td data-label="Znaczenie">Znaczna część wymiennika może pracować poza warunkami kondensacji.</td><td data-label="Bez obietnic">Kocioł nadal grzeje, lecz nie wykorzystuje w pełni swojej konstrukcji.</td></tr>
            </tbody>
          </table>
        </div>

        <h3>Dlaczego katalog pokazuje sprawność powyżej 100%?</h3>
        <p>Wartość około 105–109% może pojawić się wtedy, gdy sprawność odniesiono do <strong>wartości opałowej</strong> paliwa, która nie uwzględnia energii odzyskanej ze skraplania pary wodnej. Po odniesieniu do <strong>ciepła spalania</strong>, obejmującego tę energię, sprawność pozostaje poniżej 100%. To dwa różne punkty odniesienia, a nie tworzenie energii.</p>

        <div class="rk-gas-note">
          <p>Temperatura instalacji nie powinna być ustawiana tylko po to, żeby „wywołać kondensację”. Najpierw podłoga ma dostarczyć obliczeniową moc cieplną bez przekroczenia dopuszczalnej temperatury powierzchni, a dopiero w tym zakresie szukamy najniższej stabilnej krzywej grzewczej.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-dobor" aria-labelledby="rk-gas-s3">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">3</div>
          <div>
            <h2 id="rk-gas-s3">Jak dobrać moc kotła gazowego do podłogówki?</h2>
            <p>Dobór ma trzy osobne osie: moc dla ogrzewania budynku, zdolność modulacji przy małym obciążeniu oraz sposób przygotowania ciepłej wody.</p>
          </div>
        </div>

        <h3>1. Zacznij od projektowego obciążenia cieplnego</h3>
        <p>Moc potrzebna do ogrzewania powinna wynikać z obliczenia strat ciepła w projektowej temperaturze zewnętrznej, a nie z kubatury pomnożonej przez jeden internetowy współczynnik. Wynik całego budynku służy do sprawdzenia źródła, natomiast obciążenia pomieszczeń są potrzebne do zaprojektowania podłogi. Metodę rozwijają poradniki: <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> oraz <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831 i dobór mocy</a>.</p>

        <h3>2. Sprawdź moc minimalną, nie tylko maksymalną</h3>
        <p>Dom, który przy projektowym mrozie potrzebuje 6 kW, przez dużą część sezonu może odbierać tylko 1–3 kW. Jeżeli minimalna moc kotła wynosi 4 kW, palnik nie będzie mógł pracować stale: podgrzeje wodę, wyłączy się, poczeka na spadek temperatury i uruchomi ponownie. To właśnie taktowanie. Bezwładność podłogi pomaga, ale nie usuwa problemu zbyt wysokiej mocy minimalnej, szczególnie gdy sterowanie strefowe zamyka większość pętli.</p>

        <div class="rk-gas-formula">
          <span class="rk-gas-formula-label">Uproszczona ocena częściowego obciążenia</span>
          <div class="rk-gas-equation">Q<sub>akt</sub> ≈ Q<sub>proj</sub> · (T<sub>gr</sub> − T<sub>e</sub>) / (T<sub>gr</sub> − T<sub>e,proj</sub>)
            <small>Qproj — projektowe obciążenie cieplne, Tgr — umowna temperatura zakończenia ogrzewania uwzględniająca zyski, Te — aktualna temperatura zewnętrzna, Te,proj — projektowa temperatura zewnętrzna. To model poglądowy, a nie OZC ani model dynamiczny budynku.</small>
          </div>
        </div>

        <h3>3. Rozdziel moc CO i moc CWU</h3>
        <p>Kocioł dwufunkcyjny może mieć 20–30 kW głównie dlatego, że ma podgrzać duży strumień wody w kilka sekund. Moc przekazywana na centralne ogrzewanie może i powinna zostać ograniczona w ustawieniach serwisowych do wartości odpowiedniej dla budynku. W kotle jednofunkcyjnym z zasobnikiem większa chwilowa moc skraca ładowanie zbiornika, ale o komforcie decydują również jego pojemność, wymiennik, profil poboru i sterowanie priorytetem.</p>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Parametry ważniejsze od napisu „24 kW” na obudowie</span>
          <table>
            <thead><tr><th>Parametr</th><th>Co sprawdza projektant?</th><th>Dlaczego jest ważny?</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>Q<sub>proj</sub> budynku</strong></td><td data-label="Sprawdzenie">Obciążenie cieplne w warunkach projektowych.</td><td data-label="Znaczenie">Określa wymaganą moc grzewczą, bez automatycznego dodawania mocy przepływowej CWU.</td></tr>
              <tr><td data-label="Parametr"><strong>Moc minimalna</strong></td><td data-label="Sprawdzenie">Najniższą stabilną moc przy parametrach właściwych dla instalacji.</td><td data-label="Znaczenie">Decyduje o pracy w cieplejsze dni i po zamknięciu części stref.</td></tr>
              <tr><td data-label="Parametr"><strong>Zakres modulacji</strong></td><td data-label="Sprawdzenie">Relację mocy maksymalnej do minimalnej oraz zakres dla CO.</td><td data-label="Znaczenie">Sam zapis 1:10 nic nie mówi bez wartości granicznych i warunków pomiaru.</td></tr>
              <tr><td data-label="Parametr"><strong>Maksimum na CO</strong></td><td data-label="Sprawdzenie">Możliwość ograniczenia mocy grzewczej w menu serwisowym.</td><td data-label="Znaczenie">Kocioł dobrany pod CWU nie musi oddawać pełnej mocy do podłogi.</td></tr>
              <tr><td data-label="Parametr"><strong>Pompa kotłowa</strong></td><td data-label="Sprawdzenie">Dostępne ciśnienie przy projektowym przepływie.</td><td data-label="Znaczenie">Weryfikuje, czy pompa obsłuży rozdzielacz, pętle i magistralę.</td></tr>
              <tr><td data-label="Parametr"><strong>Minimum przepływu</strong></td><td data-label="Sprawdzenie">Wymagania wymiennika i zachowanie po zamknięciu stref.</td><td data-label="Znaczenie">Chroni przed niestabilną pracą, przegrzewaniem i błędami przepływu.</td></tr>
              <tr><td data-label="Parametr"><strong>Wymagania CWU</strong></td><td data-label="Sprawdzenie">Liczbę punktów, strumień, temperaturę oraz zasobnik.</td><td data-label="Znaczenie">Pozwala wybrać układ jedno- lub dwufunkcyjny bez zawyżania mocy CO.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-gas-warning">
          <p><strong>Nie dobieraj kotła przez dodanie 25 kW CWU do 6 kW strat budynku.</strong> W typowej instalacji priorytet CWU czasowo wstrzymuje ogrzewanie. Właściwy dobór porównuje osobno warunek grzewczy i warunek przygotowania wody.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-laboratorium" aria-labelledby="rk-gas-s4">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">4</div>
          <div>
            <h2 id="rk-gas-s4">Laboratorium kotła gazowego z ogrzewaniem podłogowym</h2>
            <p>Zmień dane i zobacz zależność między obciążeniem domu, mocą minimalną kotła, przepływem oraz mocą potrzebną do przygotowania CWU.</p>
          </div>
        </div>

        <div class="rk-gas-lab" data-rk-gas-lab>
          <div class="rk-gas-lab-head">
            <span class="rk-gas-eyebrow" style="color:#7cebf4">Interaktywny model edukacyjny</span>
            <h3>Sprawdź, czy wybrany kocioł potrafi zejść z mocą wystarczająco nisko</h3>
            <p>Model nie dobiera konkretnego urządzenia i nie zastępuje OZC, charakterystyki pompy ani danych producenta. Pokazuje relacje, które powinny zostać sprawdzone przed zakupem.</p>
          </div>

          <div class="rk-gas-lab-body">
            <div class="rk-gas-lab-controls">
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-qdesign">Projektowe obciążenie cieplne</label><output class="rk-gas-control-value" id="rk-gas-qdesign-out" for="rk-gas-qdesign">6,3 kW</output></div>
                <input id="rk-gas-qdesign" type="range" min="2" max="20" step="0.1" value="6.3">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-tdesign">Projektowa temperatura zewnętrzna</label><output class="rk-gas-control-value" id="rk-gas-tdesign-out" for="rk-gas-tdesign">−20°C</output></div>
                <input id="rk-gas-tdesign" type="range" min="-24" max="-12" step="1" value="-20">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-tcut">Umowna granica ogrzewania</label><output class="rk-gas-control-value" id="rk-gas-tcut-out" for="rk-gas-tcut">15°C</output></div>
                <input id="rk-gas-tcut" type="range" min="10" max="18" step="1" value="15">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-tout">Aktualna temperatura zewnętrzna</label><output class="rk-gas-control-value" id="rk-gas-tout-out" for="rk-gas-tout">0°C</output></div>
                <input id="rk-gas-tout" type="range" min="-24" max="18" step="1" value="0">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-pmin">Minimalna moc kotła na CO</label><output class="rk-gas-control-value" id="rk-gas-pmin-out" for="rk-gas-pmin">2,0 kW</output></div>
                <input id="rk-gas-pmin" type="range" min="1" max="6" step="0.1" value="2">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-ts">Temperatura zasilania podłogi</label><output class="rk-gas-control-value" id="rk-gas-ts-out" for="rk-gas-ts">34°C</output></div>
                <input id="rk-gas-ts" type="range" min="28" max="50" step="1" value="34">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-tr">Temperatura powrotu</label><output class="rk-gas-control-value" id="rk-gas-tr-out" for="rk-gas-tr">28°C</output></div>
                <input id="rk-gas-tr" type="range" min="22" max="45" step="1" value="28">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-dhw-flow">Strumień ciepłej wody</label><output class="rk-gas-control-value" id="rk-gas-dhw-flow-out" for="rk-gas-dhw-flow">10 l/min</output></div>
                <input id="rk-gas-dhw-flow" type="range" min="5" max="16" step="0.5" value="10">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-dhw-cold">Temperatura wody zimnej</label><output class="rk-gas-control-value" id="rk-gas-dhw-cold-out" for="rk-gas-dhw-cold">10°C</output></div>
                <input id="rk-gas-dhw-cold" type="range" min="5" max="15" step="1" value="10">
              </div>
              <div class="rk-gas-control">
                <div class="rk-gas-control-top"><label class="rk-gas-control-label" for="rk-gas-dhw-hot">Temperatura wody ciepłej</label><output class="rk-gas-control-value" id="rk-gas-dhw-hot-out" for="rk-gas-dhw-hot">45°C</output></div>
                <input id="rk-gas-dhw-hot" type="range" min="38" max="50" step="1" value="45">
              </div>
            </div>

            <div class="rk-gas-lab-results" aria-live="polite">
              <div class="rk-gas-kpi-grid">
                <div class="rk-gas-kpi"><span class="rk-gas-kpi-label">Obciążenie przy bieżącej temperaturze</span><strong class="rk-gas-kpi-value" id="rk-gas-kpi-load">2,70 kW</strong></div>
                <div class="rk-gas-kpi"><span class="rk-gas-kpi-label">Przepływ projektowy podłogówki</span><strong class="rk-gas-kpi-value" id="rk-gas-kpi-flow">0,90 m³/h</strong></div>
                <div class="rk-gas-kpi"><span class="rk-gas-kpi-label">Obciążenie / moc minimalna</span><strong class="rk-gas-kpi-value" id="rk-gas-kpi-ratio">1,35×</strong></div>
                <div class="rk-gas-kpi"><span class="rk-gas-kpi-label">Warunki kondensacji</span><strong class="rk-gas-kpi-value" id="rk-gas-kpi-cond">bardzo dobre</strong></div>
                <div class="rk-gas-kpi"><span class="rk-gas-kpi-label">Moc chwilowa dla CWU</span><strong class="rk-gas-kpi-value" id="rk-gas-kpi-dhw">24,4 kW</strong></div>
              </div>

              <div class="rk-gas-chart">
                <h4>Krzywa obciążenia budynku a moc minimalna kotła</h4>
                <p class="rk-gas-chart-sub">Obszar, w którym zapotrzebowanie spada poniżej mocy minimalnej, wskazuje potencjalną potrzebę pracy cyklicznej.</p>
                <svg class="rk-gas-chart-svg" id="rk-gas-load-chart" viewBox="0 0 660 330" role="img" aria-labelledby="rk-gas-chart-title rk-gas-chart-desc">
                  <title id="rk-gas-chart-title">Obciążenie cieplne budynku i minimalna moc kotła</title>
                  <desc id="rk-gas-chart-desc">Wykres aktualizowany na podstawie parametrów ustawionych w laboratorium.</desc>
                  <rect x="0" y="0" width="660" height="330" rx="15" fill="#ffffff"/>
                  <g stroke="#dce8ee" stroke-width="1">
                    <line x1="62" y1="36" x2="625" y2="36"/><line x1="62" y1="95" x2="625" y2="95"/><line x1="62" y1="154" x2="625" y2="154"/><line x1="62" y1="213" x2="625" y2="213"/><line x1="62" y1="272" x2="625" y2="272"/>
                  </g>
                  <g fill="#687986" font-family="Inter, sans-serif" font-size="12">
                    <text x="22" y="40" id="rk-gas-y4">6,9</text><text x="22" y="99" id="rk-gas-y3">5,2</text><text x="22" y="158" id="rk-gas-y2">3,5</text><text x="22" y="217" id="rk-gas-y1">1,7</text><text x="35" y="276">0</text>
                    <text x="50" y="298" id="rk-gas-x0">−20</text><text x="323" y="298" id="rk-gas-x1">−3</text><text x="611" y="298" id="rk-gas-x2">15</text>
                    <text x="270" y="320">temperatura zewnętrzna [°C]</text><text transform="rotate(-90 13 205)" x="13" y="205">moc [kW]</text>
                  </g>
                  <path id="rk-gas-risk-area" d="M446.3 203.9 L625 272 L625 203.9 Z" fill="rgba(255,116,56,.13)"/>
                  <path id="rk-gas-demand-path" d="M62 57.5 L625 272" fill="none" stroke="#078fbe" stroke-width="6" stroke-linecap="round"/>
                  <line id="rk-gas-min-line" x1="62" y1="203.9" x2="625" y2="203.9" stroke="#e33d35" stroke-width="4" stroke-dasharray="10 8"/>
                  <line id="rk-gas-current-line" x1="384" y1="36" x2="384" y2="272" stroke="#14384d" stroke-width="2" stroke-dasharray="4 6"/>
                  <circle id="rk-gas-current-dot" cx="384" cy="180.1" r="7" fill="#ffffff" stroke="#14384d" stroke-width="4"/>
                </svg>
                <div class="rk-gas-chart-legend" aria-hidden="true">
                  <span class="rk-gas-legend-item"><i class="rk-gas-legend-line" style="background:#078fbe"></i>obciążenie budynku</span>
                  <span class="rk-gas-legend-item"><i class="rk-gas-legend-line" style="background:#e33d35"></i>moc minimalna kotła</span>
                  <span class="rk-gas-legend-item"><i class="rk-gas-legend-line" style="background:#14384d"></i>bieżąca temperatura</span>
                </div>
              </div>

              <div class="rk-gas-lab-verdict" id="rk-gas-lab-verdict" data-state="good">Przy zadanych parametrach aktualne obciążenie jest większe od mocy minimalnej. Kocioł ma warunki do modulacji, o ile zachowany jest wymagany przepływ i odbiór ciepła.</div>
            </div>
          </div>

          <div class="rk-gas-note" style="margin:0;border-radius:0;padding:20px 34px">
            <p><strong>Ważne:</strong> przepływ obliczany jest dla mocy projektowej i różnicy Tz − Tp. Rzeczywisty regulator może zmieniać temperaturę, przepływ lub oba parametry, a możliwości kotła trzeba potwierdzić jego dokumentacją techniczną.</p>
          </div>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-cwu" aria-labelledby="rk-gas-s5">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">5</div>
          <div>
            <h2 id="rk-gas-s5">Kocioł jednofunkcyjny czy dwufunkcyjny do podłogówki?</h2>
            <p>Rodzaj odbiorników ciepła nie rozstrzyga sposobu przygotowania CWU. Decydują komfort, liczba punktów poboru, miejsce i charakter korzystania z wody.</p>
          </div>
        </div>

        <p>Kocioł dwufunkcyjny podgrzewa wodę przepływowo, dlatego jego moc maksymalna może być wysoka nawet w domu o niewielkich stratach ciepła. Kocioł jednofunkcyjny ładuje zasobnik; chwilowy pobór pokrywa wtedy również energia zgromadzona w wodzie. Oba warianty mogą prawidłowo współpracować z podłogówką, jeżeli osobno sprawdzono parametr centralnego ogrzewania i przygotowania wody.</p>

        <div class="rk-gas-formula">
          <span class="rk-gas-formula-label">Moc potrzebna do przepływowego podgrzania wody</span>
          <div class="rk-gas-equation">P<sub>CWU</sub> ≈ 0,0698 · V̇ · (T<sub>ciepła</sub> − T<sub>zimna</sub>)
            <small>P — moc w kW, V̇ — strumień w l/min, temperatury w °C. Wzór pomija straty urządzenia i wahania temperatury wody zimnej, dlatego dobór wymaga rezerwy i danych technicznych kotła.</small>
          </div>
        </div>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Przykład dla podgrzania wody z 10°C do 45°C</span>
          <table>
            <thead><tr><th>Strumień</th><th>Moc teoretyczna</th><th>Praktyczna interpretacja</th></tr></thead>
            <tbody>
              <tr><td data-label="Strumień"><strong>8 l/min</strong></td><td data-label="Moc">19,5 kW</td><td data-label="Interpretacja">Umiarkowany prysznic; komfort zależy od armatury i temperatury zasilania wodą zimną.</td></tr>
              <tr><td data-label="Strumień"><strong>10 l/min</strong></td><td data-label="Moc">24,4 kW</td><td data-label="Interpretacja">Typowy poziom pokazujący, dlaczego mały dom otrzymuje kocioł o dużej mocy maksymalnej.</td></tr>
              <tr><td data-label="Strumień"><strong>12 l/min</strong></td><td data-label="Moc">29,3 kW</td><td data-label="Interpretacja">Większy pobór; przy dwóch jednoczesnych punktach nadal może być niewystarczający.</td></tr>
              <tr><td data-label="Strumień"><strong>14 l/min</strong></td><td data-label="Moc">34,2 kW</td><td data-label="Interpretacja">Wysoki przepływ wymaga odpowiedniej mocy, instalacji gazowej i wydajności przyłącza wody.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-gas-card-grid">
          <div class="rk-gas-card">
            <div class="rk-gas-card-tag">2 funkcje</div>
            <h4>Kocioł przepływowy</h4>
            <p>Mniej miejsca i brak osobnego zasobnika. Najlepiej sprawdza się przy krótkich odległościach do punktów poboru i umiarkowanym zapotrzebowaniu na wodę. Moc maksymalną zwykle determinuje CWU.</p>
          </div>
          <div class="rk-gas-card">
            <div class="rk-gas-card-tag">1 funkcja</div>
            <h4>Kocioł z zasobnikiem</h4>
            <p>Zapewnia zapas wody i może lepiej obsłużyć kilka poborów. Wymaga miejsca, właściwej pojemności, mocy wężownicy, sterowania ładowaniem i oceny strat postojowych.</p>
          </div>
          <div class="rk-gas-card">
            <div class="rk-gas-card-tag">Kompakt</div>
            <h4>Kocioł ze zbiornikiem warstwowym</h4>
            <p>Rozwiązanie pośrednie. Rzeczywisty komfort należy oceniać na podstawie profilu poboru i parametrów producenta, nie samej pojemności zapisanej w litrach.</p>
          </div>
        </div>

        <div class="rk-gas-warning">
          <p><strong>Liczba mieszkańców nie jest samodzielnym doborem mocy.</strong> Cztery osoby korzystające kolejno z jednego prysznica tworzą inny profil niż dwie łazienki, deszczownica i napełnianie wanny w tym samym czasie.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-schematy" aria-labelledby="rk-gas-s6">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">6</div>
          <div>
            <h2 id="rk-gas-s6">Schemat kotła gazowego z ogrzewaniem podłogowym</h2>
            <p>Nie istnieje jeden schemat dla każdego budynku. Najpierw ustala się liczbę temperatur i obiegów, a dopiero później armaturę.</p>
          </div>
        </div>

        <div class="rk-gas-scheme">
          <input type="radio" name="rk-gas-scheme" id="rk-gas-scheme-direct" checked>
          <input type="radio" name="rk-gas-scheme" id="rk-gas-scheme-mixed">

          <div class="rk-gas-scheme-tabs" role="tablist" aria-label="Wybór schematu instalacji">
            <label class="rk-gas-scheme-tab" for="rk-gas-scheme-direct">Cały dom na podłogówce — obieg bezpośredni</label>
            <label class="rk-gas-scheme-tab" for="rk-gas-scheme-mixed">Podłogówka i grzejniki — różne temperatury</label>
          </div>

          <div class="rk-gas-scheme-panels">
            <div class="rk-gas-scheme-panel rk-gas-scheme-panel-direct">
              <h3>Wariant A: jeden niskotemperaturowy obieg</h3>
              <p>Kocioł ustawia temperaturę zasilania według krzywej pogodowej i tłoczy wodę bezpośrednio przez rozdzielacz. Jeżeli jego pompa zapewnia wymagany przepływ przy obliczonych oporach, dodatkowa pompa i zawór mieszający nie są potrzebne.</p>
              <div class="rk-gas-flow" role="img" aria-label="Schemat bezpośredni: kocioł z pompą, zabezpieczenie instalacji, rozdzielacz, pętle i powrót do kotła">
                <div class="rk-gas-flow-box rk-gas-flow-box-hot">Kocioł kondensacyjny<br>+ pompa wbudowana</div><div class="rk-gas-flow-arrow" aria-hidden="true">→</div>
                <div class="rk-gas-flow-box">Filtr / separator<br>zgodnie z projektem</div><div class="rk-gas-flow-arrow" aria-hidden="true">→</div>
                <div class="rk-gas-flow-box rk-gas-flow-box-cold">Rozdzielacz<br>i nastawy przepływów</div><div class="rk-gas-flow-arrow" aria-hidden="true">→</div>
                <div class="rk-gas-flow-box">Pętle podłogowe<br>→ powrót do kotła</div>
              </div>
              <div class="rk-gas-note"><p><strong>Zaleta:</strong> najniższy możliwy parametr dociera z kotła bez strat temperatury na niepotrzebnym mieszaniu. Warunkiem jest zgodność przepływu, oporów, zakresu modulacji i sterowania.</p></div>
            </div>

            <div class="rk-gas-scheme-panel rk-gas-scheme-panel-mixed">
              <h3>Wariant B: dwa obiegi o różnych parametrach</h3>
              <p>Jeżeli grzejniki wymagają wyższej temperatury niż podłoga, źródło pracuje co najmniej dla dwóch warunków. Obieg podłogowy może wtedy wymagać zaworu mieszającego, własnej pompy i odpowiedniego rozdzielenia hydraulicznego. Konkretne rozwiązanie zależy od przepływów oraz automatyki kotła.</p>
              <div class="rk-gas-flow" role="img" aria-label="Schemat mieszany: kocioł, rozdzielenie hydrauliczne, obieg grzejnikowy i obieg podłogowy z regulacją temperatury">
                <div class="rk-gas-flow-box rk-gas-flow-box-hot">Kocioł<br>i obieg źródła</div><div class="rk-gas-flow-arrow" aria-hidden="true">→</div>
                <div class="rk-gas-flow-box">Rozdzielenie obiegów<br>jeśli wymagają tego pompy</div><div class="rk-gas-flow-arrow" aria-hidden="true">→</div>
                <div class="rk-gas-flow-box">Obieg grzejnikowy<br>wyższy parametr</div><div class="rk-gas-flow-arrow" aria-hidden="true">+</div>
                <div class="rk-gas-flow-box rk-gas-flow-box-cold">Obieg podłogowy<br>mieszanie + pompa</div>
              </div>
              <div class="rk-gas-warning"><p><strong>Nie każdy układ mieszany wymaga identycznego sprzęgła lub bufora.</strong> Należy sprawdzić minimalny przepływ kotła, charakterystyki wszystkich pomp, pojemność wodną, sterowanie oraz wpływ jednego obiegu na drugi.</p></div>
            </div>
          </div>
        </div>

        <p>Jeżeli rozważasz wspólną instalację z grzejnikami, osobne omówienie znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">czy ogrzewanie podłogowe można podłączyć do grzejników</a>.</p>
      </section>

<section class="rk-gas-section" id="rk-gas-hydraulika" aria-labelledby="rk-gas-s7">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">7</div>
          <div>
            <h2 id="rk-gas-s7">Przepływ, pompa i opory — czy pompa kotła wystarczy?</h2>
            <p>Odpowiedź daje punkt pracy: wymagany całkowity przepływ oraz strata ciśnienia na najbardziej niekorzystnej drodze hydraulicznej.</p>
          </div>
        </div>

        <div class="rk-gas-formula">
          <span class="rk-gas-formula-label">Przepływ objętościowy dla wody</span>
          <div class="rk-gas-equation">V̇ = Q / (1,163 · ΔT)
            <small>V̇ — przepływ w m³/h, Q — przenoszona moc w kW, ΔT — różnica temperatury zasilania i powrotu w kelwinach. Dla 6,3 kW i ΔT = 6 K otrzymujemy około 0,90 m³/h.</small>
          </div>
        </div>

        <p>Przepływy w pętlach równoległych sumują się na magistrali i w pompie. Wysokości podnoszenia nie sumuje się jednak dla wszystkich pętli. Pompa musi pokonać opór wspólnych przewodów oraz najbardziej niekorzystnego obiegu — zazwyczaj pętli o wymagającym zestawieniu długości i przepływu — wraz z rozdzielaczem i armaturą.</p>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Kiedy pompa zintegrowana może wystarczyć?</span>
          <table>
            <thead><tr><th>Sytuacja</th><th>Ocena wstępna</th><th>Co trzeba sprawdzić?</th></tr></thead>
            <tbody>
              <tr><td data-label="Sytuacja"><strong>Jeden rozdzielacz, tylko podłogówka</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-good">często wystarcza</span></td><td data-label="Sprawdzenie">Krzywą pompy przy przepływie całkowitym, opór magistrali, rozdzielacza i pętli krytycznej.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Dwa rozdzielacze na kondygnacjach</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-check">wymaga obliczeń</span></td><td data-label="Sprawdzenie">Podział przepływu, średnice pionów, równoważenie, dostępne ciśnienie i wpływ zaworów strefowych.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Długie magistrale lub duży przepływ</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-check">możliwa dodatkowa pompa</span></td><td data-label="Sprawdzenie">Pełną charakterystykę instalacji i sposób rozdzielenia pomp, aby nie pracowały przeciwko sobie.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Grzejniki i podłogówka</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-check">zwykle osobne obiegi</span></td><td data-label="Sprawdzenie">Temperatury, przepływy, mieszanie, sterowanie oraz potrzebę sprzęgła lub innej separacji.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Większość pętli okresowo zamykana</strong></td><td data-label="Ocena"><span class="rk-gas-status rk-gas-status-no">ryzyko minimum przepływu</span></td><td data-label="Sprawdzenie">Wymagania wymiennika kotła, bypass, strefę referencyjną, pojemność układu i logikę sterowania.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-gas-card-grid">
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Przepływ</div><h4>Sumuj pętle</h4><p>Projektowe nastawy rotametrów tworzą całkowity przepływ wymagany od pompy i magistrali.</p></div>
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Ciśnienie</div><h4>Znajdź obieg krytyczny</h4><p>Do oporu najbardziej wymagającej pętli dodaj odcinki wspólne, rozdzielacz, zawory i pozostałą armaturę.</p></div>
          <div class="rk-gas-card"><div class="rk-gas-card-tag">Punkt pracy</div><h4>Nałóż krzywe</h4><p>Pompa jest właściwa, jeśli w wymaganym punkcie zapewnia przepływ bez nadmiernego hałasu, zużycia prądu i dławienia.</p></div>
        </div>

        <p>Więcej obliczeń zawiera <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>, a budowę i regulację węzła rozwija poradnik <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do podłogówki</a>.</p>

        <div class="rk-gas-warning">
          <p><strong>Druga pompa nie naprawia automatycznie braku przepływu.</strong> Dodana bez rozdzielenia hydraulicznego i wspólnej koncepcji sterowania może zmieniać ciśnienie na kotle, zakłócać regulację i pogorszyć sytuację.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-sterowanie" aria-labelledby="rk-gas-s8">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">8</div>
          <div>
            <h2 id="rk-gas-s8">Jaka temperatura na kotle gazowym przy podłogówce?</h2>
            <p>Nie ma jednej prawidłowej wartości. Temperatura zasilania wynika z obciążenia pomieszczeń, rozstawu rur, oporu podłogi i warunków zewnętrznych.</p>
          </div>
        </div>

        <p>W nowym, dobrze izolowanym domu projektowy parametr może znajdować się w okolicy 30–38°C, ale duże przeszklenia, wysoki opór okładziny albo ograniczona powierzchnia aktywna mogą wymagać więcej. Z kolei w cieplejsze dni regulator pogodowy powinien automatycznie obniżać temperaturę. Stałe ustawienie 40°C przez cały sezon zwykle odbiera instalacji tę możliwość.</p>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Trzy warstwy regulacji</span>
          <table>
            <thead><tr><th>Warstwa</th><th>Zadanie</th><th>Dobra praktyka</th><th>Typowy błąd</th></tr></thead>
            <tbody>
              <tr><td data-label="Warstwa"><strong>Krzywa pogodowa</strong></td><td data-label="Zadanie">Dopasowuje temperaturę zasilania do temperatury zewnętrznej.</td><td data-label="Dobra praktyka">Ustawić możliwie niską krzywą, która utrzymuje komfort bez niedogrzania.</td><td data-label="Błąd">Wysoka stała temperatura i regulowanie wszystkiego termostatami.</td></tr>
              <tr><td data-label="Warstwa"><strong>Regulacja hydrauliczna</strong></td><td data-label="Zadanie">Rozdziela przepływy zgodnie z mocą poszczególnych pętli.</td><td data-label="Dobra praktyka">Wprowadzić nastawy projektowe i potwierdzić temperatury podczas uruchomienia.</td><td data-label="Błąd">Ustawienie wszystkich rotametrów na tę samą wartość.</td></tr>
              <tr><td data-label="Warstwa"><strong>Regulacja pokojowa</strong></td><td data-label="Zadanie">Ogranicza przegrzewanie i obsługuje różne wymagania stref.</td><td data-label="Dobra praktyka">Stosować spokojną logikę uwzględniającą bezwładność podłogi.</td><td data-label="Błąd">Cykliczne zamykanie niemal wszystkich pętli i utrata przepływu przez kocioł.</td></tr>
            </tbody>
          </table>
        </div>

        <h3>Jak stroić krzywą grzewczą?</h3>
        <ol>
          <li>Zacznij od wartości wynikających z projektu ogrzewania podłogowego i ustaw ograniczenie maksymalnej temperatury zasilania.</li>
          <li>Otwórz obiegi, ustaw projektowe przepływy i nie zmieniaj kilku parametrów jednocześnie.</li>
          <li>Jeżeli przy mrozie cały budynek jest niedogrzany, skoryguj nachylenie; jeżeli błąd jest podobny przy każdej pogodzie, zwykle koryguje się przesunięcie.</li>
          <li>Po każdej małej zmianie odczekaj na reakcję bezwładnej podłogi i budynku.</li>
          <li>Dopiero po ustabilizowaniu temperatury oceniaj pracę termostatów i liczbę startów palnika.</li>
        </ol>

        <p>Szczegółowe przykłady znajdziesz w opracowaniach <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza w ogrzewaniu podłogowym</a> oraz <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">sterownik i regulator pogodowy</a>.</p>

        <div class="rk-gas-note">
          <p><strong>Regulator pokojowy nie powinien ratować stale zawyżonej temperatury zasilania.</strong> Najpierw źródło dostarcza właściwy parametr pogodowy, a sterowanie pomieszczeniowe pełni funkcję korekcyjną i ograniczającą.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-armatura" aria-labelledby="rk-gas-s9">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">9</div>
          <div>
            <h2 id="rk-gas-s9">Zawór mieszający, sprzęgło, bufor i druga pompa — kiedy są potrzebne?</h2>
            <p>Każdy z tych elementów rozwiązuje inny problem. Nie należy wpisywać całego zestawu do każdego schematu.</p>
          </div>
        </div>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Macierz decyzji projektowej</span>
          <table>
            <thead><tr><th>Element</th><th>Cały dom na podłogówce</th><th>Układ mieszany</th><th>Rzeczywisty powód zastosowania</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Zawór mieszający</strong></td><td data-label="Tylko podłogówka"><span class="rk-gas-status rk-gas-status-good">zwykle zbędny</span></td><td data-label="Układ mieszany"><span class="rk-gas-status rk-gas-status-check">często potrzebny</span></td><td data-label="Powód">Wytworzenie niższego parametru dla podłogi, gdy inne odbiorniki wymagają wyższego.</td></tr>
              <tr><td data-label="Element"><strong>Druga pompa</strong></td><td data-label="Tylko podłogówka"><span class="rk-gas-status rk-gas-status-check">po obliczeniu</span></td><td data-label="Układ mieszany"><span class="rk-gas-status rk-gas-status-check">często osobne obiegi</span></td><td data-label="Powód">Brak dostępnego ciśnienia pompy źródła lub niezależna cyrkulacja w oddzielonym obiegu.</td></tr>
              <tr><td data-label="Element"><strong>Sprzęgło hydrauliczne</strong></td><td data-label="Tylko podłogówka"><span class="rk-gas-status rk-gas-status-good">nie z automatu</span></td><td data-label="Układ mieszany"><span class="rk-gas-status rk-gas-status-check">zależnie od pomp</span></td><td data-label="Powód">Ograniczenie wzajemnego wpływu kilku obiegów pompowych i zapewnienie przepływu źródła.</td></tr>
              <tr><td data-label="Element"><strong>Bufor</strong></td><td data-label="Tylko podłogówka"><span class="rk-gas-status rk-gas-status-good">zwykle zbędny</span></td><td data-label="Układ mieszany"><span class="rk-gas-status rk-gas-status-check">przypadki szczególne</span></td><td data-label="Powód">Zwiększenie pojemności i czasu pracy, integracja źródeł albo obsługa specyficznej automatyki — po bilansie korzyści i strat.</td></tr>
              <tr><td data-label="Element"><strong>Bypass / obieg referencyjny</strong></td><td data-label="Tylko podłogówka"><span class="rk-gas-status rk-gas-status-check">gdy zamykane są strefy</span></td><td data-label="Układ mieszany"><span class="rk-gas-status rk-gas-status-check">według wymagań</span></td><td data-label="Powód">Zapewnienie minimalnego przepływu wymaganego przez kocioł lub pompę.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Osobne rozwinięcia: <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w podłogówce</a>, <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a> i <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a>.</p>

        <div class="rk-gas-truth">
          <p><strong>Bufor nie naprawi źle dobranej mocy minimalnej.</strong> Może wydłużyć cykl pracy kosztem miejsca, strat postojowych i dodatkowej armatury, ale nie zmienia charakterystyki palnika ani zapotrzebowania budynku.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-elementy" aria-labelledby="rk-gas-s10">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">10</div>
          <div>
            <h2 id="rk-gas-s10">Elementy instalacji, których nie wolno pominąć</h2>
            <p>Efektywność palnika nie zastąpi bezpiecznego przewodu powietrzno-spalinowego, drożnego odpływu kondensatu ani prawidłowej jakości wody instalacyjnej.</p>
          </div>
        </div>

        <div class="rk-gas-check-grid">
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">01</div><div><h4>Instalacja gazowa</h4><p>Rodzaj gazu, wymagane ciśnienie, średnice, próby, wentylacja i uruchomienie muszą być zgodne z projektem, przepisami oraz dokumentacją urządzenia.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">02</div><div><h4>System powietrzno-spalinowy</h4><p>Sprawdza się konfigurację, dopuszczalne długości, spadki, szczelność, odprowadzenie kondensatu oraz wymagania producenta kompletnego systemu.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">03</div><div><h4>Odpływ kondensatu</h4><p>Przewód musi być odporny, drożny, ułożony ze spadkiem i zabezpieczony zgodnie z wymaganiami kotła oraz lokalnymi zasadami odprowadzania ścieków.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">04</div><div><h4>Naczynie wzbiorcze</h4><p>Pojemność i ciśnienie wstępne weryfikuje się dla pojemności instalacji, temperatur oraz dopuszczalnych ciśnień — wyposażenie kotła nie zawsze obsłuży duży zład.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">05</div><div><h4>Zabezpieczenia i armatura</h4><p>Zawór bezpieczeństwa, manometr, odpowietrzenie, zawory odcinające i możliwość obsługi powinny tworzyć spójny, dostępny serwisowo układ.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">06</div><div><h4>Filtracja i separacja</h4><p>Zanieczyszczenia magnetyczne, produkty korozji i powietrze mogą uszkadzać wymiennik oraz pompę. Dobór uwzględnia przepływ i dopuszczalny spadek ciśnienia.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">07</div><div><h4>Jakość wody</h4><p>Napełnienie, płukanie, uzdatnienie i ograniczenie kolejnych dolewek powinny spełniać wymagania zastosowanych materiałów oraz urządzenia.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">08</div><div><h4>Izolacja przewodów</h4><p>Niezaizolowana magistrala oddaje ciepło po drodze, zmienia temperaturę docierającą do rozdzielacza i utrudnia późniejszą ocenę parametrów.</p></div></div>
        </div>

        <p>Dobór elementów odpowiedzialnych za czystość układu rozwija opracowanie <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">separator zanieczyszczeń i powietrza</a>, natomiast obliczenia pojemności opisuje artykuł <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynie wzbiorcze w instalacji grzewczej</a>.</p>

        <div class="rk-gas-warning">
          <p><strong>Spadek ciśnienia nie jest sygnałem do regularnego dolewania wody.</strong> Powtarzający się ubytek wymaga diagnozy szczelności, naczynia wzbiorczego, zaworu bezpieczeństwa i odpowietrzania. Każda dolewka wprowadza tlen oraz składniki mineralne.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-uruchomienie" aria-labelledby="rk-gas-s11">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">11</div>
          <div>
            <h2 id="rk-gas-s11">Pierwsze uruchomienie i nastawy kotła gazowego</h2>
            <p>Uruchomienie powinno zakończyć się zapisaniem parametrów, a nie tylko stwierdzeniem, że palnik się włączył i podłoga jest ciepła.</p>
          </div>
        </div>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Protokół nastaw, które warto zachować</span>
          <table>
            <thead><tr><th>Pozycja</th><th>Co zapisać?</th><th>Po co?</th></tr></thead>
            <tbody>
              <tr><td data-label="Pozycja"><strong>Parametry spalania</strong></td><td data-label="Zapis">Wyniki kontroli wykonanej przez uprawnionego serwisanta.</td><td data-label="Cel">Potwierdzenie prawidłowego spalania, dopływu powietrza i odprowadzania spalin.</td></tr>
              <tr><td data-label="Pozycja"><strong>Moc maksymalna CO</strong></td><td data-label="Zapis">Ustawiony limit mocy grzewczej.</td><td data-label="Cel">Ograniczenie gwałtownego grzania małej instalacji przez kocioł dobrany pod CWU.</td></tr>
              <tr><td data-label="Pozycja"><strong>Moc minimalna</strong></td><td data-label="Zapis">Wartość katalogową i obserwowane zachowanie palnika.</td><td data-label="Cel">Ocena częstotliwości startów przy częściowym obciążeniu.</td></tr>
              <tr><td data-label="Pozycja"><strong>Krzywa grzewcza</strong></td><td data-label="Zapis">Nachylenie, przesunięcie, limit zasilania i granicę ogrzewania.</td><td data-label="Cel">Możliwość świadomej korekty bez powrotu do przypadkowych ustawień.</td></tr>
              <tr><td data-label="Pozycja"><strong>Pompa</strong></td><td data-label="Zapis">Tryb regulacji, ograniczenie wydajności i ewentualne wybiegi.</td><td data-label="Cel">Powiązanie pracy pompy z przepływem i oporami instalacji.</td></tr>
              <tr><td data-label="Pozycja"><strong>Rozdzielacz</strong></td><td data-label="Zapis">Nastawę każdej pętli, temperaturę zasilania i powrotu.</td><td data-label="Cel">Punkt odniesienia do późniejszej diagnostyki i regulacji.</td></tr>
              <tr><td data-label="Pozycja"><strong>Automatyka stref</strong></td><td data-label="Zapis">Logikę żądania ciepła, opóźnienia i stan obiegu referencyjnego.</td><td data-label="Cel">Uniknięcie pracy kotła przy zamkniętej instalacji.</td></tr>
              <tr><td data-label="Pozycja"><strong>Ciśnienie układu</strong></td><td data-label="Zapis">Ciśnienie zimne i po rozgrzaniu oraz nastawę naczynia.</td><td data-label="Cel">Wczesne wykrycie problemu z pojemnością lub przeponą.</td></tr>
            </tbody>
          </table>
        </div>

        <h3>Kolejność uruchomienia podłogówki</h3>
        <ol>
          <li>Potwierdź szczelność, wypłukanie, napełnienie i odpowietrzenie każdego obiegu.</li>
          <li>Otwórz pętle i ustaw przepływy wynikające z projektu.</li>
          <li>Sprawdź całkowity przepływ oraz różnicę temperatury zasilania i powrotu.</li>
          <li>Ustaw limit mocy CO, krzywą pogodową i maksymalną temperaturę zasilania.</li>
          <li>Sprawdź zachowanie przy otwartych obiegach, a następnie przy działaniu automatyki strefowej.</li>
          <li>Po ustabilizowaniu budynku koryguj jedną nastawę naraz i zapisuj wynik.</li>
        </ol>

        <div class="rk-gas-note">
          <p>Przegląd i serwis kotła należy wykonywać z częstotliwością wynikającą z prawa, instrukcji urządzenia i warunków gwarancji. Czynności gazowe, kontrola szczelności oraz analiza spalania należą do odpowiednio wykwalifikowanych osób.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-2026" aria-labelledby="rk-gas-s12">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">12</div>
          <div>
            <h2 id="rk-gas-s12">Czy kocioł gazowy ma sens w 2026 roku?</h2>
            <p>Odpowiedź zależy od konkretnego budynku, kosztu przyłącza, istniejącej infrastruktury, rocznego zużycia i ryzyka regulacyjnego — nie od jednego rankingu źródeł.</p>
          </div>
        </div>

        <p>Kocioł gazowy może być racjonalny w modernizowanym budynku z istniejącym przyłączem, przewodem spalinowym i instalacją niskotemperaturową, szczególnie gdy koszt przebudowy zasilania elektrycznego lub montażu innego źródła jest wysoki. W nowym, bardzo energooszczędnym domu roczne zużycie może być małe, ale wtedy większe znaczenie zyskują opłaty stałe, koszt przyłącza, serwis i wieloletni kierunek polityki energetycznej.</p>

        <div class="rk-gas-formula">
          <span class="rk-gas-formula-label">Uczciwy model rocznego kosztu</span>
          <div class="rk-gas-equation">K<sub>rok</sub> ≈ (E<sub>użytk</sub> / η<sub>sezon</sub>) · c<sub>gazu</sub> + opłaty stałe + serwis
            <small>Do analizy inwestycyjnej należy dodać koszt urządzenia, przyłącza, komina, instalacji, finansowania i przewidywanych wymian. Cena jednej kWh w wybranym miesiącu nie jest pełnym kosztem systemu.</small>
          </div>
        </div>

        <div class="rk-gas-table-wrap">
          <span class="rk-gas-table-title">Kiedy decyzja może być racjonalna, a kiedy wymaga szczególnej ostrożności?</span>
          <table>
            <thead><tr><th>Przesłanka</th><th>Znaczenie dla decyzji</th><th>Co policzyć przed zakupem?</th></tr></thead>
            <tbody>
              <tr><td data-label="Przesłanka"><strong>Istniejące przyłącze i komin</strong></td><td data-label="Znaczenie"><span class="rk-gas-status rk-gas-status-good">niższy koszt wejścia</span></td><td data-label="Policz">Stan instalacji, dostosowanie przewodu, opłaty stałe i koszt urządzenia.</td></tr>
              <tr><td data-label="Przesłanka"><strong>Brak gazu przy działce</strong></td><td data-label="Znaczenie"><span class="rk-gas-status rk-gas-status-check">duży koszt dodatkowy</span></td><td data-label="Policz">Warunki przyłączenia, termin, trasę, instalację wewnętrzną i rozwiązania alternatywne.</td></tr>
              <tr><td data-label="Przesłanka"><strong>Bardzo małe zapotrzebowanie domu</strong></td><td data-label="Znaczenie"><span class="rk-gas-status rk-gas-status-check">ważna moc minimalna</span></td><td data-label="Policz">Taktowanie, opłaty stałe w stosunku do zużycia i przyszły koszt wymiany źródła.</td></tr>
              <tr><td data-label="Przesłanka"><strong>Modernizacja etapowa</strong></td><td data-label="Znaczenie"><span class="rk-gas-status rk-gas-status-check">potrzebna mapa docelowa</span></td><td data-label="Policz">Temperatury po termomodernizacji, możliwość pracy hybrydowej i docelowe obciążenie.</td></tr>
              <tr><td data-label="Przesłanka"><strong>Nowy budynek</strong></td><td data-label="Znaczenie"><span class="rk-gas-status rk-gas-status-no">sprawdź kierunek regulacji</span></td><td data-label="Policz">Charakterystykę energetyczną, wymagania lokalne, dostępność paliwa oraz alternatywy w całym cyklu życia.</td></tr>
            </tbody>
          </table>
        </div>

        <h3>Co faktycznie zmieniła dyrektywa EPBD?</h3>
        <p>Zmieniona dyrektywa w sprawie charakterystyki energetycznej budynków weszła w życie 28 maja 2024 roku. Od 1 stycznia 2025 roku państwa członkowskie nie powinny udzielać zachęt finansowych na instalowanie samodzielnych kotłów zasilanych paliwami kopalnymi, z przewidzianymi wyjątkami dla części wcześniej wybranych inwestycji. Dokument wskazuje również kierunek stopniowego wycofywania paliw kopalnych z ogrzewania, z perspektywą całkowitego wycofania kotłów na paliwa kopalne do 2040 roku w krajowych planach.</p>

        <p><strong>Nie jest to jednak automatyczny, powszechny zakaz używania każdego istniejącego kotła gazowego w Polsce w 2026 roku.</strong> Konkretne obowiązki dla inwestora wynikają z wdrożenia unijnych przepisów do prawa krajowego, rodzaju budynku i aktualnych warunków technicznych. Dlatego artykuł nie powinien ani straszyć natychmiastowym zakazem, ani ignorować kierunku zmian.</p>

        <div class="rk-gas-warning">
          <p>Opłacalność należy liczyć w kilku scenariuszach cen paliwa i na okres odpowiadający żywotności inwestycji. Nie ma technicznej podstawy, aby dziś zagwarantować konkretny koszt gazu, czas zwrotu lub przewagę nad każdym innym źródłem w całym okresie eksploatacji.</p>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-bledy" aria-labelledby="rk-gas-s13">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">13</div>
          <div>
            <h2 id="rk-gas-s13">10 błędów przy łączeniu kotła gazowego z podłogówką</h2>
            <p>Większość problemów nie wynika z samego paliwa, lecz z błędnego doboru, schematu lub uruchomienia.</p>
          </div>
        </div>

        <div class="rk-gas-check-grid">
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">01</div><div><h4>Dobór kotła wyłącznie po metrażu</h4><p>Powierzchnia nie opisuje izolacji, wentylacji, strefy klimatycznej ani zysków. Potrzebne jest obciążenie cieplne.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">02</div><div><h4>Ignorowanie mocy minimalnej</h4><p>Duża modulacja marketingowa nie pomaga, jeśli najniższa realna moc nadal przekracza odbiór budynku.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">03</div><div><h4>Dodawanie mocy CO i CWU</h4><p>Priorytet CWU oznacza zwykle dwa osobne warunki pracy, a nie jednoczesne sumowanie wartości.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">04</div><div><h4>Mieszacz w każdym schemacie</h4><p>W całkowicie niskotemperaturowym układzie może niepotrzebnie komplikować hydraulikę i podnosić parametr źródła.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">05</div><div><h4>Druga pompa bez rozdzielenia</h4><p>Dwie pompy mogą wzajemnie zmieniać swoje punkty pracy i zakłócać przepływ przez wymiennik kotła.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">06</div><div><h4>Stałe 40–45°C przez sezon</h4><p>Brak obniżania pogodowego zwiększa straty, przegrzewa pomieszczenia i wymusza zamykanie stref.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">07</div><div><h4>Jednakowe przepływy wszystkich pętli</h4><p>Każdy obieg przenosi inną moc i ma inny opór, dlatego nastawy powinny wynikać z projektu.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">08</div><div><h4>Zamykanie całego odbioru ciepła</h4><p>Automatyka strefowa bez zapewnienia minimum przepływu może generować błędy i krótkie cykle pracy.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">09</div><div><h4>Regularne dolewanie wody</h4><p>Maskuje usterkę i wprowadza do instalacji tlen oraz minerały, przyspieszając korozję i odkładanie osadów.</p></div></div>
          <div class="rk-gas-check"><div class="rk-gas-check-no" aria-hidden="true">10</div><div><h4>Brak protokołu uruchomienia</h4><p>Bez zapisanych nastaw nie wiadomo, co zmieniono i dlaczego instalacja po sezonie zachowuje się inaczej.</p></div></div>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-faq" aria-labelledby="rk-gas-s14">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">14</div>
          <div>
            <h2 id="rk-gas-s14">FAQ — kocioł gazowy do ogrzewania podłogowego</h2>
            <p>Krótkie odpowiedzi na pytania najczęściej zadawane przed zakupem i uruchomieniem instalacji.</p>
          </div>
        </div>

        <div class="rk-gas-faq">
          <details id="rk-gas-faq-1"><summary>Czy kocioł gazowy kondensacyjny nadaje się do podłogówki?</summary><div class="rk-gas-faq-answer"><p>Tak. Niska temperatura zasilania i powrotu sprzyja kondensacji, a modulowany palnik może dopasować moc do zmiennego zapotrzebowania. Warunkiem jest prawidłowy dobór mocy minimalnej, przepływu, sterowania i hydrauliki.</p></div></details>
          <details id="rk-gas-faq-2"><summary>Jaka moc kotła gazowego do domu 100, 150 albo 200 m²?</summary><div class="rk-gas-faq-answer"><p>Nie można jej poprawnie określić wyłącznie z powierzchni. Dwa domy o tym samym metrażu mogą mieć kilkukrotnie różne obciążenie cieplne. Moc na CO dobiera się z obliczeń strat, a moc dla CWU sprawdza osobno.</p></div></details>
          <details id="rk-gas-faq-3"><summary>Czy kocioł 24 kW jest za duży do domu potrzebującego 6 kW?</summary><div class="rk-gas-faq-answer"><p>Nie musi być, jeśli 24 kW jest potrzebne do CWU, moc CO można ograniczyć, a kocioł ma odpowiednio niską moc minimalną. W ogrzewaniu ważniejsze od samego maksimum są dolna granica modulacji i stabilność przy małym odbiorze.</p></div></details>
          <details id="rk-gas-faq-4"><summary>Jaka moc minimalna kotła gazowego jest dobra do podłogówki?</summary><div class="rk-gas-faq-answer"><p>Im mniejsze obciążenie budynku, tym ważniejsza jest niska moc minimalna. Nie ma jednej granicy dla każdego domu. Należy porównać ją z obciążeniem przejściowym, liczbą otwartych stref, pojemnością wodną i sposobem sterowania.</p></div></details>
          <details id="rk-gas-faq-5"><summary>Czy przy kotle gazowym potrzebny jest zawór mieszający?</summary><div class="rk-gas-faq-answer"><p>Nie zawsze. Jeżeli cały budynek jest ogrzewany podłogowo i kocioł potrafi bezpośrednio podać wymaganą niską temperaturę, mieszacz jest zazwyczaj zbędny. Jest potrzebny głównie wtedy, gdy jednocześnie występują obiegi o różnych temperaturach.</p></div></details>
          <details id="rk-gas-faq-6"><summary>Czy pompa w kotle obsłuży rozdzielacz podłogówki?</summary><div class="rk-gas-faq-answer"><p>Może obsłużyć, jeśli przy projektowym całkowitym przepływie zapewnia ciśnienie potrzebne do pokonania magistrali, rozdzielacza, armatury i obiegu krytycznego. Odpowiedź wymaga porównania charakterystyki pompy z obliczonym punktem pracy.</p></div></details>
          <details id="rk-gas-faq-7"><summary>Czy do kotła gazowego potrzebne jest sprzęgło hydrauliczne?</summary><div class="rk-gas-faq-answer"><p>Nie z definicji. Sprzęgło stosuje się, gdy trzeba rozdzielić obiegi pompowe, zapewnić wymagany przepływ przez źródło lub ograniczyć wzajemny wpływ obiegów. W prostym układzie z jednym rozdzielaczem może być niepotrzebne.</p></div></details>
          <details id="rk-gas-faq-8"><summary>Czy kocioł gazowy potrzebuje bufora do podłogówki?</summary><div class="rk-gas-faq-answer"><p>Zwykle nie. Sama podłoga i woda w instalacji mają znaczną bezwładność. Bufor może być uzasadniony w szczególnych układach, lecz nie powinien zastępować doboru mocy minimalnej, prawidłowej regulacji ani zapewnienia przepływu.</p></div></details>
          <details id="rk-gas-faq-9"><summary>Jaka temperatura zasilania jest właściwa dla podłogówki?</summary><div class="rk-gas-faq-answer"><p>Taka, która przy projektowym przepływie i rozstawie rur pokrywa obciążenie pomieszczeń bez przekroczenia temperatury powierzchni. W nowych domach często jest to około 30–38°C w warunkach projektowych, ale nie jest to uniwersalna norma.</p></div></details>
          <details id="rk-gas-faq-10"><summary>Dlaczego kocioł gazowy często się włącza i wyłącza?</summary><div class="rk-gas-faq-answer"><p>Najczęstsze przyczyny to zbyt wysoka moc minimalna, zawyżona temperatura zasilania, mały odbiór ciepła po zamknięciu stref, niewystarczający przepływ, mała pojemność aktywnego obiegu lub niewłaściwe nastawy regulatora.</p></div></details>
          <details id="rk-gas-faq-11"><summary>Czy niska temperatura powrotu szkodzi kotłowi kondensacyjnemu?</summary><div class="rk-gas-faq-answer"><p>W prawidłowo zaprojektowanym kotle kondensacyjnym niski powrót jest korzystny, ponieważ wspiera odzysk ciepła ze skraplania pary wodnej. Kondensat musi być jednak prawidłowo odprowadzony, a urządzenie eksploatowane zgodnie z dokumentacją.</p></div></details>
          <details id="rk-gas-faq-12"><summary>Czy od 2026 roku nie wolno montować kotłów gazowych?</summary><div class="rk-gas-faq-answer"><p>Nie istnieje jeden powszechny zakaz obejmujący każdą instalację i każdy istniejący budynek w 2026 roku. Unijne przepisy kończą zachęty dla samodzielnych kotłów na paliwa kopalne i wyznaczają kierunek odchodzenia od nich, a szczegóły zależą od wdrożenia krajowego i rodzaju inwestycji.</p></div></details>
        </div>
      </section>

<section class="rk-gas-section" id="rk-gas-podsumowanie" aria-labelledby="rk-gas-s15">
        <div class="rk-gas-section-head">
          <div class="rk-gas-section-no">15</div>
          <div>
            <h2 id="rk-gas-s15">Podsumowanie: dobierz kocioł do najzimniejszego i najcieplejszego dnia sezonu</h2>
            <p>Moc maksymalna ma pokryć warunek projektowy i CWU, ale moc minimalna decyduje o zachowaniu instalacji przez większą część roku.</p>
          </div>
        </div>

        <p><strong>Kocioł gazowy do ogrzewania podłogowego</strong> może stworzyć prosty i efektywny układ, jeśli źródło pracuje bezpośrednio na niskim parametrze, pompa zapewnia obliczony przepływ, a palnik moduluje odpowiednio nisko. Zawór mieszający, dodatkowa pompa, sprzęgło i bufor są narzędziami do rozwiązania konkretnych problemów — nie obowiązkowym kompletem.</p>

        <p>Dobór zaczyna się od obciążenia cieplnego pomieszczeń i budynku. Następnie ustala się temperaturę podłogi, rozstaw rur, przepływy i opory. Dopiero na tej podstawie porównuje się moc minimalną i maksymalną kotła, charakterystykę jego pompy, minimum przepływu, automatykę oraz osobny warunek przygotowania ciepłej wody.</p>

        <div class="rk-gas-truth">
          <p><strong>Jednozdaniowy werdykt:</strong> nie pytaj wyłącznie „ile kilowatów ma kocioł?”, lecz „jak nisko moduluje, jaki przepływ zapewnia i czy potrafi bezpośrednio pracować na parametrze wynikającym z projektu podłogi?”.</p>
        </div>

        <div class="rk-gas-sources" aria-label="Źródła i podstawa opracowania">
          <strong>Źródła i podstawa regulacyjna opracowania</strong>
          Aktualny kierunek polityki budynkowej: <a href="https://energy.ec.europa.eu/topics/energy-efficiency/energy-efficient-buildings/energy-performance-buildings-directive_en" target="_blank" rel="noopener nofollow">Komisja Europejska — Energy Performance of Buildings Directive</a>; tekst prawny: <a href="https://eur-lex.europa.eu/legal-content/PL/TXT/HTML/?uri=OJ:L_202401275" target="_blank" rel="noopener nofollow">Dyrektywa Parlamentu Europejskiego i Rady (UE) 2024/1275</a>; wymagania ekoprojektu dla ogrzewaczy pomieszczeń: <a href="https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX:32013R0813" target="_blank" rel="noopener nofollow">Rozporządzenie Komisji (UE) nr 813/2013</a>. Obliczenia cieplne i hydrauliczne w artykule mają charakter edukacyjny i wymagają weryfikacji dla konkretnego budynku oraz urządzenia.
        </div>

        <aside class="rk-gas-cta" aria-labelledby="rk-gas-cta-title">
          <div class="rk-gas-cta-copy">
            <span class="rk-gas-eyebrow" style="color:#7cebf4">Jedno źródło danych dla wykonawcy i serwisu</span>
            <h2 id="rk-gas-cta-title">Potrzebujesz temperatur, przepływów i nastaw wynikających z obliczeń?</h2>
            <p>Projekt określa obciążenie pomieszczeń, przebieg i długości pętli, projektową temperaturę zasilania i powrotu, przepływy, opory hydrauliczne, nastawy rozdzielacza oraz wymagania stawiane źródłu ciepła.</p>
          </div>
          <div class="rk-gas-cta-bar">
            <a class="rk-gas-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego →</a>
            <small class="rk-gas-cta-note">Odnośnik prowadzi do usługi Projekt-Ogrzewania.pl należącej do autora opracowania.</small>
          </div>
        </aside>
      </section>

<section class="rk-gas-author" aria-labelledby="rk-gas-author-title">
        <input type="radio" name="rk-gas-author-tabs" id="rk-gas-author-about" checked>
        <input type="radio" name="rk-gas-author-tabs" id="rk-gas-author-exp">
        <input type="radio" name="rk-gas-author-tabs" id="rk-gas-author-sites">

        <div class="rk-gas-author-head">
          <div><h2 id="rk-gas-author-title">Autor opracowania</h2><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-gas-author-mark">E-E-A-T • HVAC</div>
        </div>

        <div class="rk-gas-author-layout">
          <div class="rk-gas-author-side">
            <div class="rk-gas-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista systemów HVAC" width="500" height="500" loading="lazy" decoding="async"></div>
            <div class="rk-gas-author-name">Robert Kucharski</div>
            <div class="rk-gas-author-role">CEO portalu<br>Specjalista systemów HVAC i ogrzewania podłogowego</div>
          </div>

          <div class="rk-gas-author-main">
            <blockquote class="rk-gas-author-quote"><p>„Dobry kocioł nie powinien walczyć z instalacją. Jego moc minimalna, pompa i automatyka muszą pasować do przepływów oraz temperatur zapisanych w projekcie — inaczej nawet markowe urządzenie będzie tylko poprawnie zamontowanym źródłem problemów.”</p></blockquote>

            <div class="rk-gas-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-gas-author-tab" for="rk-gas-author-about">O autorze</label>
              <label class="rk-gas-author-tab" for="rk-gas-author-exp">Doświadczenie</label>
              <label class="rk-gas-author-tab" for="rk-gas-author-sites">Portale</label>
            </div>

            <div class="rk-gas-author-panel rk-gas-author-panel-about">
              <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydrauliki instalacji. W opracowaniach łączę parametry źródła ciepła, charakterystykę podłogi, przepływy i automatykę w jeden możliwy do wykonania układ.</p>
            </div>
            <div class="rk-gas-author-panel rk-gas-author-panel-exp">
              <p>Przygotowuję dokumentacje techniczne dla nowych i modernizowanych budynków, analizuję współpracę podłogówki z kotłami gazowymi oraz pompami ciepła, dobieram przepływy, opory, rozdzielacze i pompy. Publikuję materiały pomagające inwestorom odróżnić wymóg obliczeniowy od wykonawczego przyzwyczajenia.</p>
            </div>
            <div class="rk-gas-author-panel rk-gas-author-panel-sites">
              <p>Jestem właścicielem trzech serwisów branżowych. Informację podaję transparentnie, aby czytelnik znał autorstwo publikacji i kontekst linkowania.</p>
              <div class="rk-gas-site-links">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#article",
      "url": "https://projekt-ogrzewania.pl/kociol-gazowy/",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/"
      },
      "headline": "Kocioł gazowy do ogrzewania podłogowego – dobór mocy, modulacja, schemat i ustawienia",
      "alternativeHeadline": "Jaki kocioł gazowy do podłogówki? Moc minimalna, hydraulika, CWU i sterowanie pogodowe",
      "description": "Kocioł gazowy do ogrzewania podłogowego: dobór mocy, modulacja, przepływ, schemat hydrauliczny, sterowanie pogodowe, CWU i typowe błędy.",
      "datePublished": "2026-01-04T14:02:32+00:00",
      "dateModified": "2026-08-25T19:00:00+02:00",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "image": {
        "@type": "ImageObject",
        "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#primaryimage",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Kociol-gazowy.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Kociol-gazowy.webp",
        "width": 945,
        "height": 945,
        "caption": "Kocioł gazowy do ogrzewania podłogowego"
      },
      "thumbnailUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Kociol-gazowy.webp",
      "articleSection": [
        "Kocioł gazowy",
        "Ogrzewanie podłogowe",
        "Instalacje grzewcze",
        "Projektowanie instalacji",
        "Poradnik inwestora"
      ],
      "keywords": "kocioł gazowy do ogrzewania podłogowego, jaki kocioł gazowy do podłogówki, moc minimalna kotła gazowego, kocioł kondensacyjny a podłogówka, schemat kotła gazowego z podłogówką, temperatura kotła przy ogrzewaniu podłogowym, zawór mieszający, sprzęgło hydrauliczne, sterowanie pogodowe, krzywa grzewcza, CWU",
      "about": [
        {
          "@type": "Thing",
          "name": "Kocioł gazowy kondensacyjny"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Hydraulika instalacji grzewczej"
        },
        {
          "@type": "Thing",
          "name": "Sterowanie pogodowe"
        }
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#laboratorium"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#faq"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#howto"
        }
      ],
      "citation": [
        "https://energy.ec.europa.eu/topics/energy-efficiency/energy-efficient-buildings/energy-performance-buildings-directive_en",
        "https://eur-lex.europa.eu/legal-content/PL/TXT/HTML/?uri=OJ:L_202401275",
        "https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX:32013R0813"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#laboratorium",
      "name": "Laboratorium kotła gazowego z ogrzewaniem podłogowym",
      "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-laboratorium",
      "description": "Interaktywny model pokazujący zależność między projektowym obciążeniem cieplnym, mocą minimalną kotła, przepływem instalacji, temperaturą powrotu i mocą chwilową dla CWU.",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#article"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#howto",
      "name": "Jak dobrać kocioł gazowy do ogrzewania podłogowego",
      "description": "Kolejność sprawdzenia obciążenia cieplnego, modulacji, CWU, hydrauliki i sterowania przed wyborem kotła gazowego.",
      "inLanguage": "pl-PL",
      "totalTime": "PT30M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz projektowe obciążenie cieplne",
          "text": "Wyznacz straty ciepła budynku i poszczególnych pomieszczeń dla projektowych warunków zewnętrznych.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-dobor"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Porównaj moc minimalną kotła z częściowym obciążeniem",
          "text": "Sprawdź, czy kocioł potrafi stabilnie pracować przy zapotrzebowaniu występującym w cieplejszej części sezonu.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-laboratorium"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Sprawdź wymagania ciepłej wody użytkowej",
          "text": "Określ strumień, temperaturę i jednoczesność poboru oraz wybierz układ przepływowy albo zasobnikowy.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-cwu"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Oblicz przepływ i opory instalacji",
          "text": "Porównaj wymagany całkowity przepływ i opór obiegu krytycznego z charakterystyką pompy kotłowej.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-hydraulika"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Wybierz właściwy schemat hydrauliczny",
          "text": "Zastosuj obieg bezpośredni dla jednego parametru lub zaprojektuj mieszanie i rozdzielenie dla obiegów o różnych temperaturach.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-schematy"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Ustaw i zaprotokołuj automatykę",
          "text": "Zapisz limit mocy CO, krzywą grzewczą, tryb pompy, nastawy rozdzielacza i zachowanie automatyki strefowej.",
          "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-uruchomienie"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#kryteria-doboru",
      "name": "Kryteria doboru kotła gazowego do ogrzewania podłogowego",
      "numberOfItems": 7,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projektowe obciążenie cieplne",
          "item": {
            "@type": "Thing",
            "name": "Projektowe obciążenie cieplne",
            "description": "Moc potrzebna do ogrzania budynku w projektowych warunkach zewnętrznych."
          }
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Minimalna moc grzewcza",
          "item": {
            "@type": "Thing",
            "name": "Minimalna moc grzewcza kotła",
            "description": "Najniższa stabilna moc palnika porównywana z częściowym obciążeniem budynku."
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Zakres modulacji",
          "item": {
            "@type": "Thing",
            "name": "Zakres modulacji palnika",
            "description": "Zakres pomiędzy minimalną a maksymalną mocą kotła w trybie centralnego ogrzewania."
          }
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Wymagania CWU",
          "item": {
            "@type": "Thing",
            "name": "Wymagania ciepłej wody użytkowej",
            "description": "Strumień, temperatura, jednoczesność poboru oraz wybór układu przepływowego lub zasobnikowego."
          }
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "Charakterystyka pompy kotłowej",
          "item": {
            "@type": "Thing",
            "name": "Charakterystyka pompy kotłowej",
            "description": "Dostępne ciśnienie pompy przy całkowitym projektowym przepływie instalacji."
          }
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Minimalny przepływ kotła",
          "item": {
            "@type": "Thing",
            "name": "Minimalny przepływ przez kocioł",
            "description": "Wymagany przepływ zachowywany również podczas działania automatyki strefowej."
          }
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "Sterowanie pogodowe",
          "item": {
            "@type": "Thing",
            "name": "Sterowanie pogodowe i krzywa grzewcza",
            "description": "Regulacja temperatury zasilania zależnie od warunków zewnętrznych i charakterystyki budynku."
          }
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#faq",
      "url": "https://projekt-ogrzewania.pl/kociol-gazowy/#rk-gas-faq",
      "name": "FAQ — kocioł gazowy do ogrzewania podłogowego",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/kociol-gazowy/#article"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy kocioł gazowy kondensacyjny nadaje się do podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak. Niska temperatura zasilania i powrotu sprzyja kondensacji, a modulowany palnik może dopasować moc do zmiennego zapotrzebowania. Warunkiem jest prawidłowy dobór mocy minimalnej, przepływu, sterowania i hydrauliki."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka moc kotła gazowego do domu 100, 150 albo 200 m²?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można jej poprawnie określić wyłącznie z powierzchni. Dwa domy o tym samym metrażu mogą mieć kilkukrotnie różne obciążenie cieplne. Moc na CO dobiera się z obliczeń strat, a moc dla CWU sprawdza osobno."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kocioł 24 kW jest za duży do domu potrzebującego 6 kW?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie musi być, jeśli 24 kW jest potrzebne do CWU, moc CO można ograniczyć, a kocioł ma odpowiednio niską moc minimalną. W ogrzewaniu ważniejsze od samego maksimum są dolna granica modulacji i stabilność przy małym odbiorze."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka moc minimalna kotła gazowego jest dobra do podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Im mniejsze obciążenie budynku, tym ważniejsza jest niska moc minimalna. Nie ma jednej granicy dla każdego domu. Należy porównać ją z obciążeniem przejściowym, liczbą otwartych stref, pojemnością wodną i sposobem sterowania."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy kotle gazowym potrzebny jest zawór mieszający?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Jeżeli cały budynek jest ogrzewany podłogowo i kocioł potrafi bezpośrednio podać wymaganą niską temperaturę, mieszacz jest zazwyczaj zbędny. Jest potrzebny głównie wtedy, gdy jednocześnie występują obiegi o różnych temperaturach."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pompa w kotle obsłuży rozdzielacz podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Może obsłużyć, jeśli przy projektowym całkowitym przepływie zapewnia ciśnienie potrzebne do pokonania magistrali, rozdzielacza, armatury i obiegu krytycznego. Odpowiedź wymaga porównania charakterystyki pompy z obliczonym punktem pracy."
          }
        },
        {
          "@type": "Question",
          "name": "Czy do kotła gazowego potrzebne jest sprzęgło hydrauliczne?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie z definicji. Sprzęgło stosuje się, gdy trzeba rozdzielić obiegi pompowe, zapewnić wymagany przepływ przez źródło lub ograniczyć wzajemny wpływ obiegów. W prostym układzie z jednym rozdzielaczem może być niepotrzebne."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kocioł gazowy potrzebuje bufora do podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zwykle nie. Sama podłoga i woda w instalacji mają znaczną bezwładność. Bufor może być uzasadniony w szczególnych układach, lecz nie powinien zastępować doboru mocy minimalnej, prawidłowej regulacji ani zapewnienia przepływu."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka temperatura zasilania jest właściwa dla podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Taka, która przy projektowym przepływie i rozstawie rur pokrywa obciążenie pomieszczeń bez przekroczenia temperatury powierzchni. W nowych domach często jest to około 30–38°C w warunkach projektowych, ale nie jest to uniwersalna norma."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego kocioł gazowy często się włącza i wyłącza?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najczęstsze przyczyny to zbyt wysoka moc minimalna, zawyżona temperatura zasilania, mały odbiór ciepła po zamknięciu stref, niewystarczający przepływ, mała pojemność aktywnego obiegu lub niewłaściwe nastawy regulatora."
          }
        },
        {
          "@type": "Question",
          "name": "Czy niska temperatura powrotu szkodzi kotłowi kondensacyjnemu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W prawidłowo zaprojektowanym kotle kondensacyjnym niski powrót jest korzystny, ponieważ wspiera odzysk ciepła ze skraplania pary wodnej. Kondensat musi być jednak prawidłowo odprowadzony, a urządzenie eksploatowane zgodnie z dokumentacją."
          }
        },
        {
          "@type": "Question",
          "name": "Czy od 2026 roku nie wolno montować kotłów gazowych?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie istnieje jeden powszechny zakaz obejmujący każdą instalację i każdy istniejący budynek w 2026 roku. Unijne przepisy kończą zachęty dla samodzielnych kotłów na paliwa kopalne i wyznaczają kierunek odchodzenia od nich, a szczegóły zależą od wdrożenia krajowego i rodzaju inwestycji."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "caption": "Robert Kucharski – projektant instalacji sanitarnych i specjalista systemów HVAC"
      },
      "jobTitle": "CEO portalu i specjalista systemów HVAC oraz ogrzewania podłogowego",
      "description": "Projektant instalacji sanitarnych specjalizujący się w wodnym ogrzewaniu podłogowym, obliczeniach obciążenia cieplnego, hydraulice instalacji i współpracy systemów grzewczych ze źródłami ciepła. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "HVAC",
        "wodne ogrzewanie podłogowe",
        "kotły gazowe kondensacyjne",
        "projektowanie instalacji sanitarnych",
        "hydraulika instalacji grzewczych",
        "projektowe obciążenie cieplne",
        "sterowanie pogodowe",
        "efektywność energetyczna budynków"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    }
  ]
}
</script>

<script>
  (function (window, document) {
    "use strict";

    function byId(id) {
      return document.getElementById(id);
    }

    function numberValue(id) {
      var element = byId(id);
      return element ? parseFloat(element.value) : 0;
    }

    function clamp(value, minimum, maximum) {
      return Math.min(Math.max(value, minimum), maximum);
    }

    function polishNumber(value, digits, trimZero) {
      if (!isFinite(value)) return "—";
      var text = Number(value).toFixed(digits).replace(".", ",");
      if (trimZero) text = text.replace(/,0+$/, "");
      return text;
    }

    function temperatureText(value) {
      return polishNumber(value, 0, true).replace("-", "−") + "°C";
    }

    function setText(id, value) {
      var element = byId(id);
      if (element) element.textContent = value;
    }

    function setAttribute(id, name, value) {
      var element = byId(id);
      if (element) element.setAttribute(name, value);
    }

    function updateControlLabels() {
      var dhwFlow = numberValue("rk-gas-dhw-flow");
      setText("rk-gas-qdesign-out", polishNumber(numberValue("rk-gas-qdesign"), 1, false) + " kW");
      setText("rk-gas-tdesign-out", temperatureText(numberValue("rk-gas-tdesign")));
      setText("rk-gas-tcut-out", temperatureText(numberValue("rk-gas-tcut")));
      setText("rk-gas-tout-out", temperatureText(numberValue("rk-gas-tout")));
      setText("rk-gas-pmin-out", polishNumber(numberValue("rk-gas-pmin"), 1, false) + " kW");
      setText("rk-gas-ts-out", temperatureText(numberValue("rk-gas-ts")));
      setText("rk-gas-tr-out", temperatureText(numberValue("rk-gas-tr")));
      setText("rk-gas-dhw-flow-out", polishNumber(dhwFlow, 1, true) + " l/min");
      setText("rk-gas-dhw-cold-out", temperatureText(numberValue("rk-gas-dhw-cold")));
      setText("rk-gas-dhw-hot-out", temperatureText(numberValue("rk-gas-dhw-hot")));
    }

    function updateChart(qDesign, pMin, tDesign, tCut, tOutside, qCurrent) {
      var xLeft = 62;
      var xRight = 625;
      var yTop = 36;
      var yBottom = 272;
      var width = xRight - xLeft;
      var height = yBottom - yTop;
      var yMax = Math.max(qDesign * 1.1, pMin * 1.25, 2);
      var safeSpan = Math.max(tCut - tDesign, 1);

      function xForTemperature(value) {
        return xLeft + ((clamp(value, tDesign, tCut) - tDesign) / safeSpan) * width;
      }

      function yForPower(value) {
        return yBottom - (clamp(value, 0, yMax) / yMax) * height;
      }

      var demandStartY = yForPower(qDesign);
      var minimumY = yForPower(pMin);
      var currentX = xForTemperature(tOutside);
      var currentY = yForPower(qCurrent);
      var demandPath = "M" + xLeft.toFixed(1) + " " + demandStartY.toFixed(1) + " L" + xRight.toFixed(1) + " " + yBottom.toFixed(1);
      var riskPath = "";

      if (pMin > 0 ? pMin < qDesign : false) {
        var intersectionX = xLeft + (1 - pMin / qDesign) * width;
        riskPath = "M" + intersectionX.toFixed(1) + " " + minimumY.toFixed(1) + " L" + xRight.toFixed(1) + " " + yBottom.toFixed(1) + " L" + xRight.toFixed(1) + " " + minimumY.toFixed(1) + " Z";
      } else if (pMin >= qDesign) {
        riskPath = "M" + xLeft.toFixed(1) + " " + demandStartY.toFixed(1) + " L" + xRight.toFixed(1) + " " + yBottom.toFixed(1) + " L" + xRight.toFixed(1) + " " + minimumY.toFixed(1) + " L" + xLeft.toFixed(1) + " " + minimumY.toFixed(1) + " Z";
      }

      setAttribute("rk-gas-demand-path", "d", demandPath);
      setAttribute("rk-gas-risk-area", "d", riskPath);
      setAttribute("rk-gas-min-line", "y1", minimumY.toFixed(1));
      setAttribute("rk-gas-min-line", "y2", minimumY.toFixed(1));
      setAttribute("rk-gas-current-line", "x1", currentX.toFixed(1));
      setAttribute("rk-gas-current-line", "x2", currentX.toFixed(1));
      setAttribute("rk-gas-current-dot", "cx", currentX.toFixed(1));
      setAttribute("rk-gas-current-dot", "cy", currentY.toFixed(1));

      setText("rk-gas-y4", polishNumber(yMax, 1, true));
      setText("rk-gas-y3", polishNumber(yMax * 0.75, 1, true));
      setText("rk-gas-y2", polishNumber(yMax * 0.5, 1, true));
      setText("rk-gas-y1", polishNumber(yMax * 0.25, 1, true));
      setText("rk-gas-x0", polishNumber(tDesign, 0, true).replace("-", "−"));
      setText("rk-gas-x1", polishNumber((tDesign + tCut) / 2, 0, true).replace("-", "−"));
      setText("rk-gas-x2", polishNumber(tCut, 0, true).replace("-", "−"));
    }

    function updateLaboratory() {
      var qDesign = numberValue("rk-gas-qdesign");
      var tDesign = numberValue("rk-gas-tdesign");
      var tCut = numberValue("rk-gas-tcut");
      var tOutside = numberValue("rk-gas-tout");
      var pMin = numberValue("rk-gas-pmin");
      var tSupply = numberValue("rk-gas-ts");
      var tReturn = numberValue("rk-gas-tr");
      var dhwFlow = numberValue("rk-gas-dhw-flow");
      var dhwCold = numberValue("rk-gas-dhw-cold");
      var dhwHot = numberValue("rk-gas-dhw-hot");
      var span = Math.max(tCut - tDesign, 1);
      var qCurrent;
      var deltaT = tSupply - tReturn;
      var heatingFlow = deltaT > 0 ? qDesign / (1.163 * deltaT) : NaN;
      var dhwDelta = Math.max(dhwHot - dhwCold, 0);
      var dhwPower = 0.06978 * dhwFlow * dhwDelta;
      var ratio;
      var condensation;
      var verdict = byId("rk-gas-lab-verdict");
      var state = "good";
      var verdictText;

      if (tOutside <= tDesign) {
        qCurrent = qDesign;
      } else if (tOutside >= tCut) {
        qCurrent = 0;
      } else {
        qCurrent = qDesign * (tCut - tOutside) / span;
      }

      ratio = pMin > 0 ? qCurrent / pMin : NaN;

      if (tReturn <= 35) {
        condensation = "bardzo dobre";
      } else if (tReturn <= 45) {
        condensation = "korzystne";
      } else if (tReturn <= 55) {
        condensation = "przejściowe";
      } else {
        condensation = "ograniczone";
      }

      setText("rk-gas-kpi-load", polishNumber(qCurrent, 2, false) + " kW");
      setText("rk-gas-kpi-flow", isFinite(heatingFlow) ? polishNumber(heatingFlow, 2, false) + " m³/h" : "błędne ΔT");
      setText("rk-gas-kpi-ratio", isFinite(ratio) ? polishNumber(ratio, 2, false) + "×" : "—");
      setText("rk-gas-kpi-cond", condensation);
      setText("rk-gas-kpi-dhw", polishNumber(dhwPower, 1, false) + " kW");

      if (deltaT <= 0) {
        state = "danger";
        verdictText = "Temperatura powrotu nie może być równa ani wyższa od temperatury zasilania w tym modelu grzewczym. Popraw Tz/Tp, aby obliczyć przepływ.";
      } else if (pMin >= qDesign) {
        state = "danger";
        verdictText = "Minimalna moc kotła jest równa lub większa od projektowej mocy całego budynku. Ryzyko krótkich cykli wystąpi niemal przez cały sezon i wymaga ponownego doboru urządzenia lub całej koncepcji.";
      } else if (qCurrent === 0) {
        state = "good";
        verdictText = "Aktualna temperatura osiągnęła ustawioną granicę ogrzewania. Model przyjmuje brak zapotrzebowania na CO; kocioł może pracować wyłącznie na potrzeby CWU.";
      } else if (qCurrent < pMin * 0.85) {
        state = "danger";
        verdictText = "Obciążenie budynku spadło wyraźnie poniżej mocy minimalnej kotła. Palnik nie może utrzymać pracy ciągłej; częstotliwość cykli zależy od pojemności wodnej, histerezy, przepływu i liczby otwartych stref.";
      } else if (qCurrent < pMin * 1.2) {
        state = "warning";
        verdictText = "Kocioł pracuje blisko dolnej granicy modulacji. Warto sprawdzić liczbę startów palnika, temperaturę zasilania, odbiór ciepła i zachowanie instalacji po zamknięciu części stref.";
      } else {
        state = "good";
        verdictText = "Przy zadanych parametrach aktualne obciążenie jest większe od mocy minimalnej. Kocioł ma warunki do modulacji, o ile zachowany jest wymagany przepływ i odbiór ciepła.";
      }

      if (verdict) {
        verdict.setAttribute("data-state", state);
        verdict.textContent = verdictText;
      }

      updateChart(qDesign, pMin, tDesign, tCut, tOutside, qCurrent);
      updateControlLabels();
    }

    function initializeGasGuide() {
      var root = byId("rk-gas-guide");
      var laboratory;
      var ranges;
      var navLinks;
      var progress;
      var ticking = false;
      var i;

      if (!root) return false;
      if (root.getAttribute("data-rk-gas-initialized") === "true") return true;
      root.setAttribute("data-rk-gas-initialized", "true");

      laboratory = root.querySelector("[data-rk-gas-lab]");
      ranges = laboratory ? laboratory.querySelectorAll('input[type="range"]') : [];
      for (i = 0; i < ranges.length; i += 1) {
        ranges[i].addEventListener("input", updateLaboratory, false);
        ranges[i].addEventListener("change", updateLaboratory, false);
      }
      updateLaboratory();

      navLinks = root.querySelectorAll('a[href^="#"]');
      for (i = 0; i < navLinks.length; i += 1) {
        navLinks[i].addEventListener("click", function (event) {
          var href = this.getAttribute("href");
          var target = href ? root.querySelector(href) : null;
          if (!target) return;
          event.preventDefault();
          target.scrollIntoView({
            behavior: (typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : false) ? "auto" : "smooth",
            block: "start"
          });
        }, false);
      }

      progress = root.querySelector(".rk-gas-progress");
      function updateProgress() {
        var rect = root.getBoundingClientRect();
        var viewport = window.innerHeight || document.documentElement.clientHeight;
        var total = Math.max(root.offsetHeight - viewport, 1);
        var passed = Math.min(Math.max(-rect.top, 0), total);
        var value = Math.min(100, Math.max(0, passed / total * 100));
        if (progress) progress.style.width = value.toFixed(2) + "%";
        ticking = false;
      }

      function requestProgress() {
        if (ticking) return;
        if (window.requestAnimationFrame) {
          window.requestAnimationFrame(updateProgress);
        } else {
          window.setTimeout(updateProgress, 16);
        }
        ticking = true;
      }

      window.addEventListener("scroll", requestProgress, { passive: true });
      window.addEventListener("resize", requestProgress, { passive: true });
      updateProgress();
      return true;
    }

    window.rkGasGuideInit = initializeGasGuide;

    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", initializeGasGuide, false);
    } else {
      initializeGasGuide();
    }

    window.addEventListener("load", initializeGasGuide, false);
    window.setTimeout(initializeGasGuide, 250);
    window.setTimeout(initializeGasGuide, 1200);
    window.setTimeout(initializeGasGuide, 3000);

    if (window.MutationObserver ? !byId("rk-gas-guide") : false) {
      var observer = new MutationObserver(function () {
        if (initializeGasGuide()) observer.disconnect();
      });
      observer.observe(document.documentElement, { childList: true, subtree: true });
      window.setTimeout(function () { observer.disconnect(); }, 10000);
    }
  }(window, document));
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">Kocioł gazowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
