<?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 Automatyka domowa - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/automatyka-domowa/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/automatyka-domowa/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 10 Sep 2026 18:08:23 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Automatyka domowa - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/automatyka-domowa/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Czujnik podłogowy w ogrzewaniu podłogowym – dobór, montaż i diagnostyka.</title>
		<link>https://projekt-ogrzewania.pl/czujnik-podlogowy/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 23 Jan 2026 09:23:24 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Czujniki]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Termostaty]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[czujnik ntc]]></category>
		<category><![CDATA[czujnik podłogowy]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<category><![CDATA[termostat]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3277</guid>

					<description><![CDATA[<p>Czujnik podłogowy to niewielki element instalacji, który w praktyce decyduje o komforcie, bezpieczeństwie i kosztach eksploatacji ogrzewania podłogowego. Choć często traktowany jako dodatek do termostatu, w rzeczywistości pełni rolę „zmysłu” całego systemu – dostarczając kluczowych informacji o temperaturze posadzki. W artykule wyjaśniamy, jak działa czujnik podłogowy, jakie są jego typy, gdzie powinien być montowany oraz dlaczego jego brak może prowadzić do przegrzewania podłogi, dyskomfortu użytkowników i strat energii. To praktyczny przewodnik zarówno dla inwestorów, jak i projektantów instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">Czujnik podłogowy w ogrzewaniu podłogowym – dobór, montaż i diagnostyka.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-floor-sensor-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d69a16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #ce443b;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    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.75;
    overflow-wrap: break-word;
  }
  #rk-floor-sensor-guide,
  #rk-floor-sensor-guide * { box-sizing: border-box; }
  #rk-floor-sensor-guide img,
  #rk-floor-sensor-guide svg { max-width: 100%; }
  #rk-floor-sensor-guide button,
  #rk-floor-sensor-guide input,
  #rk-floor-sensor-guide select,
  #rk-floor-sensor-guide label,
  #rk-floor-sensor-guide summary,
  #rk-floor-sensor-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-floor-sensor-guide button,
  #rk-floor-sensor-guide input,
  #rk-floor-sensor-guide select { max-width: 100%; }
  #rk-floor-sensor-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-floor-sensor-guide a:hover,
  #rk-floor-sensor-guide a:focus-visible { color: var(--rk-red); }
  #rk-floor-sensor-guide p,
  #rk-floor-sensor-guide ul,
  #rk-floor-sensor-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-floor-sensor-guide h2,
  #rk-floor-sensor-guide h3,
  #rk-floor-sensor-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  #rk-floor-sensor-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-floor-sensor-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-floor-sensor-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-floor-sensor-guide strong { color: var(--rk-dark); }
  #rk-floor-sensor-guide [hidden] { display: none !important; }

  #rk-floor-sensor-guide .rk-fs-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-floor-sensor-guide .rk-fs-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-floor-sensor-guide .rk-fs-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-floor-sensor-guide .rk-fs-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-floor-sensor-guide .rk-fs-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1050px;
    margin: 0 0 21px;
    color: var(--rk-white);
    font-size: clamp(2.25rem, 7.1vw, 5rem);
    font-weight: 950;
    letter-spacing: -.065em;
    line-height: .98;
  }
  #rk-floor-sensor-guide .rk-fs-hero-title span { color: #67e7f5; }
  #rk-floor-sensor-guide .rk-fs-lead {
    position: relative;
    z-index: 1;
    max-width: 960px;
    margin-bottom: 24px;
    color: #e2f2f5;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
  }
  #rk-floor-sensor-guide .rk-fs-hero-tags,
  #rk-floor-sensor-guide .rk-fs-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }
  #rk-floor-sensor-guide .rk-fs-hero-tag {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, .07);
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.2;
  }
  #rk-floor-sensor-guide .rk-fs-byline {
    margin-top: 27px;
    color: #cae0e6;
    font-size: .68rem;
    font-weight: 760;
  }
  #rk-floor-sensor-guide .rk-fs-byline strong { color: var(--rk-white); }

  #rk-floor-sensor-guide .rk-fs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 22px clamp(18px, 4vw, 45px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    overflow: visible;
  }
  #rk-floor-sensor-guide .rk-fs-nav-label {
    display: flex;
    align-items: center;
    padding: 7px 5px;
    color: var(--rk-dark);
    font-size: .61rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 39px;
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .65rem;
    font-weight: 880;
    line-height: 1.2;
    text-decoration: none;
    white-space: normal;
  }
  #rk-floor-sensor-guide .rk-fs-nav a:hover,
  #rk-floor-sensor-guide .rk-fs-nav a:focus-visible { color: var(--rk-white); background: var(--rk-blue); }

  #rk-floor-sensor-guide .rk-fs-main { padding: 0 clamp(22px, 5.2vw, 65px) 58px; }
  #rk-floor-sensor-guide .rk-fs-section { padding: 62px 0 10px; scroll-margin-top: 24px; }
  #rk-floor-sensor-guide .rk-fs-section + .rk-fs-section { border-top: 1px solid var(--rk-line); }
  #rk-floor-sensor-guide .rk-fs-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .63rem;
    font-weight: 950;
    letter-spacing: .085em;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-intro { max-width: 960px; color: var(--rk-text); font-size: 1.04rem; }
  #rk-floor-sensor-guide .rk-fs-grid-2,
  #rk-floor-sensor-guide .rk-fs-grid-3,
  #rk-floor-sensor-guide .rk-fs-grid-4 { display: grid; gap: 16px; margin-top: 24px; }
  #rk-floor-sensor-guide .rk-fs-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-floor-sensor-guide .rk-fs-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-floor-sensor-guide .rk-fs-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-floor-sensor-guide .rk-fs-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }
  #rk-floor-sensor-guide .rk-fs-card.is-soft { background: var(--rk-soft); }
  #rk-floor-sensor-guide .rk-fs-card.is-cyan { border-color: #b9ebf1; background: var(--rk-cyan-soft); }
  #rk-floor-sensor-guide .rk-fs-card.is-orange { border-color: #ffd0c1; background: var(--rk-orange-soft); }
  #rk-floor-sensor-guide .rk-fs-card.is-green { border-color: #bde4d8; background: var(--rk-green-soft); }
  #rk-floor-sensor-guide .rk-fs-card.is-yellow { border-color: #ecd995; background: var(--rk-yellow-soft); }
  #rk-floor-sensor-guide .rk-fs-card.is-purple { border-color: #d6d0ff; background: var(--rk-purple-soft); }
  #rk-floor-sensor-guide .rk-fs-card p:last-child,
  #rk-floor-sensor-guide .rk-fs-card ul:last-child { margin-bottom: 0; }
  #rk-floor-sensor-guide .rk-fs-number {
    display: grid;
    place-items: center;
    width: 39px;
    height: 39px;
    margin-bottom: 14px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-weight: 950;
  }
  #rk-floor-sensor-guide .rk-fs-list { padding-left: 1.15em; }
  #rk-floor-sensor-guide .rk-fs-list li { margin-bottom: .42em; }
  #rk-floor-sensor-guide .rk-fs-checklist { display: grid; gap: 10px; padding: 0; list-style: none; }
  #rk-floor-sensor-guide .rk-fs-checklist li {
    position: relative;
    padding: 13px 14px 13px 44px;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    background: var(--rk-white);
  }
  #rk-floor-sensor-guide .rk-fs-checklist li::before {
    position: absolute;
    top: 13px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: .7rem;
    font-weight: 950;
  }
  #rk-floor-sensor-guide .rk-fs-note,
  #rk-floor-sensor-guide .rk-fs-warning,
  #rk-floor-sensor-guide .rk-fs-success {
    margin: 22px 0;
    padding: 17px 19px;
    border-radius: 13px;
    color: var(--rk-ink);
  }
  #rk-floor-sensor-guide .rk-fs-note { border-left: 5px solid var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-floor-sensor-guide .rk-fs-warning { border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-floor-sensor-guide .rk-fs-success { border-left: 5px solid var(--rk-green); background: var(--rk-green-soft); }
  #rk-floor-sensor-guide .rk-fs-note p:last-child,
  #rk-floor-sensor-guide .rk-fs-warning p:last-child,
  #rk-floor-sensor-guide .rk-fs-success p:last-child { margin-bottom: 0; color: var(--rk-ink); }
  #rk-floor-sensor-guide .rk-fs-equation {
    margin: 22px 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(.88rem, 2vw, 1.06rem);
    font-weight: 850;
    text-align: center;
    overflow-wrap: anywhere;
  }
  #rk-floor-sensor-guide .rk-fs-table-wrap {
    margin-top: 24px;
    overflow-x: auto;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
  }
  #rk-floor-sensor-guide .rk-fs-table { width: 100%; border-collapse: collapse; background: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-table th,
  #rk-floor-sensor-guide .rk-fs-table td {
    padding: 15px 16px;
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }
  #rk-floor-sensor-guide .rk-fs-table th { color: var(--rk-white); background: var(--rk-dark); font-size: .69rem; line-height: 1.35; }
  #rk-floor-sensor-guide .rk-fs-table td { color: var(--rk-text); font-size: .76rem; line-height: 1.55; }
  #rk-floor-sensor-guide .rk-fs-table tr:last-child td { border-bottom: 0; }
  #rk-floor-sensor-guide .rk-fs-badge {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: .58rem;
    font-weight: 900;
  }

  #rk-floor-sensor-guide .rk-fs-tool {
    margin-top: 25px;
    overflow: hidden;
    border-radius: 22px;
    color: var(--rk-white);
    background: var(--rk-dark);
    box-shadow: 0 22px 55px rgba(16, 37, 54, .2);
  }
  #rk-floor-sensor-guide .rk-fs-tool-head {
    padding: clamp(24px, 5vw, 40px);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    background: linear-gradient(120deg, #12364a, #18566a);
  }
  #rk-floor-sensor-guide .rk-fs-tool-head h3 { margin-bottom: 7px; color: var(--rk-white); font-size: clamp(1.4rem, 3.2vw, 2.15rem); }
  #rk-floor-sensor-guide .rk-fs-tool-head p { max-width: 900px; margin: 0; color: #d8eef3; font-size: .79rem; }
  #rk-floor-sensor-guide .rk-fs-tool-body { padding: clamp(18px, 4vw, 32px); }
  #rk-floor-sensor-guide .rk-fs-tool-step {
    margin-bottom: 22px;
    padding: clamp(17px, 3vw, 25px);
    border: 1px solid #355c6c;
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-floor-sensor-guide .rk-fs-tool-step:last-child { margin-bottom: 0; }
  #rk-floor-sensor-guide .rk-fs-tool-step-title { display: flex; gap: 12px; align-items: center; margin-bottom: 17px; }
  #rk-floor-sensor-guide .rk-fs-tool-step-title b {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-floor-sensor-guide .rk-fs-tool-step-title h4 { margin: 0; color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  #rk-floor-sensor-guide .rk-fs-fields.rk-fs-fields-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-floor-sensor-guide .rk-fs-field { min-width: 0; }
  #rk-floor-sensor-guide .rk-fs-field label {
    display: block;
    margin-bottom: 6px;
    color: #e8f4f7;
    font-size: .63rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-floor-sensor-guide .rk-fs-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 37px 10px 12px;
    border: 1px solid #c6d6dc;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-weight: 700;
  }
  #rk-floor-sensor-guide .rk-fs-field small {
    display: block;
    margin-top: 5px;
    color: #9fc2ce;
    font-size: .55rem;
    line-height: 1.35;
  }
  #rk-floor-sensor-guide .rk-fs-tool-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    margin-top: 18px;
    padding: 13px 20px;
    border: 0;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    cursor: pointer;
    font-weight: 930;
  }
  #rk-floor-sensor-guide .rk-fs-tool-button:hover,
  #rk-floor-sensor-guide .rk-fs-tool-button:focus-visible { background: #72e9f5; }
  #rk-floor-sensor-guide .rk-fs-status {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 18px;
    padding: 17px;
    border: 1px solid #466877;
    border-radius: 13px;
    background: #17384a;
  }
  #rk-floor-sensor-guide .rk-fs-status-icon {
    display: grid;
    flex: 0 0 43px;
    place-items: center;
    width: 43px;
    height: 43px;
    border-radius: 50%;
    color: var(--rk-dark);
    background: #ffd568;
    font-weight: 950;
  }
  #rk-floor-sensor-guide .rk-fs-status h4 { margin: 0 0 2px; color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-status p { margin: 0; color: #cce2e8; font-size: .67rem; line-height: 1.45; }
  #rk-floor-sensor-guide .rk-fs-status.is-good { border-color: #3a8c78; background: #153f3a; }
  #rk-floor-sensor-guide .rk-fs-status.is-watch { border-color: #b28d32; background: #41371e; }
  #rk-floor-sensor-guide .rk-fs-status.is-stop { border-color: #b7544d; background: #4a292b; }
  #rk-floor-sensor-guide .rk-fs-status.is-good .rk-fs-status-icon { background: #64dfbc; }
  #rk-floor-sensor-guide .rk-fs-status.is-stop .rk-fs-status-icon { color: var(--rk-white); background: var(--rk-orange); }
  #rk-floor-sensor-guide .rk-fs-process {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
    margin: 20px 0;
  }
  #rk-floor-sensor-guide .rk-fs-process-node {
    position: relative;
    min-width: 0;
    min-height: 142px;
    padding: 15px 12px;
    border: 1px solid #3f6575;
    border-radius: 14px;
    background: #163447;
  }
  #rk-floor-sensor-guide .rk-fs-process-node:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -18px;
    width: 18px;
    color: var(--rk-cyan);
    content: "→";
    font-size: 1.1rem;
    font-weight: 950;
    text-align: center;
    transform: translateY(-50%);
  }
  #rk-floor-sensor-guide .rk-fs-process-node span {
    display: block;
    margin-bottom: 8px;
    color: #75ddeb;
    font-size: .5rem;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-process-node strong {
    display: block;
    color: var(--rk-white);
    font-size: .7rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  #rk-floor-sensor-guide .rk-fs-process-node small {
    display: block;
    margin-top: 8px;
    color: #afccd5;
    font-size: .54rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
  }
  #rk-floor-sensor-guide .rk-fs-process-node.is-ready { border-color: #3f9e83; box-shadow: inset 0 0 0 1px rgba(100, 223, 188, .13); }
  #rk-floor-sensor-guide .rk-fs-process-node.is-watch { border-color: #c09538; box-shadow: inset 0 0 0 1px rgba(255, 213, 104, .15); }
  #rk-floor-sensor-guide .rk-fs-process-node.is-stop { border-color: #d45d50; box-shadow: inset 0 0 0 1px rgba(255, 106, 61, .18); }
  #rk-floor-sensor-guide .rk-fs-state-key { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
  #rk-floor-sensor-guide .rk-fs-state-key span {
    padding: 6px 10px;
    border: 1px solid #466877;
    border-radius: 999px;
    color: #d9eaf0;
    font-size: .56rem;
    font-weight: 820;
  }
  #rk-floor-sensor-guide .rk-fs-state-key .is-ready { border-color: #3f9e83; }
  #rk-floor-sensor-guide .rk-fs-state-key .is-watch { border-color: #c09538; }
  #rk-floor-sensor-guide .rk-fs-state-key .is-stop { border-color: #d45d50; }

  #rk-floor-sensor-guide .rk-fs-visual {
    margin: 20px 0;
    padding: 18px;
    border: 1px solid #355c6c;
    border-radius: 15px;
    background: #173548;
  }
  #rk-floor-sensor-guide .rk-fs-visual-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 14px;
  }
  #rk-floor-sensor-guide .rk-fs-visual-head h4 { margin: 0; color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-visual-head > span { color: #9fc2ce; font-size: .55rem; font-weight: 850; text-transform: uppercase; }
  #rk-floor-sensor-guide .rk-fs-scene {
    position: relative;
    min-height: 260px;
    overflow: hidden;
    border: 1px solid #4a7180;
    border-radius: 13px;
    background: #d9e5e9;
  }
  #rk-floor-sensor-guide .rk-fs-finish-layer {
    position: absolute;
    inset: 0 0 auto;
    height: 21%;
    border-bottom: 2px solid #79909a;
    color: #193347;
    background: repeating-linear-gradient(90deg, #eef4f5 0, #eef4f5 75px, #d7e3e6 75px, #d7e3e6 78px);
  }
  #rk-floor-sensor-guide .rk-fs-screed-layer {
    position: absolute;
    inset: 21% 0 18%;
    color: #193347;
    background: repeating-linear-gradient(135deg, #c2d0d5 0, #c2d0d5 12px, #bac9ce 12px, #bac9ce 24px);
  }
  #rk-floor-sensor-guide .rk-fs-insulation-layer {
    position: absolute;
    inset: auto 0 0;
    height: 18%;
    border-top: 2px solid #90aeb8;
    color: #193347;
    background: #e9f3f4;
  }
  #rk-floor-sensor-guide .rk-fs-layer-label {
    position: absolute;
    left: 12px;
    z-index: 3;
    padding: 3px 7px;
    border-radius: 6px;
    color: #193347;
    background: rgba(255, 255, 255, .7);
    font-size: .52rem;
    font-weight: 900;
    line-height: 1.2;
  }
  #rk-floor-sensor-guide .rk-fs-label-finish { top: 6%; }
  #rk-floor-sensor-guide .rk-fs-label-screed { top: 31%; }
  #rk-floor-sensor-guide .rk-fs-label-insulation { bottom: 4%; }
  #rk-floor-sensor-guide .rk-fs-pipe {
    position: absolute;
    z-index: 4;
    top: 58%;
    width: 38px;
    height: 38px;
    border: 9px solid #ff6a3d;
    border-radius: 50%;
    background: #69dbe8;
    box-shadow: 0 4px 12px rgba(16, 37, 54, .22);
  }
  #rk-floor-sensor-guide .rk-fs-pipe-a { left: 28%; }
  #rk-floor-sensor-guide .rk-fs-pipe-b { right: 28%; }
  #rk-floor-sensor-guide .rk-fs-conduit {
    position: absolute;
    z-index: 5;
    top: 12%;
    left: 50%;
    width: 8px;
    height: 48%;
    border-radius: 999px;
    background: #61727d;
    transform: translateX(-50%);
  }
  #rk-floor-sensor-guide .rk-fs-sensor {
    position: absolute;
    z-index: 7;
    top: 57%;
    left: 50%;
    width: 24px;
    height: 24px;
    border: 5px solid #ffffff;
    border-radius: 50%;
    background: #078fbe;
    box-shadow: 0 0 0 5px rgba(7, 143, 190, .22);
    transform: translate(-50%, -50%);
    transition: top .25s ease, left .25s ease, background .25s ease;
  }
  #rk-floor-sensor-guide .rk-fs-scene.is-over .rk-fs-conduit { left: 30%; }
  #rk-floor-sensor-guide .rk-fs-scene.is-over .rk-fs-sensor { left: 30%; background: var(--rk-orange); }
  #rk-floor-sensor-guide .rk-fs-scene.is-edge .rk-fs-conduit { left: 10%; }
  #rk-floor-sensor-guide .rk-fs-scene.is-edge .rk-fs-sensor { left: 10%; top: 43%; background: var(--rk-yellow); }
  #rk-floor-sensor-guide .rk-fs-scene.is-unknown .rk-fs-conduit { left: 76%; opacity: .45; }
  #rk-floor-sensor-guide .rk-fs-scene.is-unknown .rk-fs-sensor { left: 76%; top: 47%; background: #7d8790; }
  #rk-floor-sensor-guide .rk-fs-scene.has-no-conduit .rk-fs-conduit { display: none; }
  #rk-floor-sensor-guide .rk-fs-scene.has-no-conduit .rk-fs-sensor { box-shadow: 0 0 0 5px rgba(206, 68, 59, .3); }
  #rk-floor-sensor-guide .rk-fs-scene-caption {
    margin: 13px 0 0;
    color: #d7e9ee;
    font-size: .65rem;
    line-height: 1.5;
  }
  #rk-floor-sensor-guide .rk-fs-scene-caption strong { color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-result-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  #rk-floor-sensor-guide .rk-fs-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #355c6c;
    border-radius: 14px;
    background: #173548;
  }
  #rk-floor-sensor-guide .rk-fs-result-card h4 { color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-output { display: grid; gap: 9px; padding: 0; margin: 0; list-style: none; }
  #rk-floor-sensor-guide .rk-fs-output li {
    position: relative;
    padding: 10px 10px 10px 32px;
    border-radius: 8px;
    color: #d9eaf0;
    background: rgba(255, 255, 255, .045);
    font-size: .63rem;
    line-height: 1.48;
    overflow-wrap: anywhere;
  }
  #rk-floor-sensor-guide .rk-fs-output li::before {
    position: absolute;
    top: 9px;
    left: 10px;
    color: var(--rk-cyan);
    content: "•";
    font-size: 1rem;
    font-weight: 950;
  }
  #rk-floor-sensor-guide .rk-fs-output.is-warning li::before { color: #ffd568; content: "!"; }
  #rk-floor-sensor-guide .rk-fs-output.is-order { counter-reset: rk-fs-step; }
  #rk-floor-sensor-guide .rk-fs-output.is-order li { padding-left: 37px; counter-increment: rk-fs-step; }
  #rk-floor-sensor-guide .rk-fs-output.is-order li::before {
    top: 10px;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    content: counter(rk-fs-step);
    font-size: .5rem;
  }
  #rk-floor-sensor-guide .rk-fs-tool-note {
    margin: 18px 0 0;
    padding: 14px 16px;
    border-left: 4px solid #ffd568;
    border-radius: 10px;
    color: #fff0c4;
    background: rgba(214, 154, 22, .13);
    font-size: .66rem;
    line-height: 1.5;
  }
  #rk-floor-sensor-guide .rk-fs-tool-note strong { color: #fff7dd; }

  #rk-floor-sensor-guide .rk-fs-sales-cta {
    margin: 38px 0 2px;
    padding: clamp(25px, 5vw, 42px);
    border-radius: 20px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 10%, rgba(37, 199, 216, .25), transparent 30%),
      linear-gradient(125deg, #102536, #17566a);
  }
  #rk-floor-sensor-guide .rk-fs-sales-cta h3 { margin-bottom: 10px; color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-floor-sensor-guide .rk-fs-sales-cta p { max-width: 930px; color: #d6e9ee; }
  #rk-floor-sensor-guide .rk-fs-cta-limits {
    margin-bottom: 20px;
    padding: 15px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 13px;
    color: #e8f6fa;
    background: rgba(255, 255, 255, .055);
  }
  #rk-floor-sensor-guide .rk-fs-cta-limits strong { color: var(--rk-white); }
  #rk-floor-sensor-guide .rk-fs-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 20px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-orange);
    box-shadow: 0 14px 30px rgba(255, 106, 61, .22);
    font-weight: 930;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-floor-sensor-guide .rk-fs-cta-button:hover,
  #rk-floor-sensor-guide .rk-fs-cta-button:focus-visible { color: var(--rk-white); background: #e9552d; }

  #rk-floor-sensor-guide .rk-fs-faq { display: grid; gap: 11px; }
  #rk-floor-sensor-guide .rk-fs-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-white);
  }
  #rk-floor-sensor-guide .rk-fs-faq summary {
    position: relative;
    padding: 17px 54px 17px 18px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 880;
    list-style: none;
  }
  #rk-floor-sensor-guide .rk-fs-faq summary::-webkit-details-marker { display: none; }
  #rk-floor-sensor-guide .rk-fs-faq summary::after {
    position: absolute;
    top: 50%;
    right: 17px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    content: "+";
    transform: translateY(-50%);
    font-weight: 950;
  }
  #rk-floor-sensor-guide .rk-fs-faq details[open] summary::after { content: "−"; }
  #rk-floor-sensor-guide .rk-fs-faq-answer { padding: 0 18px 17px; color: var(--rk-text); }
  #rk-floor-sensor-guide .rk-fs-faq-answer p { margin: 0; }
  #rk-floor-sensor-guide .rk-fs-sources { display: grid; gap: 11px; }
  #rk-floor-sensor-guide .rk-fs-source {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-soft);
  }
  #rk-floor-sensor-guide .rk-fs-source p { margin: 5px 0 0; color: var(--rk-text); font-size: .75rem; }

  #rk-floor-sensor-guide .rk-fs-author {
    margin-top: 58px;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 21px;
    background: var(--rk-soft);
    scroll-margin-top: 24px;
  }
  #rk-floor-sensor-guide .rk-fs-author > input { position: absolute; opacity: 0; pointer-events: none; }
  #rk-floor-sensor-guide .rk-fs-author-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding: 25px clamp(21px, 4vw, 34px);
    border-bottom: 1px solid var(--rk-line);
  }
  #rk-floor-sensor-guide .rk-fs-author-head h2 { margin-bottom: 5px; font-size: clamp(1.55rem, 3vw, 2.2rem); }
  #rk-floor-sensor-guide .rk-fs-author-head p { margin: 0; color: var(--rk-text); }
  #rk-floor-sensor-guide .rk-fs-author-mark {
    max-width: 420px;
    padding: 9px 12px;
    border-radius: 999px;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .055em;
    text-align: center;
  }
  #rk-floor-sensor-guide .rk-fs-author-layout { display: grid; grid-template-columns: 255px minmax(0, 1fr); }
  #rk-floor-sensor-guide .rk-fs-author-side {
    padding: 29px 24px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }
  #rk-floor-sensor-guide .rk-fs-author-photo {
    width: 154px;
    height: 154px;
    margin: 0 auto 18px;
    overflow: hidden;
    border: 6px solid rgba(255, 255, 255, .17);
    border-radius: 50%;
    background: var(--rk-white);
  }
  #rk-floor-sensor-guide .rk-fs-author-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
  #rk-floor-sensor-guide .rk-fs-author-name { color: var(--rk-white); font-size: 1.02rem; font-weight: 930; }
  #rk-floor-sensor-guide .rk-fs-author-name a { color: var(--rk-white); text-decoration: none; }
  #rk-floor-sensor-guide .rk-fs-author-role { margin-top: 5px; color: #bdd3dc; font-size: .67rem; line-height: 1.5; }
  #rk-floor-sensor-guide .rk-fs-author-social-label {
    margin-top: 22px;
    color: #87a8b5;
    font-size: .56rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-author-social { display: flex; justify-content: center; gap: 9px; margin-top: 10px; }
  #rk-floor-sensor-guide .rk-fs-author-social a {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid #3a6173;
    border-radius: 50%;
    color: #cfe2e8;
  }
  #rk-floor-sensor-guide .rk-fs-author-social a:hover {
    color: var(--rk-white);
    border-color: var(--rk-cyan);
    background: rgba(37, 199, 216, .12);
  }
  #rk-floor-sensor-guide .rk-fs-author-social svg { width: 19px; height: 19px; fill: currentColor; }
  #rk-floor-sensor-guide .rk-fs-author-main { min-width: 0; padding: 29px clamp(20px, 4vw, 38px); }
  #rk-floor-sensor-guide .rk-fs-author-quote {
    position: relative;
    margin: 0 0 21px;
    padding: 19px 20px 19px 61px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-floor-sensor-guide .rk-fs-author-quote::before {
    position: absolute;
    top: 5px;
    left: 18px;
    color: var(--rk-cyan);
    content: "“";
    font-size: 3.2rem;
    font-weight: 950;
    line-height: 1;
  }
  #rk-floor-sensor-guide .rk-fs-author-quote p { margin: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-floor-sensor-guide .rk-fs-author-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
  #rk-floor-sensor-guide .rk-fs-author-tab {
    padding: 8px 14px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e6eff3;
    cursor: pointer;
    font-size: .64rem;
    font-weight: 900;
  }
  #rk-floor-sensor-guide .rk-fs-author-panel { display: none; color: var(--rk-text); }
  #rk-floor-sensor-guide #rk-fs-author-about:checked ~ .rk-fs-author-layout .rk-fs-author-panel-about,
  #rk-floor-sensor-guide #rk-fs-author-exp:checked ~ .rk-fs-author-layout .rk-fs-author-panel-exp,
  #rk-floor-sensor-guide #rk-fs-author-method:checked ~ .rk-fs-author-layout .rk-fs-author-panel-method { display: block; }
  #rk-floor-sensor-guide #rk-fs-author-about:checked ~ .rk-fs-author-layout label[for="rk-fs-author-about"],
  #rk-floor-sensor-guide #rk-fs-author-exp:checked ~ .rk-fs-author-layout label[for="rk-fs-author-exp"],
  #rk-floor-sensor-guide #rk-fs-author-method:checked ~ .rk-fs-author-layout label[for="rk-fs-author-method"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }
  #rk-floor-sensor-guide .rk-fs-mini-label {
    margin-top: 18px;
    color: var(--rk-muted);
    font-size: .57rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-floor-sensor-guide .rk-fs-portals { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
  #rk-floor-sensor-guide .rk-fs-portals a {
    padding: 7px 11px;
    border-radius: 999px;
    background: var(--rk-white);
    font-size: .62rem;
    text-decoration: none;
  }

  @media (max-width: 1050px) {
    #rk-floor-sensor-guide .rk-fs-process { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    #rk-floor-sensor-guide .rk-fs-process-node:not(:last-child)::after { display: none; }
  }
  @media (max-width: 980px) {
    #rk-floor-sensor-guide .rk-fs-fields,
    #rk-floor-sensor-guide .rk-fs-fields.rk-fs-fields-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-floor-sensor-guide .rk-fs-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-floor-sensor-guide .rk-fs-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
  }
  @media (max-width: 760px) {
    #rk-floor-sensor-guide { margin: 18px auto 45px; font-size: 16px; }
    #rk-floor-sensor-guide .rk-fs-shell { border-radius: 17px; }
    #rk-floor-sensor-guide .rk-fs-main { padding-right: 15px; padding-left: 15px; }
    #rk-floor-sensor-guide .rk-fs-hero { padding-right: 21px; padding-left: 21px; }
    #rk-floor-sensor-guide .rk-fs-nav { padding: 17px 14px; }
    #rk-floor-sensor-guide .rk-fs-nav-label { flex-basis: 100%; }
    #rk-floor-sensor-guide .rk-fs-nav a { flex: 1 1 135px; justify-content: center; text-align: center; }
    #rk-floor-sensor-guide .rk-fs-section { padding-top: 48px; }
    #rk-floor-sensor-guide .rk-fs-grid-2,
    #rk-floor-sensor-guide .rk-fs-grid-3,
    #rk-floor-sensor-guide .rk-fs-grid-4,
    #rk-floor-sensor-guide .rk-fs-fields,
    #rk-floor-sensor-guide .rk-fs-fields.rk-fs-fields-4,
    #rk-floor-sensor-guide .rk-fs-process,
    #rk-floor-sensor-guide .rk-fs-result-grid,
    #rk-floor-sensor-guide .rk-fs-author-layout { grid-template-columns: minmax(0, 1fr); }
    #rk-floor-sensor-guide .rk-fs-process-node { min-height: 0; }
    #rk-floor-sensor-guide .rk-fs-tool-body { padding-right: 12px; padding-left: 12px; }
    #rk-floor-sensor-guide .rk-fs-tool-step { padding-right: 13px; padding-left: 13px; }
    #rk-floor-sensor-guide .rk-fs-status,
    #rk-floor-sensor-guide .rk-fs-visual-head { align-items: flex-start; }
    #rk-floor-sensor-guide .rk-fs-visual-head { display: block; }
    #rk-floor-sensor-guide .rk-fs-visual-head > span { display: block; margin-top: 5px; }
    #rk-floor-sensor-guide .rk-fs-scene { min-height: 225px; }
    #rk-floor-sensor-guide .rk-fs-pipe { width: 31px; height: 31px; border-width: 7px; }
    #rk-floor-sensor-guide .rk-fs-pipe-a { left: 25%; }
    #rk-floor-sensor-guide .rk-fs-pipe-b { right: 25%; }
    #rk-floor-sensor-guide .rk-fs-table-wrap { overflow: visible; border: 0; border-radius: 0; }
    #rk-floor-sensor-guide .rk-fs-table,
    #rk-floor-sensor-guide .rk-fs-table tbody,
    #rk-floor-sensor-guide .rk-fs-table tr,
    #rk-floor-sensor-guide .rk-fs-table td { display: block; width: 100%; }
    #rk-floor-sensor-guide .rk-fs-table thead { display: none; }
    #rk-floor-sensor-guide .rk-fs-table tr {
      margin-bottom: 13px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 13px;
      background: var(--rk-white);
    }
    #rk-floor-sensor-guide .rk-fs-table td {
      display: grid;
      grid-template-columns: minmax(92px, 38%) minmax(0, 1fr);
      gap: 12px;
      padding: 12px 13px;
      overflow-wrap: anywhere;
    }
    #rk-floor-sensor-guide .rk-fs-table td::before {
      color: var(--rk-dark);
      content: attr(data-label);
      font-size: .63rem;
      font-weight: 900;
      line-height: 1.4;
    }
    #rk-floor-sensor-guide .rk-fs-author-head { display: block; }
    #rk-floor-sensor-guide .rk-fs-author-mark { display: inline-block; margin-top: 12px; text-align: left; }
    #rk-floor-sensor-guide .rk-fs-author-layout { grid-template-columns: minmax(0, 1fr); }
    #rk-floor-sensor-guide .rk-fs-author-main { padding: 24px 18px; }
    #rk-floor-sensor-guide .rk-fs-author-quote { padding-left: 56px; }
    #rk-floor-sensor-guide .rk-fs-cta-button,
    #rk-floor-sensor-guide .rk-fs-tool-button { width: 100%; text-align: center; }
  }
  @media (max-width: 390px) {
    #rk-floor-sensor-guide .rk-fs-hero-title { font-size: 2.05rem; }
    #rk-floor-sensor-guide .rk-fs-nav a { flex-basis: 122px; padding-right: 9px; padding-left: 9px; }
    #rk-floor-sensor-guide .rk-fs-table td { display: block; padding: 12px 13px; }
    #rk-floor-sensor-guide .rk-fs-table td::before { display: block; margin-bottom: 6px; }
    #rk-floor-sensor-guide .rk-fs-status { display: block; }
    #rk-floor-sensor-guide .rk-fs-status-icon { margin-bottom: 10px; }
    #rk-floor-sensor-guide .rk-fs-layer-label { font-size: .46rem; }
    #rk-floor-sensor-guide .rk-fs-author-side { padding: 25px 18px; }
  }
</style>

<article id="rk-floor-sensor-guide">
  <div class="rk-fs-shell">
    <header class="rk-fs-hero">
      <div class="rk-fs-kicker">Sterowanie podłogówką · aktualizacja 2026</div>
      <div class="rk-fs-hero-title">Czujnik podłogowy: <span>dobór, montaż i diagnostyka</span></div>
      <p class="rk-fs-lead">Czujnik w podłodze nie jest obowiązkowym wyposażeniem każdej pętli. Ma sens wtedy, gdy regulator ma kontrolować albo ograniczać temperaturę posadzki. Wyjaśniamy, jak określić jego funkcję, dobrać charakterystykę do termostatu, zaplanować wymienny montaż i ocenić nieprawidłowy odczyt.</p>
      <div class="rk-fs-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-fs-hero-tag">instalacja wodna i elektryczna</span>
        <span class="rk-fs-hero-tag">NTC i zgodność regulatora</span>
        <span class="rk-fs-hero-tag">peszel i lokalizacja sondy</span>
        <span class="rk-fs-hero-tag">audyt przed wylewką</span>
        <span class="rk-fs-hero-tag">diagnostyka miernikiem</span>
      </div>
      <div class="rk-fs-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 22 minuty</span>
        <span>Aktualizacja techniczna: 8 września 2026 r.</span>
      </div>
    </header>

    <nav class="rk-fs-nav" aria-label="Na skróty — wszystkie rozdziały">
      <span class="rk-fs-nav-label">Na skróty — wszystkie H2</span>
      <a href="#rk-fs-szybka">Szybka odpowiedź</a>
      <a href="#rk-fs-co-mierzy">Co mierzy</a>
      <a href="#rk-fs-kiedy">Kiedy jest potrzebny</a>
      <a href="#rk-fs-czujniki">Wodny a elektryczny</a>
      <a href="#rk-fs-funkcje">Funkcje czujnika</a>
      <a href="#rk-fs-typy">Dobór typu</a>
      <a href="#rk-fs-ntc10k">NTC 10 kΩ</a>
      <a href="#rk-fs-audyt">Interaktywny audyt</a>
      <a href="#rk-fs-miejsce">Miejsce montażu</a>
      <a href="#rk-fs-miedzy-rurami">Między rurami</a>
      <a href="#rk-fs-peszel">Peszel</a>
      <a href="#rk-fs-glebokosc">Głębokość</a>
      <a href="#rk-fs-przewod">Przewód</a>
      <a href="#rk-fs-strefa">Strefa sterowania</a>
      <a href="#rk-fs-wiele-petli">Wiele pętli</a>
      <a href="#rk-fs-okladziny">Okładziny</a>
      <a href="#rk-fs-termostat">Termostat</a>
      <a href="#rk-fs-pogodowka">Pogodówka</a>
      <a href="#rk-fs-diagnostyka">Diagnostyka</a>
      <a href="#rk-fs-pomiar">Pomiar rezystancji</a>
      <a href="#rk-fs-awarie">Objawy awarii</a>
      <a href="#rk-fs-wymiana">Wymiana</a>
      <a href="#rk-fs-bledy">Błędy</a>
      <a href="#rk-fs-checklista">Checklista</a>
      <a href="#rk-fs-faq">FAQ</a>
      <a href="#rk-fs-zrodla">Źródła</a>
      <a href="#rk-fs-autor">Autor</a>
    </nav>

    <div class="rk-fs-main">
      <section class="rk-fs-section" id="rk-fs-szybka">
        <span class="rk-fs-eyebrow">Najważniejszy wniosek</span>
        <h2>Czy czujnik podłogowy jest konieczny?</h2>
        <p class="rk-fs-intro"><strong>Nie w każdej instalacji i nie dla każdej pętli.</strong> Czujnik podłogowy jest potrzebny, gdy regulator ma na podstawie temperatury w konstrukcji podłogi podejmować określoną decyzję: ograniczać maksimum, pilnować minimum, prowadzić regulację według podłogi albo zgłaszać stan diagnostyczny.</p>
        <div class="rk-fs-grid-3">
          <div class="rk-fs-card is-green">
            <h3>Ma wyraźną funkcję</h3>
            <p>Przed montażem wiadomo, jaki parametr kontroluje, z którym wejściem współpracuje i co regulator zrobi po osiągnięciu progu.</p>
          </div>
          <div class="rk-fs-card is-yellow">
            <h3>Wymaga sprawdzenia</h3>
            <p>Sama etykieta „NTC 10k” nie potwierdza zgodności. Trzeba porównać charakterystykę sondy z dokumentacją konkretnego regulatora.</p>
          </div>
          <div class="rk-fs-card is-orange">
            <h3>Nie zastępuje projektu</h3>
            <p>Lokalny pomiar nie dobiera temperatury zasilania, rozstawu rur ani przepływu. Te parametry wynikają z obliczeń cieplnych i hydraulicznych.</p>
          </div>
        </div>
        <div class="rk-fs-note"><p><strong>Najpierw funkcja, później sonda.</strong> Pytanie nie brzmi wyłącznie „jaki czujnik kupić?”, lecz „jaką wielkość ma kontrolować regulator i jaka reakcja ma nastąpić?”.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-co-mierzy">
        <span class="rk-fs-eyebrow">Miejsce pomiaru ma znaczenie</span>
        <h2>Co naprawdę mierzy czujnik temperatury podłogi?</h2>
        <p>Czujnik mierzy temperaturę <strong>w punkcie, w którym znajduje się jego końcówka</strong>. Jeśli sonda jest schowana w rurze osłonowej w jastrychu, odczyt zależy między innymi od odległości od przewodów grzewczych, głębokości, materiału wylewki, lokalnego strumienia ciepła i bezwładności całej konstrukcji.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-cyan">
            <h3>Temperatura sondy</h3>
            <p>To lokalny odczyt elementu pomiarowego. Regulator przelicza zmianę jego rezystancji zgodnie z zapisaną charakterystyką.</p>
          </div>
          <div class="rk-fs-card is-soft">
            <h3>Temperatura powierzchni</h3>
            <p>To temperatura dostępnej dla użytkownika górnej powierzchni okładziny. Nie jest automatycznie równa wskazaniu sondy zatopionej głębiej.</p>
          </div>
        </div>
        <p>Dlatego nie należy interpretować odczytu 27°C z czujnika jako gwarancji, że cała powierzchnia posadzki ma dokładnie 27°C. Zależność między temperaturą w konstrukcji a temperaturą powierzchni trzeba rozpatrywać dla konkretnego przekroju podłogi. Zagadnienie komfortu rozwija osobny poradnik o <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperaturze ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-kiedy">
        <span class="rk-fs-eyebrow">Decyzja funkcjonalna</span>
        <h2>Kiedy czujnik podłogowy jest potrzebny, a kiedy tylko opcjonalny?</h2>
        <div class="rk-fs-table-wrap">
          <table class="rk-fs-table">
            <thead><tr><th>Sytuacja</th><th>Znaczenie czujnika</th><th>Co trzeba ustalić</th></tr></thead>
            <tbody>
              <tr><td data-label="Sytuacja"><strong>Ochrona wrażliwej okładziny</strong></td><td data-label="Znaczenie">Może działać jako ogranicznik temperatury konstrukcji w danej strefie.</td><td data-label="Do ustalenia">Dopuszczalny warunek producenta okładziny i sposób interpretacji odczytu przez regulator.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Łazienka i ciepła podłoga</strong></td><td data-label="Znaczenie">Może utrzymywać zaprogramowane minimum, o ile instalacja ma warunki do dostarczenia ciepła.</td><td data-label="Do ustalenia">Godziny pracy, priorytet temperatury powietrza i ryzyko przegrzewania pomieszczenia.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Elektryczna mata lub kabel</strong></td><td data-label="Znaczenie">Często stanowi podstawowy element regulacji albo ograniczenia temperatury podłogi.</td><td data-label="Do ustalenia">Wymagania systemu, moc jednostkowa i zgodność z termostatem.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Wodna podłogówka sterowana pogodowo</strong></td><td data-label="Znaczenie">Może pełnić funkcję lokalnego limitu lub informacji dodatkowej; nie zastępuje regulacji temperatury wody.</td><td data-label="Do ustalenia">Czy wejście regulatora strefowego obsługuje sondę i co robi po przekroczeniu progu.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Brak określonej funkcji</strong></td><td data-label="Znaczenie">Sam montaż sondy nie poprawi pracy instalacji.</td><td data-label="Do ustalenia">Czy przewidzieć pusty peszel jako rezerwę na przyszłość.</td></tr>
            </tbody>
          </table>
        </div>
        <p>W rozbudowanym układzie decyzja o sondzie powinna być częścią koncepcji <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego ogrzewaniem</a>, a nie dodatkiem kupowanym po wykonaniu wylewki.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-czujniki">
        <span class="rk-fs-eyebrow">Dwa różne zastosowania</span>
        <h2>Czujnik w ogrzewaniu wodnym a czujnik w ogrzewaniu elektrycznym</h2>
        <p>W obu systemach końcówka pomiarowa może wyglądać podobnie, ale jej rola i konsekwencje błędnego montażu są inne.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-cyan">
            <h3>Ogrzewanie wodne</h3>
            <ul class="rk-fs-list">
              <li>ciepło dostarcza woda płynąca rurami;</li>
              <li>temperaturą zasilania może zarządzać źródło i automatyka pogodowa;</li>
              <li>termostat strefowy zwykle steruje siłownikiem na rozdzielaczu;</li>
              <li>sonda może ograniczać lub wspierać regulację lokalnej strefy.</li>
            </ul>
          </div>
          <div class="rk-fs-card is-orange">
            <h3>Ogrzewanie elektryczne</h3>
            <ul class="rk-fs-list">
              <li>ciepło powstaje w macie albo kablu grzejnym;</li>
              <li>czujnik podłogowy częściej jest wymaganym elementem sterowania;</li>
              <li>układ montażu i dopuszczalne obciążenia wynikają z instrukcji systemu;</li>
              <li>obwód elektryczny wymaga właściwych zabezpieczeń i kwalifikacji.</li>
            </ul>
          </div>
        </div>
        <div class="rk-fs-warning"><p><strong>Nie przenoś ustawień w ciemno.</strong> Temperatura zadana stosowana przy macie elektrycznej nie jest automatycznie właściwą granicą dla wodnej podłogówki i odwrotnie.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-funkcje">
        <span class="rk-fs-eyebrow">Cztery podstawowe role</span>
        <h2>Jaką funkcję może pełnić czujnik podłogowy?</h2>
        <div class="rk-fs-grid-4">
          <div class="rk-fs-card is-cyan"><div class="rk-fs-number">1</div><h3>Regulacja według podłogi</h3><p>Regulator włącza i wyłącza ogrzewanie na podstawie odczytu sondy. Temperatura powietrza może być wtedy tylko informacją albo w ogóle nie uczestniczyć w sterowaniu.</p></div>
          <div class="rk-fs-card is-orange"><div class="rk-fs-number">2</div><h3>Ograniczenie maksimum</h3><p>Sonda ogranicza grzanie po osiągnięciu ustawionego progu, nawet jeśli czujnik powietrza nadal zgłasza zapotrzebowanie.</p></div>
          <div class="rk-fs-card is-green"><div class="rk-fs-number">3</div><h3>Utrzymanie minimum</h3><p>Układ może podtrzymywać minimalną temperaturę podłogi, lecz trzeba skontrolować wpływ tej strategii na temperaturę pomieszczenia i zużycie energii.</p></div>
          <div class="rk-fs-card is-purple"><div class="rk-fs-number">4</div><h3>Diagnostyka</h3><p>Odczyt pomaga obserwować reakcję konstrukcji, ale nie mierzy przepływu, temperatury wody ani średniej temperatury całej podłogi.</p></div>
        </div>
        <p>To regulator określa, które tryby są dostępne. Przed wyborem funkcji warto przeczytać przewodnik <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat w ogrzewaniu podłogowym</a> i sprawdzić dokumentację dokładnego modelu.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-typy">
        <span class="rk-fs-eyebrow">Zgodność elektryczna i programowa</span>
        <h2>Jak dobrać typ czujnika do termostatu?</h2>
        <p>Najbezpieczniejszą zasadą jest dobór sondy wskazanej przez producenta regulatora albo elementu o w pełni potwierdzonej zgodności. Ten sam nominalny opór w jednym punkcie nie wystarcza, aby uznać dwa czujniki za zamienne.</p>
        <div class="rk-fs-grid-3">
          <div class="rk-fs-card is-soft"><h3>Rodzaj elementu</h3><p>Sprawdź, czy wejście obsługuje NTC, PTC, czujnik cyfrowy lub inny standard. Nazwy te nie są zamienne.</p></div>
          <div class="rk-fs-card is-soft"><h3>Charakterystyka</h3><p>Porównaj rezystancję nominalną, temperaturę odniesienia, współczynnik B albo pełną tabelę rezystancja–temperatura.</p></div>
          <div class="rk-fs-card is-soft"><h3>Przewód i konfiguracja</h3><p>Zweryfikuj dopuszczalną długość, przekrój, sposób przedłużenia oraz wybór typu sondy w menu regulatora.</p></div>
        </div>
        <p>Termistory są elementami nieliniowymi, a ich zamienność zależy od tolerancji i przebiegu charakterystyki, co opisują również materiały metrologiczne <a href="https://www.nist.gov/pml/sensor-science/thermodynamic-metrology/mercury-thermometer-alternatives/mercury-thermometer-4" target="_blank" rel="nofollow noopener noreferrer">NIST dotyczące termistorów</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-ntc10k">
        <span class="rk-fs-eyebrow">Popularna nazwa, wiele charakterystyk</span>
        <h2>Czujnik podłogowy NTC 10 kΩ — dlaczego samo „10k” nie wystarcza?</h2>
        <p>Oznaczenie NTC 10 kΩ zwykle mówi, że rezystancja nominalna wynosi 10 kΩ w określonej temperaturze odniesienia, często 25°C. Nie mówi jeszcze, jak szybko opór zmienia się poza tym punktem.</p>
        <div class="rk-fs-equation">zgodność = typ elementu + R w temperaturze odniesienia + przebieg charakterystyki + wymagania wejścia</div>
        <div class="rk-fs-table-wrap">
          <table class="rk-fs-table">
            <thead><tr><th>Parametr</th><th>Dlaczego jest ważny</th><th>Gdzie go sprawdzić</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>R25 lub inny punkt odniesienia</strong></td><td data-label="Znaczenie">Potwierdza nominalny opór tylko w jednym punkcie.</td><td data-label="Źródło">Karta sondy i instrukcja wejścia regulatora.</td></tr>
              <tr><td data-label="Parametr"><strong>Współczynnik B / krzywa</strong></td><td data-label="Znaczenie">Określa, jaki opór odpowiada innym temperaturom.</td><td data-label="Źródło">Tabela producenta, równanie lub pełna charakterystyka.</td></tr>
              <tr><td data-label="Parametr"><strong>Tolerancja</strong></td><td data-label="Znaczenie">Wpływa na możliwe odchylenie odczytu nawet dla właściwego typu.</td><td data-label="Źródło">Dokumentacja techniczna sondy.</td></tr>
              <tr><td data-label="Parametr"><strong>Konfiguracja wejścia</strong></td><td data-label="Znaczenie">Niektóre regulatory pozwalają wybrać jedną z kilku krzywych.</td><td data-label="Źródło">Instrukcja i menu konkretnego regulatora.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-fs-warning"><p><strong>Nie używaj uniwersalnej tabeli z internetu do zatwierdzania zamiennika.</strong> Dwie sondy opisane jako NTC 10k mogą dawać podobny odczyt przy 25°C, a inny przy 10°C lub 35°C. Kalibracja termistora może wymagać dopasowania równania Steinharta–Harta do danych konkretnego elementu, co pokazuje <a href="https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=915733" target="_blank" rel="nofollow noopener noreferrer">opracowanie NIST o wzorcowaniu termistorów</a>.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-audyt">
        <span class="rk-fs-eyebrow">Narzędzie decyzyjne</span>
        <h2>Interaktywny audyt czujnika podłogowego</h2>
        <p class="rk-fs-intro">Audyt porządkuje sześć kolejnych decyzji: funkcję sondy, wejście regulatora, charakterystykę, miejsce pomiaru, wymienność i reakcję sterowania. Nie przelicza rezystancji na temperaturę i nie zatwierdza produktu bez jego dokumentacji.</p>

        <div class="rk-fs-tool" id="rk-fs-audit">
          <div class="rk-fs-tool-head">
            <h3>Sprawdź koncepcję przed zamknięciem podłogi</h3>
            <p>Wybierz to, co rzeczywiście wiesz. Odpowiedź „nie wiem” jest lepsza niż przypadkowe potwierdzenie — audyt zamieni brak danych w listę pytań do sprawdzenia.</p>
          </div>
          <div class="rk-fs-tool-body">
            <div class="rk-fs-tool-step">
              <div class="rk-fs-tool-step-title"><b>1</b><h4>Etap i system</h4></div>
              <div class="rk-fs-fields">
                <div class="rk-fs-field"><label for="rk-fs-stage">Na jakim etapie jest instalacja?</label><select id="rk-fs-stage"><option value="planning">Planowanie przed wykonaniem</option><option value="screed">Rury ułożone, przed wylewką</option><option value="existing">Gotowa, użytkowana podłoga</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-system">Rodzaj ogrzewania podłogowego</label><select id="rk-fs-system"><option value="hydronic">Wodne</option><option value="electric">Elektryczne</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-zone">Sterowana przestrzeń</label><select id="rk-fs-zone"><option value="one">Jedno pomieszczenie / strefa</option><option value="multiple">Kilka pomieszczeń w jednej strefie</option></select><small>Jeden czujnik reprezentuje punkt, nie całą kondygnację.</small></div>
              </div>
            </div>

            <div class="rk-fs-tool-step">
              <div class="rk-fs-tool-step-title"><b>2</b><h4>Funkcja i sterowanie</h4></div>
              <div class="rk-fs-fields">
                <div class="rk-fs-field"><label for="rk-fs-role">Oczekiwana funkcja sondy</label><select id="rk-fs-role"><option value="unknown">Jeszcze nie ustalono</option><option value="max">Ograniczenie maksimum</option><option value="min">Utrzymanie minimum</option><option value="floor">Główna regulacja według podłogi</option><option value="diagnostic">Odczyt diagnostyczny</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-control">Tryb regulatora / systemu</label><select id="rk-fs-control"><option value="unknown">Nie wiem</option><option value="air">Według temperatury powietrza</option><option value="mixed">Powietrze + limit podłogi</option><option value="floor">Według temperatury podłogi</option><option value="weather">Sterowanie pogodowe + lokalna strefa</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-loops">Liczba pętli w strefie</label><select id="rk-fs-loops"><option value="one">Jedna pętla</option><option value="multiple">Dwie lub więcej pętli</option></select><small>Sonda jest przypisana do strefy sterowania, a nie do „najdłuższej” pętli.</small></div>
              </div>
            </div>

            <div class="rk-fs-tool-step">
              <div class="rk-fs-tool-step-title"><b>3</b><h4>Zgodność czujnika i regulatora</h4></div>
              <div class="rk-fs-fields">
                <div class="rk-fs-field"><label for="rk-fs-compat">Czy zgodność potwierdza dokumentacja?</label><select id="rk-fs-compat"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, dla tego wejścia i sondy</option><option value="no">Nie / parametry są różne</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-curve">Jak dobrze znasz charakterystykę?</label><select id="rk-fs-curve"><option value="unknown">Brak danych</option><option value="r25">Tylko nominalne R25</option><option value="full">Pełna krzywa lub wskazany model</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-symptom">Objaw w gotowej instalacji</label><select id="rk-fs-symptom"><option value="none">Brak objawów / etap projektu</option><option value="high">Odczyt stale za wysoki</option><option value="low">Odczyt stale za niski</option><option value="error">Błąd, przerwa lub zwarcie</option><option value="intermittent">Odczyt zanika albo skacze</option><option value="noresponse">Podłoga reaguje, odczyt prawie nie</option></select></div>
              </div>
            </div>

            <div class="rk-fs-tool-step">
              <div class="rk-fs-tool-step-title"><b>4</b><h4>Montaż i możliwość wymiany</h4></div>
              <div class="rk-fs-fields rk-fs-fields-4">
                <div class="rk-fs-field"><label for="rk-fs-conduit">Czy sonda jest w osobnej rurze osłonowej?</label><select id="rk-fs-conduit"><option value="unknown">Nie wiem</option><option value="yes">Tak</option><option value="no">Nie, bez osłony</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-replaceable">Czy można ją wysunąć i wsunąć ponownie?</label><select id="rk-fs-replaceable"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, wykonano próbę</option><option value="no">Nie / jest zablokowana</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-placement">Położenie końcówki pomiarowej</label><select id="rk-fs-placement"><option value="unknown">Nieustalone / nieznane</option><option value="between">Między sąsiednimi rurami</option><option value="over">Bezpośrednio nad rurą</option><option value="edge">Przy ścianie lub krawędzi strefy</option></select></div>
                <div class="rk-fs-field"><label for="rk-fs-sealed">Czy koniec peszla od strony podłogi jest zabezpieczony?</label><select id="rk-fs-sealed"><option value="unknown">Nie wiem</option><option value="yes">Tak, przed wnikaniem zaprawy</option><option value="no">Nie / koniec jest otwarty</option></select></div>
              </div>
              <button class="rk-fs-tool-button" type="button" id="rk-fs-run">Przeprowadź audyt czujnika</button>
            </div>

            <div class="rk-fs-tool-step" aria-live="polite">
              <div class="rk-fs-status is-watch" id="rk-fs-status">
                <div class="rk-fs-status-icon" id="rk-fs-status-icon">?</div>
                <div><h4 id="rk-fs-status-title">Uzupełnij informacje i sprawdź koncepcję</h4><p id="rk-fs-status-text">Narzędzie pokaże potwierdzone elementy, ryzyka i właściwą kolejność dalszych działań.</p></div>
              </div>

              <div class="rk-fs-process" aria-label="Sześć etapów audytu">
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-role"><span>Etap 1</span><strong>Funkcja</strong><small id="rk-fs-note-role">Do ustalenia</small></div>
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-input"><span>Etap 2</span><strong>Wejście regulatora</strong><small id="rk-fs-note-input">Do sprawdzenia</small></div>
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-curve"><span>Etap 3</span><strong>Charakterystyka</strong><small id="rk-fs-note-curve">Brak pełnych danych</small></div>
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-place"><span>Etap 4</span><strong>Miejsce pomiaru</strong><small id="rk-fs-note-place">Do ustalenia</small></div>
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-replace"><span>Etap 5</span><strong>Wymienność</strong><small id="rk-fs-note-replace">Do sprawdzenia</small></div>
                <div class="rk-fs-process-node is-watch" id="rk-fs-node-reaction"><span>Etap 6</span><strong>Reakcja sterowania</strong><small id="rk-fs-note-reaction">Do ustalenia</small></div>
              </div>
              <div class="rk-fs-state-key"><span class="is-ready">potwierdzone</span><span class="is-watch">wymaga weryfikacji</span><span class="is-stop">zatrzymaj i popraw</span></div>

              <div class="rk-fs-visual">
                <div class="rk-fs-visual-head"><h4>Koncepcyjny przekrój podłogi</h4><span>Położenie zmienia punkt pomiaru</span></div>
                <div class="rk-fs-scene is-unknown" id="rk-fs-scene" role="img" aria-label="Schemat czujnika w przekroju podłogi">
                  <div class="rk-fs-finish-layer"></div><span class="rk-fs-layer-label rk-fs-label-finish">okładzina</span>
                  <div class="rk-fs-screed-layer"></div><span class="rk-fs-layer-label rk-fs-label-screed">jastrych</span>
                  <div class="rk-fs-insulation-layer"></div><span class="rk-fs-layer-label rk-fs-label-insulation">izolacja</span>
                  <span class="rk-fs-pipe rk-fs-pipe-a" aria-hidden="true"></span><span class="rk-fs-pipe rk-fs-pipe-b" aria-hidden="true"></span>
                  <span class="rk-fs-conduit" aria-hidden="true"></span><span class="rk-fs-sensor" aria-hidden="true"></span>
                </div>
                <p class="rk-fs-scene-caption" id="rk-fs-scene-caption"><strong>Położenie nieustalone.</strong> Schemat nie podaje sztucznej temperatury. Pokazuje wyłącznie, że sonda nad rurą, między rurami i przy krawędzi obserwuje inne warunki lokalne.</p>
              </div>

              <div class="rk-fs-result-grid">
                <div class="rk-fs-result-card"><h4>Potwierdzone</h4><ul class="rk-fs-output" id="rk-fs-ready-list"><li>Wyniki pojawią się po uruchomieniu audytu.</li></ul></div>
                <div class="rk-fs-result-card"><h4>Ryzyka i braki danych</h4><ul class="rk-fs-output is-warning" id="rk-fs-warning-list"><li>Na razie nie oceniono wybranych odpowiedzi.</li></ul></div>
                <div class="rk-fs-result-card"><h4>Następne działania</h4><ol class="rk-fs-output is-order" id="rk-fs-next-list"><li>Określ funkcję czujnika.</li><li>Sprawdź dokumentację regulatora.</li><li>Zaplanuj wymienny montaż.</li></ol></div>
              </div>
              <p class="rk-fs-tool-note"><strong>Zakres audytu:</strong> wynik jest listą kontrolną, a nie akceptacją urządzenia, instalacji elektrycznej, nastawy temperatury ani zgodności okładziny. Rozstrzygają dokumentacje konkretnych elementów i dane projektu.</p>
            </div>
          </div>
        </div>

        <aside class="rk-fs-sales-cta" aria-label="Zamów projekt ogrzewania podłogowego">
          <h3>Audyt wskaże ryzyko, ale nie zaprojektuje miejsca pomiaru</h3>
          <div class="rk-fs-cta-limits"><strong>Narzędzie może wychwycić niezgodną sondę, ryzykowną lokalizację lub brak wymienności.</strong> Nie zna jednak przekroju Twojej podłogi, układu rur, granic strefy, wybranej okładziny ani temperatur pracy instalacji.</div>
          <p>W projekcie można skoordynować lokalizację czujnika z przebiegiem pętli, funkcją termostatu, siłownikami i warunkami cieplnymi pomieszczenia — zanim wylewka zamknie dostęp do instalacji.</p>
          <a class="rk-fs-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z wytycznymi sterowania</a>
        </aside>
      </section>

      <section class="rk-fs-section" id="rk-fs-miejsce">
        <span class="rk-fs-eyebrow">Reprezentatywny punkt</span>
        <h2>Gdzie zamontować czujnik temperatury podłogi?</h2>
        <p>Końcówka sondy powinna obserwować typową część sterowanej powierzchni, a nie lokalną anomalię. Miejsce trzeba skoordynować z rzutem rur jeszcze przed ich przykryciem.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-green">
            <h3>Miejsce zwykle reprezentatywne</h3>
            <ul class="rk-fs-list">
              <li>w obrębie rzeczywiście ogrzewanej i użytkowanej części strefy;</li>
              <li>między sąsiednimi przewodami grzewczymi;</li>
              <li>z dala od lokalnych źródeł ciepła i silnego nasłonecznienia;</li>
              <li>w położeniu możliwym do jednoznacznego zaznaczenia na dokumentacji.</li>
            </ul>
          </div>
          <div class="rk-fs-card is-orange">
            <h3>Miejsce zwykle niereprezentatywne</h3>
            <ul class="rk-fs-list">
              <li>bezpośrednio nad rurą, jeśli celem jest obserwacja typowego pola;</li>
              <li>przy ścianie zewnętrznej, drzwiach lub w strefie brzegowej bez świadomego powodu;</li>
              <li>pod trwałą zabudową lub elementem silnie zmieniającym oddawanie ciepła;</li>
              <li>w przypadkowym miejscu tylko dlatego, że prowadzenie przewodu jest krótsze.</li>
            </ul>
          </div>
        </div>
        <p>Plan stref wyłączonych spod ogrzewania omawia poradnik <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>. Czujnik również nie powinien trafiać przypadkowo pod element, który zmieni warunki cieplne względem reszty pomieszczenia.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-miedzy-rurami">
        <span class="rk-fs-eyebrow">Lokalizacja względem przewodów</span>
        <h2>Dlaczego czujnik podłogowy układa się pomiędzy rurami?</h2>
        <p>Umieszczenie sondy pomiędzy sąsiednimi rurami ogranicza wpływ pojedynczego, bardzo bliskiego źródła ciepła. Taki punkt może lepiej reprezentować reakcję pola grzewczego niż sonda leżąca bezpośrednio nad przewodem.</p>
        <div class="rk-fs-note"><p><strong>„Między rurami” nie oznacza automatycznie poprawnego miejsca.</strong> Nadal trzeba ocenić, czy jest to środkowa, użytkowa część strefy, jaki jest rozstaw przewodów i czy w pobliżu nie występuje strefa brzegowa.</p></div>
        <p>Jeżeli sonda znajdzie się tuż nad rurą, może reagować szybciej i wskazywać wyższą lokalną temperaturę niż punkt położony pomiędzy przewodami. Jeśli leży zbyt daleko od ogrzewanego pola, reakcja może być opóźniona lub zaniżona. Dlatego miejsce należy nanieść na układ <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawu rur w wodnym ogrzewaniu podłogowym</a>, a nie wyznaczać wyłącznie miarką od ściany.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-peszel">
        <span class="rk-fs-eyebrow">Dostęp po wykonaniu posadzki</span>
        <h2>Czujnik podłogowy w peszlu — jak zachować możliwość wymiany?</h2>
        <p>Rura osłonowa ma dwa zadania: oddzielić sondę od zaprawy i stworzyć drogę, przez którą będzie można ją wysunąć bez kucia podłogi. Sama obecność peszla nie gwarantuje jednak wymienności.</p>
        <div class="rk-fs-grid-3">
          <div class="rk-fs-card is-cyan"><h3>Łagodna trasa</h3><p>Przebieg powinien umożliwiać przeciągnięcie sondy. Ostre załamania, spłaszczenia i kilka ciasnych łuków mogą ją zablokować.</p></div>
          <div class="rk-fs-card is-green"><h3>Zabezpieczony koniec</h3><p>Końcówkę od strony jastrychu zabezpiecza się przed wnikaniem zaprawy, nie tworząc jednocześnie przeszkody dla sondy.</p></div>
          <div class="rk-fs-card is-yellow"><h3>Próba przed wylewką</h3><p>Przed zamknięciem podłogi trzeba faktycznie wysunąć i ponownie wsunąć sondę lub przewód próbny, a nie zakładać, że będzie to możliwe.</p></div>
        </div>
        <p>Nie ma jednej uniwersalnej średnicy peszla ani jednego minimalnego promienia gięcia dla wszystkich sond. Wymiary dobiera się do końcówki, przewodu, długości trasy oraz wymagań producenta. Przed betonowaniem warto również udokumentować trasę, podobnie jak cały układ opisany w poradniku o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-glebokosc">
        <span class="rk-fs-eyebrow">Przekrój zamiast przypadkowej liczby</span>
        <h2>Na jakiej głębokości umieścić czujnik podłogowy?</h2>
        <p>Nie należy przyjmować zasady, że końcówka zawsze ma leżeć „w połowie wylewki”. Właściwe położenie zależy od kompletnego systemu: lokalizacji elementu grzejnego, grubości i przewodności jastrychu, rodzaju okładziny oraz funkcji pomiaru.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-soft"><h3>Za płytko</h3><p>Sonda może nadmiernie reagować na lokalne zmiany przy powierzchni albo znaleźć się w strefie narażonej na uszkodzenie podczas dalszych prac.</p></div>
          <div class="rk-fs-card is-soft"><h3>Za głęboko lub w złym miejscu</h3><p>Reakcja może być opóźniona, a odczyt bardziej związany z temperaturą elementu grzejnego niż z warunkami, które regulator ma ograniczać.</p></div>
        </div>
        <p>Wysokość rur i warstwy nad nimi trzeba odczytać z projektowanego przekroju. Pomocne tło techniczne daje artykuł o <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej na ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-przewod">
        <span class="rk-fs-eyebrow">Trasa sygnałowa</span>
        <h2>Jak prowadzić i przedłużać przewód czujnika podłogowego?</h2>
        <p>Przewód sondy prowadzi się zgodnie z instrukcją regulatora i zasadami dotyczącymi instalacji elektrycznej. Trzeba sprawdzić dopuszczalną długość, rodzaj przewodu, wpływ rezystancji żył oraz wymagany odstęp od przewodów zasilających.</p>
        <div class="rk-fs-warning"><p><strong>Przedłużenie nie jest obojętne z definicji.</strong> W obwodzie rezystancyjnym przewód i połączenia mogą wprowadzać dodatkowy opór lub podatność na zakłócenia. Dozwolony sposób przedłużenia musi wynikać z dokumentacji konkretnego wejścia.</p></div>
        <ul class="rk-fs-checklist">
          <li>Nie wykonuj niedostępnego, przypadkowego łączenia w jastrychu.</li>
          <li>Zachowaj identyfikację przewodu przy regulatorze i w dokumentacji powykonawczej.</li>
          <li>Nie prowadź kabla w sposób narażający go na przecięcie podczas montażu listew lub zabudowy.</li>
          <li>Połączenia elektryczne wykonuj przy odłączonym zasilaniu; w razie braku kwalifikacji zleć je uprawnionej osobie.</li>
        </ul>
      </section>

      <section class="rk-fs-section" id="rk-fs-strefa">
        <span class="rk-fs-eyebrow">Czujnik obsługuje logikę regulatora</span>
        <h2>Jeden czujnik na pomieszczenie czy na każdą pętlę?</h2>
        <p>W typowym sterowaniu strefowym czujnik jest związany z <strong>wejściem regulatora i strefą</strong>, a nie mechanicznie z każdą pętlą. Jedna strefa może sterować jednym albo kilkoma siłownikami przypisanymi do tego samego pomieszczenia.</p>
        <div class="rk-fs-equation">1 strefa sterowania ≠ zawsze 1 pętla grzewcza</div>
        <p>Jeżeli duże pomieszczenie ma trzy obwody, pojedynczy termostat może sterować trzema <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownikami termoelektrycznymi na rozdzielaczu</a>. Czujnik podłogowy nadal opisuje jeden lokalny punkt tej strefy. Nie informuje osobno o temperaturze każdej pętli.</p>
        <p>Podział na strefy powinien odpowiadać sposobowi użytkowania pomieszczeń, ich obciążeniom cieplnym oraz konstrukcji instalacji, a nie wyłącznie liczbie wyjść na listwie sterującej.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-wiele-petli">
        <span class="rk-fs-eyebrow">Duże pomieszczenie</span>
        <h2>Gdzie umieścić czujnik, gdy pomieszczenie ma kilka pętli?</h2>
        <p>Czujnika nie umieszcza się automatycznie „przy dłuższej pętli”. Długość obwodu jest parametrem hydraulicznym, a sonda ma mierzyć warunki w reprezentatywnym punkcie strefy.</p>
        <div class="rk-fs-grid-3">
          <div class="rk-fs-card is-soft"><h3>Najpierw geometria</h3><p>Sprawdź granice pola, przeszkody stałe, nasłonecznienie, strefy brzegowe i podział powierzchni między obwody.</p></div>
          <div class="rk-fs-card is-soft"><h3>Następnie funkcja</h3><p>Innego punktu może wymagać ochrona konkretnej okładziny, a innego obserwacja typowej części dużego salonu.</p></div>
          <div class="rk-fs-card is-soft"><h3>Na końcu dokumentacja</h3><p>Zapisz lokalizację sondy, trasę peszla i przypisanie wejścia, żeby późniejsza diagnostyka nie opierała się na domysłach.</p></div>
        </div>
        <p>Jeżeli pętle mają różne przepływy albo czasy reakcji, przyczyn szuka się w geometrii i hydraulice. Punktem wyjścia jest opis <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a>, a nie przenoszenie czujnika w stronę wybranego obwodu.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-okladziny">
        <span class="rk-fs-eyebrow">Ochrona wykończenia podłogi</span>
        <h2>Czujnik podłogowy pod panele, drewno, winyl i płytki</h2>
        <p>Rodzaj okładziny nie wyznacza jednego uniwersalnego progu dla sondy. Trzeba znać wymagania producenta całego układu wykończeniowego, opór cieplny warstw, dopuszczalne warunki użytkowania i relację między odczytem w jastrychu a temperaturą powierzchni.</p>
        <div class="rk-fs-table-wrap">
          <table class="rk-fs-table">
            <thead><tr><th>Okładzina</th><th>Co sprawdzić</th><th>Rola sondy</th></tr></thead>
            <tbody>
              <tr><td data-label="Okładzina"><strong>Płytki i kamień</strong></td><td data-label="Do sprawdzenia">Klej, dylatacje, konstrukcja podłoża i założenia komfortu.</td><td data-label="Rola sondy">Regulacja lub limit mogą wynikać z funkcji pomieszczenia, nie tylko z odporności materiału.</td></tr>
              <tr><td data-label="Okładzina"><strong>Panele laminowane</strong></td><td data-label="Do sprawdzenia">Dopuszczenie na ogrzewanie, podkład, łączny opór i limit producenta.</td><td data-label="Rola sondy">Może wspierać ochronę, jeśli regulator i punkt pomiaru pozwalają poprawnie wdrożyć limit.</td></tr>
              <tr><td data-label="Okładzina"><strong>Drewno</strong></td><td data-label="Do sprawdzenia">Gatunek, budowa elementu, wilgotność, sposób montażu i wymagania dostawcy.</td><td data-label="Rola sondy">Nie zastępuje kontroli warunków materiału ani właściwego rozruchu ogrzewania.</td></tr>
              <tr><td data-label="Okładzina"><strong>Winyl / wykładzina</strong></td><td data-label="Do sprawdzenia">Produkt, klej, podkład, opór cieplny i deklarowane ograniczenia.</td><td data-label="Rola sondy">Próg ustala się dla konkretnego rozwiązania, nie dla samej nazwy „winyl”.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Porównanie materiałów znajduje się w poradniku <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele czy płytki na ogrzewanie podłogowe</a>, a wpływ całego wykończenia opisuje artykuł o tym, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina wpływa na wydajność podłogówki</a>. Do porównania warstw warto używać deklarowanego <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporu cieplnego R w m²K/W</a>, a nie samej nazwy materiału.</p>
        <div class="rk-fs-note"><p><strong>Odczyt sondy nie jest certyfikatem bezpieczeństwa okładziny.</strong> Limit musi uwzględniać punkt pomiaru, bezwładność, tolerancję czujnika i instrukcję producenta materiału.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-termostat">
        <span class="rk-fs-eyebrow">Powietrze, podłoga albo tryb mieszany</span>
        <h2>Czujnik podłogowy a termostat pokojowy</h2>
        <p>Termostat może mieć czujnik powietrza w obudowie, wejście sondy podłogowej lub oba te elementy. O wyniku decyduje wybrany algorytm, a nie sama liczba czujników.</p>
        <div class="rk-fs-grid-3">
          <div class="rk-fs-card is-cyan"><h3>Tryb powietrzny</h3><p>Głównym celem jest zadana temperatura pomieszczenia. Sonda podłogowa może pozostać nieaktywna albo działać tylko jako limit.</p></div>
          <div class="rk-fs-card is-green"><h3>Tryb mieszany</h3><p>Powietrze prowadzi regulację, a podłoga ogranicza maksimum lub pilnuje określonego minimum — jeśli regulator obsługuje taką logikę.</p></div>
          <div class="rk-fs-card is-yellow"><h3>Tryb podłogowy</h3><p>Regulator steruje według sondy w posadzce. Stabilna temperatura podłogi nie gwarantuje jednak identycznej temperatury powietrza przy zmiennych zyskach i stratach.</p></div>
        </div>
        <p>Przy bezwładnym ogrzewaniu nadmierne, częste zamykanie stref może pogarszać warunki pracy źródła. Podłoga jest dużym akumulatorem, dlatego warto rozumieć, jak działa <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">magazynowanie ciepła w konstrukcji budynku</a>. Szerszy kontekst regulacji omawia analiza <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-pogodowka">
        <span class="rk-fs-eyebrow">Dwa poziomy regulacji</span>
        <h2>Czujnik podłogowy a sterowanie pogodowe i pompa ciepła</h2>
        <p>Sterowanie pogodowe dobiera temperaturę wody do warunków zewnętrznych i charakterystyki budynku. Czujnik podłogowy obserwuje lokalny punkt w jednej strefie. Te funkcje mogą się uzupełniać, ale nie są zamienne.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-soft"><h3>Regulacja nadrzędna</h3><p><a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterowanie pogodowe w ogrzewaniu podłogowym</a> prowadzi parametry wody dla instalacji lub obiegu.</p></div>
          <div class="rk-fs-card is-soft"><h3>Reakcja lokalna</h3><p>Sonda może ograniczyć konkretną strefę przez regulator i siłownik, ale zwykle nie zmienia samodzielnie krzywej tylko dla jednej pętli.</p></div>
        </div>
        <p>Czujnik nie „podnosi COP” samą obecnością. Sprawność pompy ciepła zależy między innymi od temperatur źródła i instalacji, obciążenia, modulacji oraz pracy hydraulicznej. Dlatego nastawę <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej podłogówki</a> trzeba oceniać oddzielnie od lokalnego limitu podłogi. Zależności projektowe szerzej opisuje poradnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>, a bilans mocy artykuł <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">czy pompa ciepła ogrzeje dom z podłogówką</a>.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-diagnostyka">
        <span class="rk-fs-eyebrow">Najpierw odczyt, potem przyczyna</span>
        <h2>Jak diagnozować czujnik podłogowy?</h2>
        <p>Diagnostyka powinna rozdzielić trzy możliwe grupy problemów: sam czujnik i jego przewód, błędną konfigurację regulatora oraz rzeczywistą, lokalną temperaturę wynikającą z konstrukcji i pracy ogrzewania.</p>
        <ol class="rk-fs-list">
          <li><strong>Zapisz objaw i warunki.</strong> Sprawdź temperaturę zadaną, tryb regulatora, czas od uruchomienia i stan strefy.</li>
          <li><strong>Porównaj niezależnie.</strong> Użyj odpowiedniego termometru w możliwie porównywalnym miejscu, pamiętając, że powierzchnia i sonda w jastrychu nie mierzą tego samego punktu.</li>
          <li><strong>Sprawdź konfigurację.</strong> Zweryfikuj typ sondy, korektę wskazania, limity i algorytm w instrukcji regulatora.</li>
          <li><strong>Sprawdź obwód pomiarowy.</strong> Po bezpiecznym odłączeniu sondy porównaj rezystancję z tabelą właściwego modelu.</li>
          <li><strong>Oddziel hydraulikę.</strong> Jeśli odczyt jest wiarygodny, zbadaj przepływ, siłownik i temperaturę wody zamiast wymieniać czujnik.</li>
        </ol>
        <p>Czujnik nie wykryje bezpośrednio zapowietrzenia ani zamkniętego obwodu. Ocena przepływu wymaga sprawdzenia <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametru na rozdzielaczu</a> i warunków pracy instalacji.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-pomiar">
        <span class="rk-fs-eyebrow">Bezpieczna weryfikacja</span>
        <h2>Jak sprawdzić czujnik podłogowy miernikiem?</h2>
        <p>Pomiar rezystancji ma sens tylko wtedy, gdy można porównać wynik z charakterystyką dokładnie tego czujnika i oszacować temperaturę jego otoczenia. Sam odczyt „9 kΩ” nie mówi, czy sonda jest sprawna bez punktu odniesienia.</p>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-cyan">
            <h3>Kolejność sprawdzenia</h3>
            <ol class="rk-fs-list">
              <li>Odłącz zasilanie zgodnie z instrukcją urządzenia.</li>
              <li>Odłącz przewody sondy od wejścia regulatora.</li>
              <li>Zmierz rezystancję właściwym zakresem miernika.</li>
              <li>Porównaj wynik z tabelą konkretnego modelu i wiarygodnym pomiarem temperatury.</li>
              <li>Powtórz obserwację po zmianie temperatury, jeśli dokumentacja przewiduje taką procedurę.</li>
            </ol>
          </div>
          <div class="rk-fs-card is-yellow">
            <h3>Czego wynik nie rozstrzyga</h3>
            <ul class="rk-fs-list">
              <li>czy sonda leży w reprezentatywnym miejscu;</li>
              <li>czy próg regulatora jest właściwy dla okładziny;</li>
              <li>czy pętla ma prawidłowy przepływ;</li>
              <li>czy odczyt w jastrychu odpowiada temperaturze powierzchni;</li>
              <li>czy cała strefa nagrzewa się równomiernie.</li>
            </ul>
          </div>
        </div>
        <div class="rk-fs-warning"><p><strong>Nie mierz rezystancji w obwodzie pod napięciem.</strong> Jeśli dostęp do zacisków wymaga otwarcia urządzenia zasilanego napięciem sieciowym albo nie potrafisz potwierdzić bezpiecznego odłączenia, diagnostykę powinien wykonać wykwalifikowany instalator lub elektryk.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-awarie">
        <span class="rk-fs-eyebrow">Odczyt to wskazówka, nie diagnoza</span>
        <h2>Uszkodzony czujnik podłogowy — objawy i możliwe przyczyny</h2>
        <div class="rk-fs-table-wrap">
          <table class="rk-fs-table">
            <thead><tr><th>Objaw</th><th>Możliwe przyczyny</th><th>Co sprawdzić najpierw</th></tr></thead>
            <tbody>
              <tr><td data-label="Objaw"><strong>Stale za wysoki odczyt</strong></td><td data-label="Możliwe przyczyny">Sonda nad rurą, zła charakterystyka w menu, korekta wskazania, rzeczywiście wysoka lokalna temperatura.</td><td data-label="Pierwszy krok">Typ czujnika, położenie i porównanie z dokumentacją.</td></tr>
              <tr><td data-label="Objaw"><strong>Stale za niski odczyt</strong></td><td data-label="Możliwe przyczyny">Sonda poza polem grzewczym, niewłaściwy typ, brak przepływu lub wychłodzone miejsce.</td><td data-label="Pierwszy krok">Stan strefy, przepływ i lokalizację końcówki.</td></tr>
              <tr><td data-label="Objaw"><strong>Błąd przerwy lub skrajnie wysoka rezystancja</strong></td><td data-label="Możliwe przyczyny">Przerwany przewód, luźny zacisk, rozłączona sonda.</td><td data-label="Pierwszy krok">Ciągłość obwodu po bezpiecznym odłączeniu.</td></tr>
              <tr><td data-label="Objaw"><strong>Błąd zwarcia lub skrajnie niska rezystancja</strong></td><td data-label="Możliwe przyczyny">Zwarcie żył, uszkodzenie izolacji, zawilgocone połączenie.</td><td data-label="Pierwszy krok">Przewód, zaciski i miejsca łączenia.</td></tr>
              <tr><td data-label="Objaw"><strong>Odczyt zanika albo skacze</strong></td><td data-label="Możliwe przyczyny">Niestabilne połączenie, uszkodzony przewód, zakłócenia lub usterka wejścia.</td><td data-label="Pierwszy krok">Zaciski, trasę kabla i stabilność pomiaru.</td></tr>
              <tr><td data-label="Objaw"><strong>Podłoga grzeje, a odczyt prawie nie reaguje</strong></td><td data-label="Możliwe przyczyny">Końcówka poza ogrzewanym polem, pusty lub źle zakończony peszel, duża bezwładność albo błędne przypisanie wejścia.</td><td data-label="Pierwszy krok">Czas obserwacji, miejsce sondy i konfigurację regulatora.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Jeśli problemy wynikają z rozdzielacza, siłowników lub przepływu, właściwą ścieżką jest kontrola elementów instalacji i <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">serwis ogrzewania podłogowego</a>, a nie automatyczna wymiana sondy.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-wymiana">
        <span class="rk-fs-eyebrow">Naprawa bez kucia</span>
        <h2>Jak wymienić czujnik podłogowy?</h2>
        <p>Jeżeli sonda jest w drożnej rurze osłonowej, wymiana może ograniczyć się do odłączenia starego elementu, ostrożnego wysunięcia przewodu i wprowadzenia zgodnego zamiennika na tę samą, udokumentowaną głębokość.</p>
        <ol class="rk-fs-list">
          <li><strong>Zidentyfikuj regulator i wejście.</strong> Nie kupuj zamiennika wyłącznie na podstawie koloru końcówki.</li>
          <li><strong>Potwierdź charakterystykę.</strong> Porównaj model, R w temperaturze odniesienia, krzywą i wymagania przewodu.</li>
          <li><strong>Odłącz bezpiecznie urządzenie.</strong> Pracę przy zaciskach wykonuj zgodnie z instrukcją i uprawnieniami.</li>
          <li><strong>Zaznacz położenie starej sondy.</strong> Pomiar długości wysuniętego przewodu pomaga odtworzyć punkt pomiaru.</li>
          <li><strong>Wsuń nową sondę bez siłowania.</strong> Opór może oznaczać załamanie lub zanieczyszczenie peszla.</li>
          <li><strong>Sprawdź wynik przed zamknięciem regulatora.</strong> Zweryfikuj wskazanie i konfigurację właściwego typu.</li>
        </ol>
        <div class="rk-fs-warning"><p><strong>Sonda zalana bez osłony może być niewymienna bez ingerencji w podłogę.</strong> Wtedy warto najpierw sprawdzić, czy regulator umożliwia bezpieczne przejście na inny tryb sterowania lub użycie nowego punktu pomiaru.</p></div>
      </section>

      <section class="rk-fs-section" id="rk-fs-bledy">
        <span class="rk-fs-eyebrow">Błędy, które ujawniają się po wykończeniu</span>
        <h2>Najczęstsze błędy montażu i konfiguracji czujnika</h2>
        <div class="rk-fs-grid-2">
          <div class="rk-fs-card is-orange"><h3>Błędy montażowe</h3><ul class="rk-fs-list"><li>zalanie sondy bez wymiennej osłony;</li><li>otwarty koniec peszla i wniknięcie zaprawy;</li><li>ostry łuk lub zgnieciona rura osłonowa;</li><li>końcówka bezpośrednio nad rurą albo poza polem grzewczym;</li><li>brak zdjęcia, pomiaru i oznaczenia trasy.</li></ul></div>
          <div class="rk-fs-card is-yellow"><h3>Błędy sterowania</h3><ul class="rk-fs-list"><li>niezgodna krzywa NTC mimo zgodnego napisu „10k”;</li><li>aktywny tryb podłogowy zamiast mieszanego lub odwrotnie;</li><li>limit przepisany z innego materiału bez weryfikacji;</li><li>jedna sonda traktowana jak pomiar całej kondygnacji;</li><li>próba naprawienia problemu hydraulicznego zmianą kalibracji.</li></ul></div>
        </div>
        <p>Zmiana temperatury zasilania nie powinna być pierwszą reakcją na nietypowe wskazanie. Granice pracy obiegu omawia osobny artykuł o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>. Najpierw trzeba potwierdzić, co naprawdę mierzy sonda.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-checklista">
        <span class="rk-fs-eyebrow">Kontrola przed jastrychem</span>
        <h2>Checklista montażu czujnika przed wykonaniem wylewki</h2>
        <ul class="rk-fs-checklist">
          <li>Określono konkretną funkcję: regulacja, minimum, maksimum lub diagnostyka.</li>
          <li>Potwierdzono, że regulator ma właściwe wejście i obsługuje wybraną funkcję.</li>
          <li>Model sondy i jego pełna charakterystyka są zgodne z dokumentacją wejścia.</li>
          <li>Miejsce końcówki skoordynowano z przebiegiem rur i granicą sterowanej strefy.</li>
          <li>Sonda leży w reprezentatywnym miejscu pomiędzy przewodami, jeżeli taki jest cel pomiaru.</li>
          <li>Rura osłonowa ma drożną trasę bez ostrych załamań i spłaszczeń.</li>
          <li>Koniec peszla zabezpieczono przed wnikaniem zaprawy.</li>
          <li>Wykonano próbę wysunięcia i ponownego wsunięcia sondy lub przewodu próbnego.</li>
          <li>Przewód poprowadzono zgodnie z wymaganiami regulatora i instalacji elektrycznej.</li>
          <li>Zapisano długość wsunięcia oraz wykonano zdjęcia z punktami odniesienia.</li>
          <li>Sprawdzono odczyt przed wylewką i po pracach, zanim podłoga zostanie wykończona.</li>
          <li>Ustalono tryb regulatora i reakcję po osiągnięciu progu.</li>
        </ul>
        <p>Kontrolę sondy warto włączyć do odbioru całego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza ogrzewania podłogowego</a>, sterowania i prób instalacji. Dzięki temu późniejszy brak reakcji nie jest diagnozowany dopiero po ułożeniu okładziny.</p>
      </section>

      <section class="rk-fs-section" id="rk-fs-faq">
        <span class="rk-fs-eyebrow">Pytania użytkowników</span>
        <h2>Czujnik podłogowy — FAQ</h2>
        <div class="rk-fs-faq">
          <details><summary>Czy czujnik podłogowy jest obowiązkowy w wodnej podłogówce?</summary><div class="rk-fs-faq-answer"><p>Nie dla każdej pętli. Jest potrzebny wtedy, gdy przewidziana logika regulatora ma kontrolować albo ograniczać temperaturę w konstrukcji podłogi. Zakres trzeba ustalić w projekcie sterowania.</p></div></details>
          <details><summary>Czy jeden czujnik może obsługiwać dwie pętle?</summary><div class="rk-fs-faq-answer"><p>Tak, jeśli obie pętle należą do jednej strefy sterowanej wspólnym regulatorem. Sonda mierzy jednak jeden lokalny punkt i nie rozpoznaje osobno temperatury każdej pętli.</p></div></details>
          <details><summary>Gdzie położyć czujnik podłogowy?</summary><div class="rk-fs-faq-answer"><p>W reprezentatywnej, ogrzewanej części strefy, zwykle pomiędzy sąsiednimi rurami lub przewodami. Należy unikać przypadkowego położenia nad rurą, przy krawędzi, pod stałą zabudową i obok lokalnych źródeł ciepła.</p></div></details>
          <details><summary>Czy sonda może leżeć bezpośrednio nad rurą ogrzewania?</summary><div class="rk-fs-faq-answer"><p>Jeśli celem jest pomiar typowego pola podłogi, takie miejsce zwykle zbyt mocno reaguje na pojedynczą rurę. Ewentualne odstępstwo musi wynikać z funkcji pomiaru i instrukcji systemu.</p></div></details>
          <details><summary>Czy czujnik podłogowy musi być w peszlu?</summary><div class="rk-fs-faq-answer"><p>Rura osłonowa jest podstawowym sposobem zachowania możliwości wymiany. Musi być drożna, mieć łagodną trasę i zabezpieczony koniec; sama obecność peszla nie wystarczy.</p></div></details>
          <details><summary>Czy każdy czujnik NTC 10k pasuje do termostatu NTC 10k?</summary><div class="rk-fs-faq-answer"><p>Nie zawsze. Trzeba porównać temperaturę odniesienia, współczynnik B albo pełną krzywą, tolerancję oraz wymagania regulatora. Zgodny opór nominalny w jednym punkcie nie gwarantuje zgodności w całym zakresie.</p></div></details>
          <details><summary>Jaka powinna być rezystancja czujnika NTC 10k?</summary><div class="rk-fs-faq-answer"><p>Zależy od temperatury i konkretnej charakterystyki. Wartość należy porównać wyłącznie z tabelą sondy wskazanej dla danego regulatora, a nie z przypadkową uniwersalną tabelą.</p></div></details>
          <details><summary>Czy można przedłużyć przewód czujnika podłogowego?</summary><div class="rk-fs-faq-answer"><p>Tylko w sposób dopuszczony w instrukcji regulatora. Trzeba uwzględnić rodzaj i długość przewodu, sposób połączenia, dodatkowy opór oraz zasady prowadzenia względem kabli zasilających.</p></div></details>
          <details><summary>Czy wskazanie sondy jest temperaturą powierzchni podłogi?</summary><div class="rk-fs-faq-answer"><p>Nie automatycznie. Czujnik mierzy temperaturę własnej końcówki w miejscu montażu. Temperatura górnej powierzchni okładziny może być inna i zależy od przekroju oraz warunków pracy.</p></div></details>
          <details><summary>Jakie są objawy uszkodzonego czujnika?</summary><div class="rk-fs-faq-answer"><p>Może pojawić się komunikat przerwy lub zwarcia, skrajny albo niestabilny odczyt, brak reakcji na nagrzewanie lub zachowanie niezgodne z rzeczywistymi warunkami. Podobne objawy może powodować konfiguracja albo przewód.</p></div></details>
          <details><summary>Czy czujnik podłogowy zastępuje sterowanie pogodowe?</summary><div class="rk-fs-faq-answer"><p>Nie. Pogodówka prowadzi temperaturę wody względem warunków zewnętrznych, natomiast sonda podłogowa obserwuje lokalny punkt i może realizować funkcję strefową lub ograniczającą.</p></div></details>
          <details><summary>Czy czujnik poprawia sprawność pompy ciepła?</summary><div class="rk-fs-faq-answer"><p>Nie samą obecnością. Może pomóc realizować poprawną strategię sterowania, ale efektywność zależy także od temperatur instalacji, obciążenia budynku, hydrauliki, modulacji i ustawień źródła.</p></div></details>
        </div>
      </section>

      <section class="rk-fs-section" id="rk-fs-zrodla">
        <span class="rk-fs-eyebrow">Podstawa techniczna</span>
        <h2>Źródła i zakres normowy</h2>
        <p>Normy dotyczące ogrzewania płaszczyznowego opisują obliczanie wydajności oraz projektowanie systemu. Nie tworzą jednak uniwersalnej tabeli zgodności wszystkich sond NTC z regulatorami — tę zgodność potwierdza dokumentacja urządzeń.</p>
        <div class="rk-fs-sources">
          <div class="rk-fs-source"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wyznaczanie mocy powierzchni grzewczej i chłodzącej</a><p>Odniesienie do zależności cieplnych, temperatury powierzchni i wydajności systemu.</p></div>
          <div class="rk-fs-source"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Odniesienie do procesu projektowego wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
          <div class="rk-fs-source"><a href="https://www.nist.gov/pml/sensor-science/thermodynamic-metrology/mercury-thermometer-alternatives/mercury-thermometer-4" target="_blank" rel="nofollow noopener noreferrer">NIST — thermistors</a><p>Informacje metrologiczne o nieliniowej charakterystyce termistorów i znaczeniu zamienności.</p></div>
          <div class="rk-fs-source"><a href="https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=915733" target="_blank" rel="nofollow noopener noreferrer">NIST — kalibracja termistorów i równanie Steinharta–Harta</a><p>Materiał pokazujący, dlaczego dopasowanie charakterystyki wymaga danych konkretnego elementu.</p></div>
        </div>
        <p>Praktyczne omówienie europejskiej podstawy projektowania znajdziesz też w naszym opracowaniu <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 — norma definiująca ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-fs-author" id="rk-fs-autor">
        <input type="radio" name="rk-fs-author-tabs" id="rk-fs-author-about" checked="">
        <input type="radio" name="rk-fs-author-tabs" id="rk-fs-author-exp">
        <input type="radio" name="rk-fs-author-tabs" id="rk-fs-author-method">
        <div class="rk-fs-author-head">
          <div><span class="rk-fs-eyebrow">Autor opracowania</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych i specjalista HVAC</p></div>
          <span class="rk-fs-author-mark">Treść techniczna · doświadczenie projektowe · aktualizacja 2026</span>
        </div>
        <div class="rk-fs-author-layout">
          <aside class="rk-fs-author-side">
            <div class="rk-fs-author-photo"><img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="154" height="154" loading="lazy"></div>
            <div class="rk-fs-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
            <div class="rk-fs-author-role">Projektant ogrzewania podłogowego, obliczeń cieplnych i hydraulicznych</div>
            <div class="rk-fs-author-social-label">Profile autora</div>
            <div class="rk-fs-author-social">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.34V8.98h3.42v1.57h.05c.47-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.29ZM5.32 7.41a2.07 2.07 0 1 1 0-4.13 2.07 2.07 0 0 1 0 4.13ZM7.1 20.45H3.54V8.98H7.1v11.47Z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.89 3.77-3.89 1.09 0 2.23.2 2.23.2v2.45h-1.25c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.44 2.89h-2.34v6.99A10 10 0 0 0 22 12Z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.24 2H21l-6.03 6.89L22.06 22H16.5l-4.35-5.69L7.17 22H4.4l6.45-7.37L4.05 2h5.7l3.93 5.2L18.24 2Zm-.97 17.7h1.53L8.91 4.18H7.27L17.27 19.7Z"></path></svg></a>
            </div>
          </aside>
          <div class="rk-fs-author-main">
            <blockquote class="rk-fs-author-quote"><p>Dobry czujnik nie naprawi przypadkowej lokalizacji. Najpierw trzeba wiedzieć, co regulator ma mierzyć, gdzie leży reprezentatywny punkt i jak po odczycie ma zareagować instalacja.</p></blockquote>
            <div class="rk-fs-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-fs-author-tab" for="rk-fs-author-about">O autorze</label>
              <label class="rk-fs-author-tab" for="rk-fs-author-exp">Doświadczenie</label>
              <label class="rk-fs-author-tab" for="rk-fs-author-method">Metoda pracy</label>
            </div>
            <div class="rk-fs-author-panel rk-fs-author-panel-about"><p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia obciążenia cieplnego i hydrauliki instalacji oraz techniczne materiały edukacyjne dla inwestorów i wykonawców. Łączy analizę strat ciepła z rzeczywistą geometrią pomieszczeń, powierzchnią czynną podłogi, konstrukcją przegród i sposobem sterowania.</p><p>W publikacjach rozdziela wartości wynikające z norm i dokumentacji od uproszczeń orientacyjnych. Dzięki temu czytelnik widzi nie tylko odpowiedź, lecz także granice jej zastosowania i dane, które trzeba potwierdzić przed wykonaniem instalacji.</p></div>
            <div class="rk-fs-author-panel rk-fs-author-panel-exp"><p>Zakres pracy autora obejmuje dobór rozstawu rur, podział na pętle, przepływy, nastawy rozdzielacza, temperatury zasilania, współpracę z pompami ciepła oraz koordynację sterowania z bezwładnością podłogi. W przypadku czujników kluczowe jest połączenie rzutu rur, stref regulacji, okładzin i konkretnej automatyki.</p><p>Artykuł został zweryfikowany pod kątem różnicy między temperaturą sondy i powierzchni, kompatybilności charakterystyk NTC oraz możliwości wymiany elementu po wykonaniu jastrychu.</p></div>
            <div class="rk-fs-author-panel rk-fs-author-panel-method"><p>Proces projektowy zaczyna się od danych budynku i <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego OZC</a>. Następnie powstaje układ pól grzewczych, pętli, rozdzielaczy i przepływów. Dopiero na tej podstawie można sensownie określić miejsce sondy, przypisanie termostatu i reakcję strefy.</p><p>Po publikacji materiały są aktualizowane, gdy zmieniają się źródła, normy lub pojawiają się pytania ujawniające ryzyko błędnej interpretacji.</p></div>
            <div class="rk-fs-mini-label">Pozostałe serwisy autora</div>
            <div class="rk-fs-portals"><a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a><a href="https://projekt-ogrzewania.pl/blog/">Wszystkie poradniki Projekt Ogrzewania</a></div>
          </div>
        </div>
      </section>

      <aside class="rk-fs-sales-cta" aria-label="Końcowe zaproszenie do zamówienia projektu">
        <h3>Zaplanuj czujniki razem z rurami, strefami i sterowaniem</h3>
        <p>Najłatwiej zachować reprezentatywne miejsce pomiaru i wymienny peszel przed wykonaniem wylewki. Projekt ogrzewania podłogowego łączy układ pętli, przepływy, rozdzielacz, temperatury pracy oraz wytyczne sterowania w jednej dokumentacji.</p>
        <a class="rk-fs-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "czujniki temperatury podłogi",
        "sterowanie strefowe",
        "hydraulika instalacji grzewczych",
        "obliczenia cieplne",
        "pompy ciepła"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Czujnik podłogowy", "item": "https://projekt-ogrzewania.pl/czujnik-podlogowy/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#webpage",
      "url": "https://projekt-ogrzewania.pl/czujnik-podlogowy/",
      "name": "Czujnik podłogowy w ogrzewaniu podłogowym – dobór, montaż i diagnostyka",
      "description": "Sprawdź, kiedy czujnik podłogowy jest potrzebny, jak dobrać NTC do termostatu, poprowadzić peszel i rozpoznać błędny odczyt.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#breadcrumb" },
      "dateModified": "2026-09-08",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#article",
      "headline": "Czujnik podłogowy w ogrzewaniu podłogowym – dobór, montaż i diagnostyka",
      "description": "Techniczny poradnik o funkcjach czujnika podłogowego, zgodności NTC, montażu w peszlu, lokalizacji i diagnostyce.",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#webpage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "dateModified": "2026-09-08",
      "about": [
        "czujnik podłogowy",
        "czujnik NTC 10k",
        "termostat ogrzewania podłogowego",
        "montaż czujnika w peszlu",
        "diagnostyka czujnika temperatury"
      ],
      "proficiencyLevel": "Intermediate",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#audit",
      "name": "Interaktywny audyt czujnika podłogowego",
      "url": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#rk-fs-audyt",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "description": "Narzędzie porządkujące funkcję sondy, zgodność z regulatorem, lokalizację, wymienność i diagnostykę bez udawania projektu technicznego.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#webpage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#howto",
      "name": "Jak sprawdzić montaż czujnika podłogowego przed wylewką",
      "description": "Kolejność kontroli funkcji, zgodności, miejsca pomiaru, peszla i reakcji regulatora.",
      "totalTime": "PT20M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Określ funkcję", "text": "Ustal, czy czujnik ma prowadzić regulację, ograniczać maksimum, pilnować minimum czy tylko wspierać diagnostykę." },
        { "@type": "HowToStep", "position": 2, "name": "Potwierdź wejście regulatora", "text": "Sprawdź, czy regulator obsługuje sondę i oczekiwaną funkcję." },
        { "@type": "HowToStep", "position": 3, "name": "Porównaj charakterystykę", "text": "Zweryfikuj typ, opór odniesienia, współczynnik B lub pełną tabelę oraz wymagania przewodu." },
        { "@type": "HowToStep", "position": 4, "name": "Wybierz reprezentatywne miejsce", "text": "Skoordynuj położenie końcówki z przebiegiem rur, strefą i okładziną." },
        { "@type": "HowToStep", "position": 5, "name": "Sprawdź wymienność", "text": "Skontroluj drożność peszla, zabezpieczenie końca i możliwość wysunięcia oraz ponownego wsunięcia sondy." },
        { "@type": "HowToStep", "position": 6, "name": "Ustal reakcję regulatora", "text": "Zapisz tryb sterowania i działanie po osiągnięciu ustawionego progu." }
      ],
      "inLanguage": "pl-PL"
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czujnik-podlogowy/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy czujnik podłogowy jest obowiązkowy w wodnej podłogówce?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie dla każdej pętli. Jest potrzebny wtedy, gdy logika regulatora ma kontrolować albo ograniczać temperaturę w konstrukcji podłogi." }
        },
        {
          "@type": "Question",
          "name": "Czy jeden czujnik może obsługiwać dwie pętle?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeśli obie pętle należą do jednej strefy sterowanej wspólnym regulatorem. Sonda mierzy jednak tylko jeden lokalny punkt." }
        },
        {
          "@type": "Question",
          "name": "Gdzie położyć czujnik podłogowy?",
          "acceptedAnswer": { "@type": "Answer", "text": "W reprezentatywnej ogrzewanej części strefy, zwykle pomiędzy sąsiednimi rurami lub przewodami, z dala od lokalnych zakłóceń." }
        },
        {
          "@type": "Question",
          "name": "Czy sonda może leżeć bezpośrednio nad rurą ogrzewania?",
          "acceptedAnswer": { "@type": "Answer", "text": "Jeśli celem jest pomiar typowego pola podłogi, takie miejsce zwykle zbyt mocno reaguje na pojedynczą rurę." }
        },
        {
          "@type": "Question",
          "name": "Czy czujnik podłogowy musi być w peszlu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Rura osłonowa jest podstawowym sposobem zachowania możliwości wymiany. Musi być drożna, łagodnie poprowadzona i zabezpieczona przed zaprawą." }
        },
        {
          "@type": "Question",
          "name": "Czy każdy czujnik NTC 10k pasuje do termostatu NTC 10k?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Trzeba porównać temperaturę odniesienia, współczynnik B lub pełną krzywą, tolerancję i wymagania regulatora." }
        },
        {
          "@type": "Question",
          "name": "Jaka powinna być rezystancja czujnika NTC 10k?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zależy od temperatury i konkretnej charakterystyki. Wynik należy porównać z tabelą sondy wskazanej dla danego regulatora." }
        },
        {
          "@type": "Question",
          "name": "Czy można przedłużyć przewód czujnika podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tylko w sposób dopuszczony przez instrukcję regulatora, z uwzględnieniem przewodu, połączeń, dodatkowego oporu i prowadzenia trasy." }
        },
        {
          "@type": "Question",
          "name": "Czy wskazanie sondy jest temperaturą powierzchni podłogi?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie automatycznie. Czujnik mierzy temperaturę własnej końcówki w miejscu montażu, a temperatura powierzchni może być inna." }
        },
        {
          "@type": "Question",
          "name": "Jakie są objawy uszkodzonego czujnika?",
          "acceptedAnswer": { "@type": "Answer", "text": "Może pojawić się błąd przerwy lub zwarcia, skrajny albo niestabilny odczyt lub brak reakcji na nagrzewanie. Podobne objawy może powodować konfiguracja lub przewód." }
        },
        {
          "@type": "Question",
          "name": "Czy czujnik podłogowy zastępuje sterowanie pogodowe?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Pogodówka prowadzi temperaturę wody względem warunków zewnętrznych, a sonda podłogowa obserwuje lokalny punkt." }
        },
        {
          "@type": "Question",
          "name": "Czy czujnik poprawia sprawność pompy ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie samą obecnością. Efektywność zależy także od temperatur instalacji, obciążenia budynku, hydrauliki, modulacji i ustawień źródła." }
        }
      ],
      "inLanguage": "pl-PL"
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-fs-audit");
  if (!root) { return; }

  function byId(id) { return document.getElementById(id); }
  function value(id) { return byId(id).value; }

  function setNode(nodeId, noteId, state, note) {
    var node = byId(nodeId);
    node.classList.remove("is-ready", "is-watch", "is-stop");
    node.classList.add("is-" + state);
    byId(noteId).textContent = note;
  }

  function renderList(id, items) {
    var list = byId(id);
    list.textContent = "";
    items.forEach(function (item) {
      var li = document.createElement("li");
      li.textContent = item;
      list.appendChild(li);
    });
  }

  function addUnique(list, text) {
    if (list.indexOf(text) === -1) { list.push(text); }
  }

  function updateScene(placement, conduit) {
    var scene = byId("rk-fs-scene");
    var caption = byId("rk-fs-scene-caption");
    scene.classList.remove("is-between", "is-over", "is-edge", "is-unknown", "has-no-conduit");
    scene.classList.add("is-" + placement);
    if (conduit === "no") { scene.classList.add("has-no-conduit"); }

    if (placement === "between") {
      caption.innerHTML = "<strong>Sonda pomiędzy rurami.</strong> Punkt jest mniej zależny od pojedynczego przewodu, ale nadal trzeba potwierdzić, czy reprezentuje użytkową część strefy.";
    } else if (placement === "over") {
      caption.innerHTML = "<strong>Sonda bezpośrednio nad rurą.</strong> Może reagować szybciej i pokazywać wyższą temperaturę lokalną niż typowe pole pomiędzy przewodami.";
    } else if (placement === "edge") {
      caption.innerHTML = "<strong>Sonda przy krawędzi strefy.</strong> Odczyt może być zdominowany przez ścianę, strefę brzegową albo słabiej ogrzewany fragment.";
    } else {
      caption.innerHTML = "<strong>Położenie nieustalone.</strong> Schemat nie podaje sztucznej temperatury. Najpierw trzeba odnaleźć trasę i funkcję punktu pomiaru.";
    }

    if (conduit === "no") {
      caption.innerHTML += " <strong>Brak rury osłonowej ogranicza możliwość późniejszej wymiany.</strong>";
    }
  }

  function runAudit() {
    var stage = value("rk-fs-stage");
    var system = value("rk-fs-system");
    var zone = value("rk-fs-zone");
    var role = value("rk-fs-role");
    var control = value("rk-fs-control");
    var loops = value("rk-fs-loops");
    var compat = value("rk-fs-compat");
    var curve = value("rk-fs-curve");
    var symptom = value("rk-fs-symptom");
    var conduit = value("rk-fs-conduit");
    var replaceable = value("rk-fs-replaceable");
    var placement = value("rk-fs-placement");
    var sealed = value("rk-fs-sealed");
    var ready = [];
    var warnings = [];
    var next = [];
    var hardConflict = false;

    if (system === "hydronic") {
      addUnique(ready, "Rozpoznano instalację wodną: sonda wspiera lokalną logikę strefy, a nie reguluje bezpośrednio temperatury wody.");
    } else {
      addUnique(ready, "Rozpoznano ogrzewanie elektryczne: wymagania sondy i zabezpieczeń trzeba potwierdzić w instrukcji kompletnego systemu.");
    }

    if (role === "unknown") {
      setNode("rk-fs-node-role", "rk-fs-note-role", "watch", "Nie określono funkcji");
      addUnique(warnings, "Brak zdefiniowanej funkcji czujnika: nie wiadomo, czy ma regulować, ograniczać czy tylko diagnozować.");
      addUnique(next, "Zapisz oczekiwaną funkcję sondy i warunek, po którym regulator ma zareagować.");
    } else {
      var roleText = "Funkcja określona";
      if (role === "max") { roleText = "Limit maksimum"; }
      if (role === "min") { roleText = "Utrzymanie minimum"; }
      if (role === "floor") { roleText = "Regulacja podłogowa"; }
      if (role === "diagnostic") { roleText = "Odczyt diagnostyczny"; }
      setNode("rk-fs-node-role", "rk-fs-note-role", "ready", roleText);
      addUnique(ready, "Określono funkcję sondy: " + roleText.toLowerCase() + ".");
    }

    if (compat === "yes") {
      setNode("rk-fs-node-input", "rk-fs-note-input", "ready", "Wejście potwierdzone");
      addUnique(ready, "Dokumentacja potwierdza zgodność sondy z wejściem regulatora.");
    } else if (compat === "no") {
      setNode("rk-fs-node-input", "rk-fs-note-input", "stop", "Niezgodność parametrów");
      addUnique(warnings, "Sonda i wejście regulatora mają niezgodne albo niepotwierdzone parametry produktu.");
      addUnique(next, "Nie podłączaj przypadkowego zamiennika; dobierz sondę wskazaną przez producenta regulatora.");
      hardConflict = true;
    } else {
      setNode("rk-fs-node-input", "rk-fs-note-input", "watch", "Dokumentacja nieporównana");
      addUnique(warnings, "Nie potwierdzono, czy regulator obsługuje wybrany typ sondy i oczekiwaną funkcję.");
      addUnique(next, "Otwórz instrukcję regulatora i sprawdź typ wejścia, tryby pracy oraz dopuszczalny przewód.");
    }

    if (curve === "full") {
      setNode("rk-fs-node-curve", "rk-fs-note-curve", "ready", "Pełna krzywa znana");
      addUnique(ready, "Dostępna jest pełna charakterystyka albo producent wskazuje dokładny model sondy.");
    } else if (curve === "r25") {
      setNode("rk-fs-node-curve", "rk-fs-note-curve", "watch", "Samo R25 to za mało");
      addUnique(warnings, "Znany jest tylko nominalny opór. Nie potwierdza on przebiegu charakterystyki poza punktem odniesienia.");
      addUnique(next, "Porównaj współczynnik B lub pełną tabelę rezystancja–temperatura.");
    } else {
      setNode("rk-fs-node-curve", "rk-fs-note-curve", "watch", "Brak charakterystyki");
      addUnique(warnings, "Brakuje danych charakterystyki sondy.");
      addUnique(next, "Ustal symbol sondy i pobierz jej kartę techniczną.");
    }

    if (placement === "between") {
      setNode("rk-fs-node-place", "rk-fs-note-place", "ready", "Pomiędzy rurami");
      addUnique(ready, "Końcówkę przewidziano pomiędzy sąsiednimi przewodami grzewczymi.");
    } else if (placement === "over") {
      setNode("rk-fs-node-place", "rk-fs-note-place", "stop", "Bezpośrednio nad rurą");
      addUnique(warnings, "Punkt nad rurą może zawyżać lokalny odczyt względem typowego pola podłogi.");
      addUnique(next, "Przed wylewką przesuń sondę do miejsca wynikającego z jej funkcji, zwykle pomiędzy przewodami.");
      hardConflict = true;
    } else if (placement === "edge") {
      setNode("rk-fs-node-place", "rk-fs-note-place", "stop", "Krawędź strefy");
      addUnique(warnings, "Punkt przy ścianie lub krawędzi może nie reprezentować użytkowej części podłogi.");
      addUnique(next, "Porównaj lokalizację z rzutem rur, strefą brzegową i planem zabudowy.");
      hardConflict = true;
    } else {
      setNode("rk-fs-node-place", "rk-fs-note-place", "watch", "Położenie nieznane");
      addUnique(warnings, "Nie ustalono położenia końcówki względem rur i granicy strefy.");
      addUnique(next, "Zaznacz punkt sondy na rzucie oraz wykonaj zdjęcie z wymiarami.");
    }

    if (conduit === "yes") {
      if (replaceable === "yes") {
        if (sealed === "yes") {
          setNode("rk-fs-node-replace", "rk-fs-note-replace", "ready", "Drożność sprawdzona");
          addUnique(ready, "Sonda jest w zabezpieczonym peszlu i wykonano praktyczną próbę wymiany.");
        } else if (sealed === "no") {
          setNode("rk-fs-node-replace", "rk-fs-note-replace", "stop", "Otwarty koniec peszla");
          addUnique(warnings, "Zaprawa może wniknąć do otwartego peszla i zablokować sondę.");
          addUnique(next, "Zabezpiecz koniec rury osłonowej przed wykonaniem wylewki.");
          hardConflict = true;
        } else {
          setNode("rk-fs-node-replace", "rk-fs-note-replace", "watch", "Sprawdź zakończenie");
          addUnique(warnings, "Nie potwierdzono zabezpieczenia końca peszla przed zaprawą.");
          addUnique(next, "Skontroluj i udokumentuj zakończenie rury osłonowej.");
        }
      } else if (replaceable === "no") {
        setNode("rk-fs-node-replace", "rk-fs-note-replace", "stop", "Sonda zablokowana");
        addUnique(warnings, "Peszel jest obecny, ale próba wykazała brak możliwości wysunięcia sondy.");
        addUnique(next, "Usuń spłaszczenie lub zbyt ciasny łuk przed zamknięciem podłogi.");
        hardConflict = true;
      } else {
        setNode("rk-fs-node-replace", "rk-fs-note-replace", "watch", "Brak próby wymiany");
        addUnique(warnings, "Nie wykonano praktycznej próby wysunięcia i ponownego wsunięcia sondy.");
        addUnique(next, "Przeprowadź próbę drożności przed wylewką.");
      }
    } else if (conduit === "no") {
      setNode("rk-fs-node-replace", "rk-fs-note-replace", "stop", "Brak rury osłonowej");
      addUnique(warnings, "Sonda bez osobnej osłony może stać się niewymienna po związaniu jastrychu.");
      addUnique(next, "Przed wylewką zaprojektuj drożną rurę osłonową dopasowaną do sondy.");
      hardConflict = true;
    } else {
      setNode("rk-fs-node-replace", "rk-fs-note-replace", "watch", "Osłona niepotwierdzona");
      addUnique(warnings, "Nie wiadomo, czy sonda jest w wymiennej rurze osłonowej.");
      addUnique(next, "Sprawdź trasę sondy na zdjęciach, rysunku lub w miejscu montażu.");
    }

    if (control === "unknown") {
      setNode("rk-fs-node-reaction", "rk-fs-note-reaction", "watch", "Tryb nieustalony");
      addUnique(warnings, "Nie wiadomo, jak regulator wykorzysta odczyt sondy.");
      addUnique(next, "Ustal tryb sterowania oraz reakcję po przekroczeniu progu.");
    } else {
      var reactionNote = "Tryb określony";
      if (control === "air") { reactionNote = "Regulacja powietrzna"; }
      if (control === "mixed") { reactionNote = "Tryb mieszany"; }
      if (control === "floor") { reactionNote = "Regulacja podłogowa"; }
      if (control === "weather") { reactionNote = "Pogodówka + strefa"; }
      setNode("rk-fs-node-reaction", "rk-fs-note-reaction", "ready", reactionNote);
      addUnique(ready, "Określono tryb regulatora: " + reactionNote.toLowerCase() + ".");
    }

    if (role === "floor") {
      if (control !== "floor") {
        addUnique(warnings, "Oczekujesz regulacji według podłogi, ale wybrany tryb regulatora nie jest trybem podłogowym.");
        addUnique(next, "Sprawdź, czy regulator może prowadzić strefę bezpośrednio według sondy podłogowej.");
      }
    }
    if (role === "max") {
      if (control === "air") {
        addUnique(warnings, "Przy regulacji powietrznej upewnij się, że limit podłogi jest rzeczywiście aktywny jako funkcja dodatkowa.");
      }
    }
    if (role === "min") {
      if (control === "air") {
        addUnique(warnings, "Utrzymanie minimum podłogi może podnosić temperaturę pomieszczenia ponad potrzebę czujnika powietrza.");
      }
    }

    if (zone === "multiple") {
      addUnique(warnings, "Jedna sonda ma reprezentować kilka pomieszczeń; lokalne zyski i okładziny mogą dawać różne warunki.");
      addUnique(next, "Rozważ rozdzielenie pomieszczeń na niezależne strefy pomiarowe.");
    }
    if (loops === "multiple") {
      addUnique(ready, "Wiele pętli może należeć do jednej strefy, ale sonda pozostaje pomiarem punktowym.");
    }

    if (symptom === "high") {
      addUnique(warnings, "Wysoki odczyt może wynikać z położenia nad rurą, złej krzywej, korekty regulatora lub rzeczywistej temperatury lokalnej.");
      addUnique(next, "Porównaj konfigurację i charakterystykę, a następnie zweryfikuj położenie sondy.");
    } else if (symptom === "low") {
      addUnique(warnings, "Niski odczyt może wynikać z położenia poza polem grzewczym, braku przepływu, złej krzywej lub wychłodzonego punktu.");
      addUnique(next, "Sprawdź stan strefy, przepływ i temperaturę wody przed korektą wskazania.");
    } else if (symptom === "error") {
      addUnique(warnings, "Komunikat przerwy lub zwarcia wymaga kontroli przewodu, zacisków i rezystancji po odłączeniu od wejścia.");
      addUnique(next, "Odłącz bezpiecznie sondę i porównaj pomiar z instrukcją; w razie braku kwalifikacji wezwij instalatora.");
    } else if (symptom === "intermittent") {
      addUnique(warnings, "Niestabilny odczyt wskazuje na możliwe luźne połączenie, uszkodzenie przewodu, zakłócenia lub usterkę wejścia.");
      addUnique(next, "Sprawdź zaciski i trasę przewodu, nie rozkuwając podłogi przed potwierdzeniem obwodu.");
    } else if (symptom === "noresponse") {
      addUnique(warnings, "Brak reakcji sondy może oznaczać błędne miejsce, dużą bezwładność, pusty peszel albo niewłaściwie przypisane wejście.");
      addUnique(next, "Potwierdź czas obserwacji, przypisanie wejścia i położenie końcówki.");
    }

    updateScene(placement, conduit);

    if (ready.length === 0) { ready.push("Brak elementów potwierdzonych dokumentacją lub próbą."); }
    if (warnings.length === 0) { warnings.push("Audyt nie wykrył oczywistych braków w podanych odpowiedziach; nadal obowiązuje weryfikacja projektu i dokumentacji."); }
    if (next.length === 0) { next.push("Zapisz model sondy, ustawienia regulatora i lokalizację w dokumentacji powykonawczej."); }

    var status = byId("rk-fs-status");
    status.classList.remove("is-good", "is-watch", "is-stop");
    var criticalReady = [role !== "unknown", control !== "unknown", compat === "yes", curve === "full", conduit === "yes", replaceable === "yes", placement === "between", sealed === "yes"].every(function (item) { return item; });

    if (stage === "screed") {
      if (hardConflict) {
        status.classList.add("is-stop");
        byId("rk-fs-status-icon").textContent = "!";
        byId("rk-fs-status-title").textContent = "Zatrzymaj prace przed wylewką";
        byId("rk-fs-status-text").textContent = "W odpowiedziach jest element, który po przykryciu może stać się trudny albo niemożliwy do poprawienia bez ingerencji w podłogę.";
      } else if (criticalReady) {
        status.classList.add("is-good");
        byId("rk-fs-status-icon").textContent = "✓";
        byId("rk-fs-status-title").textContent = "Dane są gotowe do końcowej kontroli";
        byId("rk-fs-status-text").textContent = "Kluczowe elementy zostały potwierdzone. Przed wylewką udokumentuj położenie i wykonaj końcową próbę działania.";
      } else {
        status.classList.add("is-watch");
        byId("rk-fs-status-icon").textContent = "?";
        byId("rk-fs-status-title").textContent = "Uzupełnij braki przed wylewką";
        byId("rk-fs-status-text").textContent = "Nie wykryto jednoznacznej kolizji, ale część decyzji nie ma jeszcze potwierdzenia.";
      }
    } else if (criticalReady) {
      status.classList.add("is-good");
      byId("rk-fs-status-icon").textContent = "✓";
      byId("rk-fs-status-title").textContent = "Koncepcja ma komplet kluczowych danych";
      byId("rk-fs-status-text").textContent = "Wskazane odpowiedzi tworzą spójny zestaw do weryfikacji z projektem i instrukcjami konkretnych urządzeń.";
    } else {
      status.classList.add("is-watch");
      byId("rk-fs-status-icon").textContent = "?";
      byId("rk-fs-status-title").textContent = hardConflict ? "Koncepcja wymaga korekty" : "Koncepcja wymaga uzupełnienia";
      byId("rk-fs-status-text").textContent = stage === "existing" ? "W gotowej podłodze zacznij od bezpiecznej diagnostyki regulatora, przewodu i dokumentacji przed ingerencją w posadzkę." : "Uzupełnij wskazane dane, zanim wybierzesz sondę i zamkniesz jej trasę w podłodze.";
    }

    renderList("rk-fs-ready-list", ready);
    renderList("rk-fs-warning-list", warnings);
    renderList("rk-fs-next-list", next);
  }

  byId("rk-fs-run").addEventListener("click", runAudit);
  root.querySelectorAll("select").forEach(function (field) {
    field.addEventListener("change", runAudit);
  });
  runAudit();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">Czujnik podłogowy w ogrzewaniu podłogowym – dobór, montaż i diagnostyka.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Siłowniki termoelektryczne na rozdzielaczu – NC/NO, 24 V czy 230 V?</title>
		<link>https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 22 Jan 2026 08:46:44 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Inteligentny dom]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[energooszczędne ogrzewanie]]></category>
		<category><![CDATA[instalacje co]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz ogrzewania]]></category>
		<category><![CDATA[siłowniki termoelektryczne]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<category><![CDATA[termostat pokojowy]]></category>
		<category><![CDATA[zawory rozdzielacza]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3265</guid>

					<description><![CDATA[<p>W nowoczesnych instalacjach grzewczych liczy się nie tylko źródło ciepła, ale precyzja jego dystrybucji. Siłowniki termoelektryczne na rozdzielaczach są cichymi strażnikami komfortu, które decydują, kiedy i gdzie ciepło faktycznie trafia do podłogi lub grzejnika. Ten artykuł pokazuje, jak działają te niepozorne elementy, jakie mają parametry techniczne, gdzie są niezastąpione i dlaczego ich właściwy dobór jest kluczowy dla efektywności energetycznej całego systemu grzewczego – od małych domów po rozbudowane instalacje strefowe.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki termoelektryczne na rozdzielaczu – NC/NO, 24 V czy 230 V?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-act-guide {
    --rk-act-navy: #123247;
    --rk-act-navy-deep: #0b2536;
    --rk-act-teal: #0e7787;
    --rk-act-cyan: #5fdef0;
    --rk-act-orange: #ff7a21;
    --rk-act-green: #248c68;
    --rk-act-red: #c64b48;
    --rk-act-amber: #b77812;
    --rk-act-ink: #173246;
    --rk-act-muted: #5d7180;
    --rk-act-line: #d7e1e7;
    --rk-act-soft: #f3f7f9;
    --rk-act-white: #ffffff;
    --rk-act-shadow: 0 18px 48px rgba(13, 43, 60, 0.12);
    color: var(--rk-act-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    overflow-x: hidden;
  }

  #rk-act-guide,
  #rk-act-guide *,
  #rk-act-guide *::before,
  #rk-act-guide *::after {
    box-sizing: border-box;
  }

  #rk-act-guide .rk-act-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
  }

  #rk-act-guide a {
    color: #087a9f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
  }

  #rk-act-guide a:hover {
    color: #055d79;
  }

  #rk-act-guide p,
  #rk-act-guide ul,
  #rk-act-guide ol {
    margin: 0 0 1.1rem;
  }

  #rk-act-guide strong {
    color: inherit;
  }

  #rk-act-guide .rk-act-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 78px);
    border-radius: 32px;
    background:
      radial-gradient(circle at 90% 112%, rgba(95, 222, 240, 0.16) 0 150px, transparent 151px),
      radial-gradient(circle at 90% 112%, transparent 0 205px, rgba(95, 222, 240, 0.09) 206px 275px, transparent 276px),
      linear-gradient(115deg, #122f43 0%, #123c4f 56%, #0d5b63 100%);
    color: #ffffff;
    box-shadow: var(--rk-act-shadow);
  }

  #rk-act-guide .rk-act-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -120px;
    bottom: -180px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: rgba(255, 122, 33, 0.10);
    filter: blur(2px);
  }

  #rk-act-guide .rk-act-hero-inner {
    position: relative;
    z-index: 1;
  }

  #rk-act-guide .rk-act-kicker,
  #rk-act-guide .rk-act-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--rk-act-orange);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-act-guide .rk-act-kicker::before,
  #rk-act-guide .rk-act-eyebrow::before {
    content: "";
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
  }

  #rk-act-guide .rk-act-hero-title {
    max-width: 1110px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.55rem, 6.1vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
  }

  #rk-act-guide .rk-act-hero-title span {
    color: var(--rk-act-cyan);
  }

  #rk-act-guide .rk-act-hero-lead {
    max-width: 1050px;
    margin: 30px 0 0;
    color: #eef9fc;
    font-size: clamp(1.05rem, 2vw, 1.34rem);
    line-height: 1.62;
  }

  #rk-act-guide .rk-act-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 28px 0 0;
  }

  #rk-act-guide .rk-act-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 17px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-act-guide .rk-act-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 34px 0 0;
    color: #e5f0f4;
    font-size: 0.85rem;
    font-weight: 700;
  }

  #rk-act-guide .rk-act-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 38px;
  }

  #rk-act-guide .rk-act-hero-metric {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
    color: #eff9fb;
    backdrop-filter: blur(5px);
  }

  #rk-act-guide .rk-act-hero-metric b {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-size: 1.02rem;
    line-height: 1.3;
  }

  #rk-act-guide .rk-act-hero-metric span {
    display: block;
    color: #e2f1f5;
    font-size: 0.88rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
    padding: 22px;
    border: 1px solid var(--rk-act-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 50, 71, 0.07);
  }

  #rk-act-guide .rk-act-shortcuts-label {
    display: block;
    flex-basis: 100%;
    color: var(--rk-act-navy);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-act-guide .rk-act-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #cbd9e1;
    border-radius: 999px;
    background: var(--rk-act-soft);
    color: var(--rk-act-navy);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-act-guide .rk-act-shortcuts a:hover {
    border-color: var(--rk-act-teal);
    background: #e8f6f8;
    color: #075f6b;
  }

  #rk-act-guide .rk-act-section,
  #rk-act-guide .rk-act-author {
    margin: 24px 0;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid var(--rk-act-line);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 42px rgba(18, 50, 71, 0.07);
    scroll-margin-top: 28px;
  }

  #rk-act-guide .rk-act-section-soft {
    background: var(--rk-act-soft);
  }

  #rk-act-guide .rk-act-section-dark {
    border-color: #234c61;
    background:
      radial-gradient(circle at 105% 100%, rgba(95, 222, 240, 0.12) 0 190px, transparent 191px),
      linear-gradient(135deg, #102d40, #0e4854);
    color: #eff8fb;
  }

  #rk-act-guide .rk-act-section-dark .rk-act-section-title,
  #rk-act-guide .rk-act-section-dark h3,
  #rk-act-guide .rk-act-section-dark strong {
    color: #ffffff;
  }

  #rk-act-guide .rk-act-section-dark .rk-act-lead,
  #rk-act-guide .rk-act-section-dark p,
  #rk-act-guide .rk-act-section-dark li {
    color: #e3f0f4;
  }

  #rk-act-guide .rk-act-section-title,
  #rk-act-guide .rk-act-author-title {
    max-width: 1010px;
    margin: 0 0 18px;
    color: var(--rk-act-navy);
    font-size: clamp(1.8rem, 3.7vw, 3.05rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-wrap: balance;
  }

  #rk-act-guide .rk-act-lead {
    max-width: 1040px;
    color: #314c5e;
    font-size: 1.08rem;
    line-height: 1.75;
  }

  #rk-act-guide .rk-act-answer {
    margin: 24px 0;
    padding: 26px 28px;
    border-left: 6px solid var(--rk-act-cyan);
    border-radius: 8px 20px 20px 8px;
    background: var(--rk-act-navy);
    color: #ffffff;
  }

  #rk-act-guide .rk-act-answer-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-act-cyan);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-act-guide .rk-act-answer p {
    margin: 0;
    color: #ffffff;
    font-size: 1.06rem;
  }

  #rk-act-guide .rk-act-grid-2,
  #rk-act-guide .rk-act-grid-3,
  #rk-act-guide .rk-act-grid-4 {
    display: grid;
    gap: 18px;
    margin: 24px 0;
  }

  #rk-act-guide .rk-act-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-act-guide .rk-act-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-act-guide .rk-act-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-act-guide .rk-act-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-act-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-act-ink);
  }

  #rk-act-guide .rk-act-card h3 {
    margin: 0 0 10px;
    color: var(--rk-act-navy);
    font-size: 1.06rem;
    line-height: 1.35;
  }

  #rk-act-guide .rk-act-card p,
  #rk-act-guide .rk-act-card li {
    color: #3e5869;
    font-size: 0.92rem;
    line-height: 1.65;
  }

  #rk-act-guide .rk-act-card p:last-child,
  #rk-act-guide .rk-act-card ul:last-child {
    margin-bottom: 0;
  }

  #rk-act-guide .rk-act-card-number {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: #dff8fb;
    color: #086678;
    font-size: 0.85rem;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-callout,
  #rk-act-guide .rk-act-note,
  #rk-act-guide .rk-act-warning {
    margin: 24px 0 0;
    padding: 20px 22px;
    border-radius: 16px;
    color: #274657;
    font-size: 0.94rem;
    line-height: 1.68;
  }

  #rk-act-guide .rk-act-callout {
    border: 1px solid #b9e7ed;
    background: #eaf9fb;
  }

  #rk-act-guide .rk-act-note {
    border: 1px solid #d7e1e7;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-warning {
    border: 1px solid #efd0a1;
    background: #fff6e9;
  }

  #rk-act-guide .rk-act-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #aacbd2;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 66, 78, 0.12);
  }

  #rk-act-guide .rk-act-tool-head {
    padding: 28px clamp(22px, 4vw, 40px);
    background: linear-gradient(125deg, var(--rk-act-navy), #0d5962);
    color: #ffffff;
  }

  #rk-act-guide .rk-act-tool-head .rk-act-eyebrow {
    color: #ffad73;
  }

  #rk-act-guide .rk-act-tool-head h3 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2.05rem);
    line-height: 1.2;
  }

  #rk-act-guide .rk-act-tool-head p {
    max-width: 920px;
    margin: 0;
    color: #e9f7fa;
    font-size: 0.94rem;
  }

  #rk-act-guide .rk-act-tool-body {
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-act-guide .rk-act-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
  }

  #rk-act-guide .rk-act-control {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-act-line);
    border-radius: 18px;
    background: var(--rk-act-soft);
  }

  #rk-act-guide .rk-act-control-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-act-navy);
    font-size: 0.84rem;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-segmented {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #rk-act-guide .rk-act-segmented button {
    min-width: 0;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #bfd0d9;
    border-radius: 13px;
    background: #ffffff;
    color: var(--rk-act-navy);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }

  #rk-act-guide .rk-act-segmented button:hover {
    transform: translateY(-1px);
    border-color: var(--rk-act-teal);
  }

  #rk-act-guide .rk-act-segmented button[aria-pressed="true"] {
    border-color: var(--rk-act-navy);
    background: var(--rk-act-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-act-guide .rk-act-state-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #b9e7ed;
    border-radius: 18px;
    background: #eaf9fb;
  }

  #rk-act-guide .rk-act-state-dot {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--rk-act-green);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-state-summary[data-flow="closed"] {
    border-color: #e5c4c2;
    background: #fff1f0;
  }

  #rk-act-guide .rk-act-state-summary[data-flow="closed"] .rk-act-state-dot {
    background: var(--rk-act-red);
  }

  #rk-act-guide .rk-act-state-summary strong {
    display: block;
    margin-bottom: 2px;
    color: var(--rk-act-navy);
    font-size: 1.05rem;
  }

  #rk-act-guide .rk-act-state-summary p {
    margin: 0;
    color: #405c6d;
    font-size: 0.91rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-flow-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  #rk-act-guide .rk-act-flow-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-act-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-act-ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }

  #rk-act-guide .rk-act-flow-step.is-active {
    border-color: #64c7d2;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-act-guide .rk-act-flow-step.is-rest {
    background: #f7f9fa;
  }

  #rk-act-guide .rk-act-flow-top {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
  }

  #rk-act-guide .rk-act-flow-icon {
    display: grid;
    flex: 0 0 52px;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #e6f7f9;
    color: #087083;
  }

  #rk-act-guide .rk-act-flow-icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }

  #rk-act-guide .rk-act-flow-number {
    display: block;
    color: var(--rk-act-orange);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-act-guide .rk-act-flow-step h4 {
    margin: 2px 0 0;
    color: var(--rk-act-navy);
    font-size: 1rem;
    line-height: 1.25;
  }

  #rk-act-guide .rk-act-flow-value {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dff6e9;
    color: #176a4e;
    font-size: 0.77rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-act-guide .rk-act-flow-value.is-off {
    background: #eef1f3;
    color: #5c6e79;
  }

  #rk-act-guide .rk-act-flow-value.is-closed {
    background: #fde7e6;
    color: #9c3936;
  }

  #rk-act-guide .rk-act-flow-copy {
    margin: 0;
    color: #405b6c;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-act-guide .rk-act-tool-disclaimer {
    margin: 22px 0 0;
    padding: 17px 19px;
    border: 1px solid #efd0a1;
    border-radius: 15px;
    background: #fff6e9;
    color: #5f4a2c;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-act-guide .rk-act-compare-table,
  #rk-act-guide .rk-act-diagnostic-table {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-act-line);
    border-radius: 20px;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-table-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rk-act-line);
  }

  #rk-act-guide .rk-act-table-row:first-child {
    border-top: 0;
  }

  #rk-act-guide .rk-act-table-row > div {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--rk-act-line);
    color: #3b5667;
    font-size: 0.89rem;
    line-height: 1.58;
  }

  #rk-act-guide .rk-act-table-row > div:first-child {
    border-left: 0;
  }

  #rk-act-guide .rk-act-table-head {
    background: var(--rk-act-navy);
  }

  #rk-act-guide .rk-act-table-head > div {
    color: #ffffff;
    font-weight: 850;
  }

  #rk-act-guide .rk-act-table-label {
    background: #f2f6f8;
    color: var(--rk-act-navy) !important;
    font-weight: 850;
  }

  #rk-act-guide .rk-act-diagnostic-table .rk-act-table-row {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) minmax(0, 1.15fr);
  }

  #rk-act-guide .rk-act-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-act-guide .rk-act-spec {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-act-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-spec-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #daf4f7;
    color: #0b7180;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-spec strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-act-navy);
    font-size: 0.94rem;
  }

  #rk-act-guide .rk-act-spec span {
    display: block;
    color: #4b6474;
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-chain {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin: 26px 0;
  }

  #rk-act-guide .rk-act-chain-item {
    position: relative;
    min-width: 0;
    padding: 19px 15px;
    border: 1px solid var(--rk-act-line);
    border-radius: 17px;
    background: #ffffff;
    color: var(--rk-act-ink);
    text-align: center;
  }

  #rk-act-guide .rk-act-chain-item::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 18px;
    color: var(--rk-act-orange);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

  #rk-act-guide .rk-act-chain-item:last-child::after {
    display: none;
  }

  #rk-act-guide .rk-act-chain-item strong {
    display: block;
    color: var(--rk-act-navy);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-act-guide .rk-act-chain-item span {
    display: block;
    margin-top: 5px;
    color: #56707f;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-act-guide .rk-act-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    counter-reset: rk-act-step;
  }

  #rk-act-guide .rk-act-step {
    position: relative;
    min-width: 0;
    padding: 21px 21px 21px 67px;
    border: 1px solid var(--rk-act-line);
    border-radius: 19px;
    background: #ffffff;
    color: var(--rk-act-ink);
    counter-increment: rk-act-step;
  }

  #rk-act-guide .rk-act-step::before {
    content: counter(rk-act-step);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-act-navy);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-step h3 {
    margin: 0 0 7px;
    color: var(--rk-act-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-act-guide .rk-act-step p {
    margin: 0;
    color: #435e6f;
    font-size: 0.88rem;
    line-height: 1.6;
  }

  #rk-act-guide .rk-act-mistakes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-act-guide .rk-act-mistake {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    min-width: 0;
    padding: 19px;
    border: 1px solid #ead4d2;
    border-radius: 17px;
    background: #fff7f6;
  }

  #rk-act-guide .rk-act-mistake-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-act-red);
    color: #ffffff;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-mistake strong {
    color: #7e302e;
    font-size: 0.94rem;
  }

  #rk-act-guide .rk-act-mistake p {
    margin: 4px 0 0;
    color: #5f4d4c;
    font-size: 0.85rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-act-guide .rk-act-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-act-line);
    border-radius: 17px;
    background: #ffffff;
    color: #425d6e;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-checklist-item > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: #dff6e9;
    color: var(--rk-act-green);
    font-weight: 900;
  }

  #rk-act-guide .rk-act-checklist-item strong {
    color: var(--rk-act-navy);
    font-size: 0.92rem;
  }

  #rk-act-guide .rk-act-formula {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-act-guide .rk-act-formula-box {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 24px;
    border-radius: 20px;
    background: var(--rk-act-navy);
    color: #ffffff;
    text-align: center;
  }

  #rk-act-guide .rk-act-formula-box strong {
    display: block;
    color: var(--rk-act-cyan);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.25;
  }

  #rk-act-guide .rk-act-formula-box span {
    display: block;
    margin-top: 8px;
    color: #dcecf2;
    font-size: 0.82rem;
  }

  #rk-act-guide .rk-act-formula-copy {
    padding: 23px;
    border: 1px solid var(--rk-act-line);
    border-radius: 20px;
    background: #ffffff;
    color: #3f596a;
  }

  #rk-act-guide .rk-act-formula-copy h3 {
    margin: 0 0 9px;
    color: var(--rk-act-navy);
    font-size: 1.08rem;
  }

  #rk-act-guide .rk-act-formula-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-act-guide .rk-act-cta {
    margin: 32px 0 0;
    padding: clamp(27px, 4vw, 42px);
    border-radius: 24px;
    background:
      radial-gradient(circle at 100% 110%, rgba(95, 222, 240, 0.14) 0 130px, transparent 131px),
      linear-gradient(125deg, var(--rk-act-navy), #0b5761);
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(11, 45, 62, 0.18);
  }

  #rk-act-guide .rk-act-cta-title {
    max-width: 930px;
    margin: 0 0 12px;
    color: #ffffff;
    font-size: clamp(1.45rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.16;
  }

  #rk-act-guide .rk-act-cta p {
    max-width: 980px;
    margin-bottom: 20px;
    color: #e7f3f6;
  }

  #rk-act-guide .rk-act-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border: 2px solid var(--rk-act-orange);
    border-radius: 12px;
    background: var(--rk-act-orange);
    color: #ffffff !important;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(255, 122, 33, 0.22);
  }

  #rk-act-guide .rk-act-cta-button:hover {
    border-color: #ff9652;
    background: #ff9652;
    color: #ffffff !important;
  }

  #rk-act-guide .rk-act-link-disclosure {
    display: block;
    margin-top: 13px;
    color: #cfe1e6;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-act-guide .rk-act-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
  }

  #rk-act-guide .rk-act-source-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-act-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-source-card a {
    display: inline-block;
    color: var(--rk-act-navy);
    font-size: 0.93rem;
    font-weight: 900;
    line-height: 1.45;
  }

  #rk-act-guide .rk-act-source-card p {
    margin: 8px 0 0;
    color: #516a79;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-act-guide .rk-act-responsibility {
    margin-top: 20px;
    padding: 21px;
    border: 1px solid #d7e1e7;
    border-radius: 18px;
    background: #ffffff;
    color: #405a6b;
    font-size: 0.87rem;
    line-height: 1.62;
  }

  #rk-act-guide .rk-act-responsibility p:last-child {
    margin-bottom: 0;
  }

  #rk-act-guide .rk-act-faq details {
    overflow: hidden;
    margin: 12px 0;
    border: 1px solid var(--rk-act-line);
    border-radius: 16px;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-act-navy);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-act-guide .rk-act-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-act-guide .rk-act-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-act-teal);
    font-size: 1.4rem;
    font-weight: 700;
    transform: translateY(-50%);
  }

  #rk-act-guide .rk-act-faq details[open] summary::after {
    content: "−";
  }

  #rk-act-guide .rk-act-faq-answer {
    padding: 0 20px 18px;
    color: #415c6d;
    font-size: 0.9rem;
    line-height: 1.65;
  }

  #rk-act-guide .rk-act-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-act-guide .rk-act-author {
    background:
      radial-gradient(circle at 98% 100%, rgba(95, 222, 240, 0.12) 0 150px, transparent 151px),
      linear-gradient(130deg, #102d40, #113f4e);
    color: #eaf4f7;
  }

  #rk-act-guide .rk-act-author .rk-act-eyebrow {
    color: #ff9a57;
  }

  #rk-act-guide .rk-act-author-title {
    color: #ffffff;
  }

  #rk-act-guide .rk-act-author-layout {
    display: grid;
    grid-template-columns: minmax(210px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 25px;
  }

  #rk-act-guide .rk-act-author-side {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.07);
    text-align: center;
  }

  #rk-act-guide .rk-act-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 16px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: #ffffff;
  }

  #rk-act-guide .rk-act-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-act-guide .rk-act-author-name a {
    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 900;
  }

  #rk-act-guide .rk-act-author-role {
    margin: 7px 0 13px;
    color: #dbeaf0;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-act-guide .rk-act-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
  }

  #rk-act-guide .rk-act-author-social a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-act-guide .rk-act-author-main p {
    color: #dcecf1;
    font-size: 0.92rem;
  }

  #rk-act-guide .rk-act-author-main a {
    color: var(--rk-act-cyan);
  }

  #rk-act-guide .rk-act-author-quote {
    margin-bottom: 21px;
    padding: 22px;
    border-left: 5px solid var(--rk-act-cyan);
    border-radius: 7px 17px 17px 7px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.6;
  }

  #rk-act-guide .rk-act-author-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 20px;
  }

  #rk-act-guide .rk-act-author-fact {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.06);
    color: #d7e8ed;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-act-guide .rk-act-author-fact strong {
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 0.8rem;
  }

  @media (max-width: 1040px) {
    #rk-act-guide .rk-act-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-act-guide .rk-act-flow-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-act-guide .rk-act-chain {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-act-guide .rk-act-chain-item::after {
      display: none;
    }
  }

  @media (max-width: 820px) {
    #rk-act-guide {
      font-size: 17px;
    }

    #rk-act-guide .rk-act-hero {
      border-radius: 24px;
    }

    #rk-act-guide .rk-act-hero-metrics,
    #rk-act-guide .rk-act-grid-3,
    #rk-act-guide .rk-act-source-grid,
    #rk-act-guide .rk-act-author-facts {
      grid-template-columns: 1fr;
    }

    #rk-act-guide .rk-act-control-grid,
    #rk-act-guide .rk-act-formula,
    #rk-act-guide .rk-act-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-act-guide .rk-act-author-side {
      max-width: 430px;
    }
  }

  @media (max-width: 700px) {
    #rk-act-guide .rk-act-section,
    #rk-act-guide .rk-act-author {
      border-radius: 22px;
    }

    #rk-act-guide .rk-act-grid-2,
    #rk-act-guide .rk-act-grid-4,
    #rk-act-guide .rk-act-flow-grid,
    #rk-act-guide .rk-act-spec-grid,
    #rk-act-guide .rk-act-steps,
    #rk-act-guide .rk-act-mistakes,
    #rk-act-guide .rk-act-checklist,
    #rk-act-guide .rk-act-chain {
      grid-template-columns: 1fr;
    }

    #rk-act-guide .rk-act-table-row,
    #rk-act-guide .rk-act-diagnostic-table .rk-act-table-row {
      display: block;
      padding: 8px 0;
      border-top: 8px solid var(--rk-act-soft);
    }

    #rk-act-guide .rk-act-table-row:first-child {
      display: none;
    }

    #rk-act-guide .rk-act-table-row > div {
      display: grid;
      grid-template-columns: minmax(104px, 0.42fr) minmax(0, 1fr);
      gap: 10px;
      padding: 12px 15px;
      border: 0;
    }

    #rk-act-guide .rk-act-table-row > div::before {
      content: attr(data-label);
      color: var(--rk-act-navy);
      font-size: 0.76rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-act-guide .rk-act-table-label {
      background: #eef4f6;
    }
  }

  @media (max-width: 520px) {
    #rk-act-guide {
      font-size: 16px;
    }

    #rk-act-guide .rk-act-hero {
      padding: 34px 22px;
      border-radius: 20px;
    }

    #rk-act-guide .rk-act-hero-title {
      font-size: clamp(2.25rem, 12vw, 3.5rem);
      letter-spacing: -0.05em;
    }

    #rk-act-guide .rk-act-hero-lead {
      margin-top: 23px;
    }

    #rk-act-guide .rk-act-hero-tag {
      min-height: 38px;
      padding: 7px 12px;
      font-size: 0.75rem;
    }

    #rk-act-guide .rk-act-byline {
      display: grid;
      gap: 7px;
    }

    #rk-act-guide .rk-act-hero-metric {
      padding: 19px;
    }

    #rk-act-guide .rk-act-shortcuts {
      padding: 17px;
      border-radius: 18px;
    }

    #rk-act-guide .rk-act-shortcuts a {
      font-size: 0.72rem;
    }

    #rk-act-guide .rk-act-section,
    #rk-act-guide .rk-act-author {
      padding: 28px 19px;
    }

    #rk-act-guide .rk-act-answer,
    #rk-act-guide .rk-act-card,
    #rk-act-guide .rk-act-flow-step {
      padding: 20px;
    }

    #rk-act-guide .rk-act-tool-head,
    #rk-act-guide .rk-act-tool-body {
      padding: 22px 17px;
    }

    #rk-act-guide .rk-act-segmented {
      grid-template-columns: 1fr;
    }

    #rk-act-guide .rk-act-state-summary {
      grid-template-columns: 1fr;
    }

    #rk-act-guide .rk-act-state-dot {
      width: 44px;
      height: 44px;
    }

    #rk-act-guide .rk-act-step {
      padding: 66px 19px 19px;
    }

    #rk-act-guide .rk-act-step::before {
      top: 19px;
      left: 19px;
    }

    #rk-act-guide .rk-act-cta-button {
      width: 100%;
    }

    #rk-act-guide .rk-act-table-row > div {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media print {
    #rk-act-guide .rk-act-shortcuts,
    #rk-act-guide .rk-act-control-grid {
      display: none !important;
    }

    #rk-act-guide .rk-act-section,
    #rk-act-guide .rk-act-author,
    #rk-act-guide .rk-act-hero {
      break-inside: avoid;
      box-shadow: none;
    }

    #rk-act-guide .rk-act-faq details {
      break-inside: avoid;
    }

    #rk-act-guide .rk-act-faq details:not([open]) .rk-act-faq-answer {
      display: block;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-act-guide *,
    #rk-act-guide *::before,
    #rk-act-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-act-guide" aria-labelledby="rk-act-visual-title">
  <div class="rk-act-shell">
    <header class="rk-act-hero">
      <div class="rk-act-hero-inner">
        <span class="rk-act-kicker">Automatyka rozdzielacza · aktualizacja 2026</span>
        <div class="rk-act-hero-title" id="rk-act-visual-title">Siłownik na rozdzielaczu — <span>dobór bez zgadywania</span></div>
        <p class="rk-act-hero-lead">Siłownik termoelektryczny nie dobiera temperatury wody i nie równoważy instalacji. Otwiera albo zamyka zawór na sygnał automatyki. Żeby działał prawidłowo, musi pasować jednocześnie do zaworu, listwy sterującej oraz przyjętego sposobu regulacji całego układu.</p>

        <div class="rk-act-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-act-hero-tag">NC i NO</span>
          <span class="rk-act-hero-tag">24 V i 230 V</span>
          <span class="rk-act-hero-tag">gwint i adapter</span>
          <span class="rk-act-hero-tag">listwa sterująca</span>
          <span class="rk-act-hero-tag">pompa ciepła</span>
        </div>

        <div class="rk-act-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 23 minuty</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-act-hero-metrics" aria-label="Trzy poziomy prawidłowego doboru">
          <div class="rk-act-hero-metric">
            <b>Sterowanie</b>
            <span>NC lub NO, właściwe napięcie, zgodny rodzaj prądu i odpowiednie wyjście listwy.</span>
          </div>
          <div class="rk-act-hero-metric">
            <b>Połączenie mechaniczne</b>
            <span>Gwint to dopiero początek: liczą się zawór, adapter, wymiar zamknięcia, zakres ruchu i siła.</span>
          </div>
          <div class="rk-act-hero-metric">
            <b>Praca całej instalacji</b>
            <span>Zamykanie stref zmienia przepływ, dlatego trzeba sprawdzić pompę, źródło ciepła i aktywny zład.</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-act-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-act-shortcuts-label">Na skróty</span>
      <a href="#rk-act-answer">Krótka odpowiedź</a>
      <a href="#rk-act-chain">Jak działa układ</a>
      <a href="#rk-act-graphic">Grafika interaktywna</a>
      <a href="#rk-act-nc-no">NC czy NO</a>
      <a href="#rk-act-voltage">24 V czy 230 V</a>
      <a href="#rk-act-mechanics">Dobór do zaworu</a>
      <a href="#rk-act-electrics">Zgodność elektryczna</a>
      <a href="#rk-act-zones">Termostat i kilka siłowników</a>
      <a href="#rk-act-hydraulics">Zamykanie stref</a>
      <a href="#rk-act-use-case">Kiedy stosować</a>
      <a href="#rk-act-installation">Montaż i uruchomienie</a>
      <a href="#rk-act-diagnostics">Diagnostyka</a>
      <a href="#rk-act-test">Bezpieczny test</a>
      <a href="#rk-act-energy">Zużycie energii</a>
      <a href="#rk-act-checklist">Lista kontrolna</a>
      <a href="#rk-act-conclusions">Wnioski</a>
      <a href="#rk-act-sources">Źródła</a>
      <a href="#rk-act-faq">FAQ</a>
      <a href="#rk-act-author">Autor</a>
    </nav>

    <section class="rk-act-section" id="rk-act-answer">
      <span class="rk-act-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-act-section-title">Czym jest siłownik termoelektryczny i czego nie robi?</h2>
      <div class="rk-act-answer">
        <span class="rk-act-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Siłownik termoelektryczny jest elementem wykonawczym automatyki: po otrzymaniu właściwego sygnału zmienia położenie zaworu obsługującego konkretną pętlę lub grupę pętli. Nie ustala temperatury zasilania, nie oblicza przepływu i nie naprawia błędnego równoważenia hydraulicznego.</strong></p>
      </div>

      <div class="rk-act-grid-4">
        <article class="rk-act-card">
          <span class="rk-act-card-number">1</span>
          <h3>Termostat mierzy</h3>
          <p>Regulator porównuje temperaturę pomieszczenia z nastawą i przekazuje informację o zapotrzebowaniu. Szerzej opisuje to poradnik o <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostacie w ogrzewaniu podłogowym</a>.</p>
        </article>
        <article class="rk-act-card">
          <span class="rk-act-card-number">2</span>
          <h3>Listwa interpretuje</h3>
          <p>Listwa zasila odpowiednie wyjście albo przełącza sygnał zgodnie z logiką systemu. Może też sterować pompą i przekazywać żądanie do źródła ciepła.</p>
        </article>
        <article class="rk-act-card">
          <span class="rk-act-card-number">3</span>
          <h3>Siłownik wykonuje</h3>
          <p>Element termoelektryczny potrzebuje czasu na zmianę położenia. Rzeczywisty czas, kierunek ruchu i pobór mocy wynikają z dokumentacji urządzenia.</p>
        </article>
        <article class="rk-act-card">
          <span class="rk-act-card-number">4</span>
          <h3>Zawór zmienia przepływ</h3>
          <p>Położenie zaworu decyduje, czy dana gałąź może przewodzić wodę. Warto wcześniej zrozumieć, jak działa <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz podłogówki</a>.</p>
        </article>
      </div>

      <div class="rk-act-callout"><strong>Najważniejsze rozróżnienie:</strong> dobór siłownika jest zadaniem produktowym i elektrycznym, natomiast dobór przepływów, nastaw, pompy oraz strategii pracy źródła ciepła jest zadaniem projektowym. Oba poziomy muszą do siebie pasować.</div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-chain">
      <span class="rk-act-eyebrow">Pięć elementów jednej decyzji</span>
      <h2 class="rk-act-section-title">Jak współpracują termostat, listwa, siłownik i zawór?</h2>
      <p class="rk-act-lead">W typowej automatyce dwustanowej informacja przechodzi przez cały łańcuch. Problem w dowolnym miejscu może wyglądać jak awaria siłownika, chociaż przyczyną jest regulator, przewód, wyjście listwy, adapter lub sam zawór.</p>

      <div class="rk-act-chain" aria-label="Łańcuch sterowania strefą ogrzewania">
        <div class="rk-act-chain-item"><strong>Termostat</strong><span>wykrywa żądanie</span></div>
        <div class="rk-act-chain-item"><strong>Listwa</strong><span>realizuje logikę</span></div>
        <div class="rk-act-chain-item"><strong>Siłownik</strong><span>zmienia położenie</span></div>
        <div class="rk-act-chain-item"><strong>Zawór</strong><span>otwiera lub zamyka gałąź</span></div>
        <div class="rk-act-chain-item"><strong>Pętla</strong><span>otrzymuje przepływ</span></div>
      </div>

      <div class="rk-act-grid-3">
        <article class="rk-act-card">
          <h3>Sygnał nie zawsze jest napięciem</h3>
          <p>Niektóre regulatory udostępniają styk bezpotencjałowy, a inne podają napięcie. Nie wolno traktować tych wyjść zamiennie. Schemat połączeń musi pochodzić z dokumentacji konkretnego systemu.</p>
        </article>
        <article class="rk-act-card">
          <h3>Stan zaworu nie zmienia się natychmiast</h3>
          <p>Siłownik termoelektryczny pracuje wolniej niż elektrozawór. Wskaźnik położenia, jeżeli występuje, należy oceniać dopiero po czasie podanym w karcie urządzenia.</p>
        </article>
        <article class="rk-act-card">
          <h3>Przepływ wymaga różnicy ciśnień</h3>
          <p>Otwarty zawór jedynie umożliwia przepływ. Jego wartość zależy od warunków hydraulicznych, nastawy i pracy pompy. Odczyt kontroluje się na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrze rozdzielacza</a>.</p>
        </article>
      </div>
    </section>

    <section class="rk-act-section" id="rk-act-graphic">
      <span class="rk-act-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-act-section-title">Od sygnału termostatu do przepływu w pętli</h2>
      <p class="rk-act-lead">Wybierz typ siłownika i stan zapotrzebowania. Moduł pokazuje logikę całego łańcucha, ale celowo nie symuluje minut, niutonów ani milimetrów — te wartości są zależne od konkretnego produktu i zaworu.</p>

      <div class="rk-act-tool" id="rk-act-flow-tool">
        <div class="rk-act-tool-head">
          <span class="rk-act-eyebrow">Schemat dwóch stanów</span>
          <h3>Co powinno wydarzyć się w prawidłowo skonfigurowanym układzie?</h3>
          <p>Dla typu NO automatyka musi mieć właściwą logikę wyjścia: otwarcie przy żądaniu ciepła wymaga innego stanu zasilania siłownika niż w popularnym wariancie NC.</p>
        </div>

        <div class="rk-act-tool-body">
          <div class="rk-act-control-grid">
            <div class="rk-act-control">
              <span class="rk-act-control-label">Typ siłownika po zaniku zasilania</span>
              <div class="rk-act-segmented" role="group" aria-label="Wybierz typ siłownika">
                <button type="button" data-rk-act-type="NC" aria-pressed="true">NC — zamknięty</button>
                <button type="button" data-rk-act-type="NO" aria-pressed="false">NO — otwarty</button>
              </div>
            </div>
            <div class="rk-act-control">
              <span class="rk-act-control-label">Stan pomieszczenia</span>
              <div class="rk-act-segmented" role="group" aria-label="Wybierz stan zapotrzebowania">
                <button type="button" data-rk-act-demand="off" aria-pressed="true">Brak żądania</button>
                <button type="button" data-rk-act-demand="on" aria-pressed="false">Żądanie grzania</button>
              </div>
            </div>
          </div>

          <div class="rk-act-state-summary" id="rk-act-state-summary" data-flow="closed" aria-live="polite">
            <div class="rk-act-state-dot" id="rk-act-state-dot">×</div>
            <div>
              <strong id="rk-act-state-title">NC bez żądania: pętla zamknięta</strong>
              <p id="rk-act-state-copy">W typowym układzie NC listwa nie zasila siłownika, a prawidłowo dobrany komplet siłownik–zawór pozostaje zamknięty.</p>
            </div>
          </div>

          <div class="rk-act-flow-grid">
            <article class="rk-act-flow-step is-rest" data-rk-act-step="0">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><rect x="5" y="4" width="22" height="24" rx="4"></rect><path d="M10 10h12M10 16h7M11 23h10"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 1</span><h4>Termostat</h4></div>
              </div>
              <span class="rk-act-flow-value is-off" data-rk-act-value="">Brak żądania</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">Temperatura strefy nie wymaga uruchomienia ogrzewania.</p>
            </article>

            <article class="rk-act-flow-step is-rest" data-rk-act-step="1">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><rect x="3" y="7" width="26" height="18" rx="3"></rect><path d="M8 12h3v3H8zM15 12h3v3h-3zM22 12h3v3h-3zM8 20h16"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 2</span><h4>Listwa sterująca</h4></div>
              </div>
              <span class="rk-act-flow-value is-off" data-rk-act-value="">Wyjście nieaktywne</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">W typowej konfiguracji NC na siłownik nie jest podawane napięcie.</p>
            </article>

            <article class="rk-act-flow-step is-rest" data-rk-act-step="2">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><path d="M18 3 8 18h8l-2 11 10-16h-8z"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 3</span><h4>Zasilanie</h4></div>
              </div>
              <span class="rk-act-flow-value is-off" data-rk-act-value="">Wyłączone</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">Na zaciskach siłownika nie powinno być napięcia roboczego.</p>
            </article>

            <article class="rk-act-flow-step is-rest" data-rk-act-step="3">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><path d="M10 25V11a6 6 0 0 1 12 0v14"></path><path d="M8 25h16M12 6h8M16 11v8"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 4</span><h4>Siłownik</h4></div>
              </div>
              <span class="rk-act-flow-value is-off" data-rk-act-value="">Stan spoczynkowy</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">Element termoelektryczny pozostaje w stanie bez zasilania.</p>
            </article>

            <article class="rk-act-flow-step is-rest" data-rk-act-step="4">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><path d="M4 12h8l4 4-4 4H4M28 12h-8l-4 4 4 4h8"></path><path d="M16 5v22"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 5</span><h4>Zawór</h4></div>
              </div>
              <span class="rk-act-flow-value is-closed" data-rk-act-value="">Zamknięty</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">Prawidłowo dobrany zestaw NC odcina gałąź po zakończeniu przejścia.</p>
            </article>

            <article class="rk-act-flow-step is-rest" data-rk-act-step="5">
              <div class="rk-act-flow-top">
                <div class="rk-act-flow-icon" aria-hidden="true">
                  <svg viewBox="0 0 32 32"><path d="M5 16h20"></path><path d="m20 10 6 6-6 6"></path><path d="M6 9v14"></path></svg>
                </div>
                <div><span class="rk-act-flow-number">Etap 6</span><h4>Przepływ w pętli</h4></div>
              </div>
              <span class="rk-act-flow-value is-closed" data-rk-act-value="">Zatrzymany</span>
              <p class="rk-act-flow-copy" data-rk-act-copy="">Przy zamkniętym zaworze dana pętla nie powinna otrzymywać przepływu.</p>
            </article>
          </div>

          <div class="rk-act-tool-disclaimer"><strong>Granica narzędzia:</strong> grafika pokazuje stan docelowy prawidłowo skonfigurowanej automatyki. Rzeczywista zmiana nie jest natychmiastowa. Czas otwierania i zamykania, kierunek ruchu mechanizmu, skok, siła, pobór mocy oraz zachowanie funkcji First Open trzeba odczytać z aktualnej dokumentacji siłownika i zaworu.</div>
        </div>
      </div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-nc-no">
      <span class="rk-act-eyebrow">Stan po zaniku zasilania</span>
      <h2 class="rk-act-section-title">NC czy NO — który siłownik wybrać?</h2>
      <p class="rk-act-lead">Oznaczenie NC lub NO opisuje docelowy stan prawidłowo zamontowanego zestawu po zaniku zasilania. Nie mówi nic o napięciu, gwincie ani zgodności mechanicznej.</p>

      <div class="rk-act-compare-table" role="table" aria-label="Porównanie siłowników NC i NO">
        <div class="rk-act-table-row rk-act-table-head" role="row">
          <div role="columnheader">Kryterium</div>
          <div role="columnheader">NC — normalnie zamknięty</div>
          <div role="columnheader">NO — normalnie otwarty</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Kryterium" role="rowheader">Stan bez zasilania</div>
          <div data-label="NC" role="cell">Kompatybilny zestaw zawór–siłownik dąży do zamknięcia gałęzi.</div>
          <div data-label="NO" role="cell">Kompatybilny zestaw zawór–siłownik dąży do otwarcia gałęzi.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Kryterium" role="rowheader">Typowe użycie</div>
          <div data-label="NC" role="cell">Popularny wariant regulacji strefowej: brak żądania oznacza brak zasilania i zamkniętą pętlę.</div>
          <div data-label="NO" role="cell">Stosowany tam, gdzie po zaniku napięcia przepływ ma pozostać możliwy albo wymaga tego logika danego systemu.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Kryterium" role="rowheader">Logika sterowania</div>
          <div data-label="NC" role="cell">Żądanie ciepła zwykle aktywuje wyjście i po czasie otwiera zawór.</div>
          <div data-label="NO" role="cell">Układ musi umieć odwrócić logikę albo posiadać właściwe styki i konfigurację dla siłownika NO.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Kryterium" role="rowheader">Pobór energii</div>
          <div data-label="NC" role="cell">Energia jest zwykle pobierana podczas utrzymywania stanu otwartego.</div>
          <div data-label="NO" role="cell">Energia jest zwykle pobierana podczas utrzymywania stanu zamkniętego.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Kryterium" role="rowheader">Awaria zasilania</div>
          <div data-label="NC" role="cell">Strefa docelowo się zamknie, co może zmniejszyć czynny przepływ całej instalacji.</div>
          <div data-label="NO" role="cell">Strefa docelowo pozostanie otwarta, co może być pożądane w wybranej strategii awaryjnej.</div>
        </div>
      </div>

      <div class="rk-act-warning"><strong>Nie wybieraj NO wyłącznie po to, aby „chronić pompę ciepła”.</strong> Minimalny przepływ, aktywny zład, sygnały sterujące i zachowanie po zaniku napięcia trzeba rozwiązać dla całego układu. Typ siłownika nie zastępuje projektu hydrauliki ani wymagań producenta źródła.</div>
    </section>

    <section class="rk-act-section" id="rk-act-voltage">
      <span class="rk-act-eyebrow">Zgodność z listwą i regulatorem</span>
      <h2 class="rk-act-section-title">Siłownik 24 V czy 230 V — co naprawdę trzeba sprawdzić?</h2>
      <p class="rk-act-lead">Napis „24 V” albo „230 V” nie wystarcza do wykonania połączenia. Trzeba sprawdzić pełne oznaczenie zasilania, schemat listwy, rodzaj wyjścia i dopuszczalne obciążenie.</p>

      <div class="rk-act-compare-table" role="table" aria-label="Porównanie systemu 24 V i 230 V">
        <div class="rk-act-table-row rk-act-table-head" role="row">
          <div role="columnheader">Obszar</div>
          <div role="columnheader">24 V</div>
          <div role="columnheader">230 V</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Obszar" role="rowheader">Pełne oznaczenie</div>
          <div data-label="24 V" role="cell">Może być wymagane 24 V AC, 24 V DC albo urządzenie dopuszczające oba warianty. Należy sprawdzić etykietę i kartę techniczną.</div>
          <div data-label="230 V" role="cell">Najczęściej 230 V AC, ale połączenie nadal musi być zgodne z listwą, zabezpieczeniem i schematem instalacji.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Obszar" role="rowheader">Źródło zasilania</div>
          <div data-label="24 V" role="cell">Wymaga odpowiedniego zasilacza lub transformatora oraz zgodności jego parametrów z listwą i odbiornikami.</div>
          <div data-label="230 V" role="cell">Może być zasilany z dedykowanej listwy 230 V, ale wymaga prawidłowego wykonania ochrony i instalacji elektrycznej.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Obszar" role="rowheader">Obciążenie wyjść</div>
          <div data-label="24 V" role="cell">Trzeba sprawdzić moc zasilacza, limit całej listwy i limit pojedynczego kanału.</div>
          <div data-label="230 V" role="cell">Trzeba sprawdzić dopuszczalny prąd wyjścia oraz liczbę urządzeń, które producent listwy pozwala podłączyć równolegle.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Obszar" role="rowheader">Decyzja</div>
          <div data-label="24 V" role="cell">Sensowny wybór, gdy cały system regulacji został zaprojektowany w tej wersji napięciowej.</div>
          <div data-label="230 V" role="cell">Sensowny wybór, gdy termostaty, listwa, przewody i zabezpieczenia tworzą zgodny system 230 V.</div>
        </div>
      </div>

      <div class="rk-act-note"><strong>A co z siłownikami 0–10 V?</strong> To osobna grupa urządzeń przeznaczonych do sterowania proporcjonalnego. Wymagają zgodnego regulatora, właściwego sygnału sterującego i sprawdzenia całej sekwencji pracy. Nie należy podłączać ich jak typowego siłownika dwustanowego tylko dlatego, że obudowa i przyłącze mechaniczne wyglądają podobnie.</div>
      <div class="rk-act-callout"><strong>Ważne:</strong> regulator z wyjściem bezpotencjałowym jedynie przełącza styk. Nie oznacza to automatycznie, że zasila siłownik. Z kolei wyjście napięciowe nie może być traktowane jak dowolny „suchy kontakt”. Schemat producenta ma pierwszeństwo przed ogólnym rysunkiem z internetu.</div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-mechanics">
      <span class="rk-act-eyebrow">Gwint nie wystarcza</span>
      <h2 class="rk-act-section-title">Jak sprawdzić zgodność siłownika z zaworem rozdzielacza?</h2>
      <p class="rk-act-lead">M30 × 1,5 jest często spotykanym przyłączem, lecz zgodna średnica i skok gwintu nie potwierdzają jeszcze, że siłownik prawidłowo otworzy i zamknie konkretną wkładkę zaworową.</p>

      <div class="rk-act-spec-grid">
        <div class="rk-act-spec"><span class="rk-act-spec-mark">1</span><div><strong>Model zaworu lub rozdzielacza</strong><span>Zidentyfikuj dokładny typ wkładki, a nie tylko markę albo wygląd belki.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">2</span><div><strong>Gwint i skok gwintu</strong><span>Sprawdź pełne oznaczenie, np. M30 × 1,5. Nie nakręcaj elementów siłą.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">3</span><div><strong>Adapter</strong><span>Adapter musi być wskazany dla konkretnej kombinacji. Sama możliwość nakręcenia nie oznacza prawidłowej geometrii.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">4</span><div><strong>Wymiar zamknięcia</strong><span>Porównaj wymagane położenie trzpienia zaworu z zakresem pracy zestawu montażowego.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">5</span><div><strong>Zakres ruchu i siła</strong><span>Nie przyjmuj jednej minimalnej wartości. Parametry muszą odpowiadać zastosowanemu zaworowi.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">6</span><div><strong>Pozycja montażowa</strong><span>Sprawdź dopuszczalne ułożenie siłownika oraz wymagania dotyczące temperatury i wilgotności otoczenia.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">7</span><div><strong>First Open</strong><span>Jeżeli urządzenie ma funkcję pierwszego otwarcia, sprawdź sposób jej zwolnienia i znaczenie wskaźnika.</span></div></div>
        <div class="rk-act-spec"><span class="rk-act-spec-mark">8</span><div><strong>Tabela kompatybilności</strong><span>Najpewniejszą podstawą jest pisemne zestawienie zgodności albo dobrany przez dostawcę komplet.</span></div></div>
      </div>

      <div class="rk-act-warning"><strong>Pomiar suwmiarką nie zastępuje dokumentacji.</strong> Pozwala odróżnić część przyłączy, ale nie pokazuje wymiaru zamknięcia, tolerancji adaptera ani tego, czy po pełnym cyklu zawór osiągnie oba położenia krańcowe.</div>
      <p>Jeżeli problem dotyczy już zmontowanej szafki, ocenę warto rozpocząć od budowy <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">konkretnego rozdzielacza i jego wkładek zaworowych</a>, a dopiero potem dobierać akcesoria.</p>
    </section>

    <section class="rk-act-section" id="rk-act-electrics">
      <span class="rk-act-eyebrow">Dane z kart urządzeń</span>
      <h2 class="rk-act-section-title">Jak sprawdzić zgodność elektryczną siłownika i listwy?</h2>
      <p class="rk-act-lead">Nie tworzymy uniwersalnego kalkulatora zasilacza, ponieważ o poprawnym doborze decydują limity konkretnego systemu. Poniższa kolejność kontroli jest bezpieczniejsza niż mnożenie przypadkowej wartości prądu przez liczbę pętli.</p>

      <div class="rk-act-steps">
        <article class="rk-act-step">
          <h3>Odczytaj pełne dane siłownika</h3>
          <p>Zapisz napięcie, AC lub DC, moc albo prąd znamionowy, parametry uruchomienia, typ NC/NO, liczbę przewodów i funkcje dodatkowe.</p>
        </article>
        <article class="rk-act-step">
          <h3>Sprawdź rodzaj wyjścia</h3>
          <p>Ustal, czy listwa podaje napięcie, czy udostępnia styk oraz jaki jest schemat zacisków dla wybranej wersji.</p>
        </article>
        <article class="rk-act-step">
          <h3>Sprawdź limit kanału</h3>
          <p>Dokumentacja powinna określać maksymalną liczbę siłowników albo dopuszczalne obciążenie jednego wyjścia.</p>
        </article>
        <article class="rk-act-step">
          <h3>Sprawdź limit całej listwy</h3>
          <p>Nawet jeśli pojedynczy kanał jest poprawny, suma odbiorników i obciążenie zasilacza mogą przekroczyć limit urządzenia.</p>
        </article>
        <article class="rk-act-step">
          <h3>Uwzględnij sposób załączania</h3>
          <p>Jeżeli producent podaje prąd początkowy lub ograniczenia jednoczesnego startu, trzeba zastosować jego metodę doboru.</p>
        </article>
        <article class="rk-act-step">
          <h3>Zweryfikuj ochronę i przewody</h3>
          <p>Przekrój, zabezpieczenie, sposób prowadzenia oraz rozdział obwodów muszą odpowiadać dokumentacji i przepisom instalacyjnym.</p>
        </article>
      </div>

      <div class="rk-act-callout"><strong>Dlaczego nie podajemy „zapas 20% i gotowe”?</strong> Zasilacz może mieć inne ograniczenia krótkotrwałe niż ciągłe, a listwa może limitować liczbę urządzeń niezależnie od sumarycznej mocy. Dobór trzeba potwierdzić w dokumentacji wszystkich współpracujących elementów.</div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-zones">
      <span class="rk-act-eyebrow">Mapowanie pomieszczeń i pętli</span>
      <h2 class="rk-act-section-title">Czy jeden termostat może sterować kilkoma siłownikami?</h2>
      <div class="rk-act-answer">
        <span class="rk-act-answer-label">Odpowiedź</span>
        <p><strong>Tak, jeżeli kilka pętli obsługuje tę samą strefę, a listwa dopuszcza odpowiednią liczbę siłowników na przypisanym wyjściu. Trzeba jednocześnie potwierdzić obciążenie elektryczne, sposób połączenia oraz prawidłowe przypisanie przewodów do pomieszczenia.</strong></p>
      </div>

      <div class="rk-act-grid-3">
        <article class="rk-act-card">
          <h3>Jedna strefa, kilka pętli</h3>
          <p>Duży salon może mieć kilka obwodów. Wspólny regulator jest logiczny, gdy wszystkie pętle mają utrzymywać tę samą temperaturę i zostały prawidłowo zrównoważone.</p>
        </article>
        <article class="rk-act-card">
          <h3>Etykiety po obu stronach przewodu</h3>
          <p>Opis powinien łączyć termostat, kanał listwy, siłownik, numer pętli i pomieszczenie. Sama pamięć wykonawcy nie jest dokumentacją powykonawczą.</p>
        </article>
        <article class="rk-act-card">
          <h3>Test sekwencyjny</h3>
          <p>Każdą strefę uruchamia się osobno i kontroluje zmianę wskaźnika, zaworu oraz przepływu. Dzięki temu zamiana salonu z sypialnią wychodzi przed sezonem grzewczym.</p>
        </article>
      </div>

      <p>Więcej o konsekwencjach podziału budynku opisuje analiza, <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">czy sterowanie strefowe ogrzewaniem ma sens</a>. Osobno warto sprawdzić, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">kiedy regulatory podłogówki pomagają, a kiedy komplikują instalację</a>.</p>
    </section>

    <section class="rk-act-section rk-act-section-dark" id="rk-act-hydraulics">
      <span class="rk-act-eyebrow">Od pojedynczej pętli do całego systemu</span>
      <h2 class="rk-act-section-title">Co dzieje się, gdy kilka siłowników zamyka strefy jednocześnie?</h2>
      <p class="rk-act-lead">Zamykanie kolejnych gałęzi zmienia opór sieci i punkt pracy pompy. Dostępny przepływ przez pozostające otwarte pętle może się zmienić, a czynna pojemność wodna widziana przez źródło ciepła może się zmniejszyć.</p>

      <div class="rk-act-grid-3">
        <article class="rk-act-card">
          <h3>Pompa obiegowa</h3>
          <p>Tryb regulacji i nastawa wysokości podnoszenia powinny wynikać z charakterystyki instalacji. Nie istnieje jeden obowiązkowy tryb dla każdego rozdzielacza. Zobacz, jak dobiera się <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową do podłogówki</a>.</p>
        </article>
        <article class="rk-act-card">
          <h3>Minimalny przepływ źródła</h3>
          <p>Pompa ciepła lub inne urządzenie może wymagać określonego przepływu w różnych trybach pracy. Wartość trzeba odczytać dla konkretnego modelu i schematu hydraulicznego.</p>
        </article>
        <article class="rk-act-card">
          <h3>Aktywny zład</h3>
          <p>Zamknięte pętle nie uczestniczą w odbiorze tak samo jak otwarte. Znaczenie pojemności wodnej wyjaśnia poradnik: <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">większy czy mniejszy zład wody</a>.</p>
        </article>
        <article class="rk-act-card">
          <h3>Równoważenie</h3>
          <p>Automatyka nie zastępuje przepływów projektowych wynikających między innymi z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążenia cieplnego pomieszczeń</a>. Najpierw instalacja wymaga nastaw przy zdefiniowanych warunkach, później siłowniki realizują regulację stref.</p>
        </article>
        <article class="rk-act-card">
          <h3>Bufor lub sprzęgło</h3>
          <p>Nie są automatycznie konieczne tylko dlatego, że pojawiły się siłowniki. Decyzja zależy od źródła, przepływów, pojemności, obiegów i sterowania. Porównaj rolę <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora</a> oraz <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a>.</p>
        </article>
        <article class="rk-act-card">
          <h3>Źródło ciepła</h3>
          <p>Sygnał zapotrzebowania, opóźnienia listwy, praca pompy i minimalne warunki źródła muszą tworzyć jedną sekwencję. Szczególnie ważne jest to w <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie podłogówki z pompą ciepła</a>.</p>
        </article>
      </div>

      <div><strong>Nie zakładaj automatycznie obejścia albo bufora.</strong> Najpierw trzeba ustalić, ile pętli może pozostać czynnych, jakie są przepływy, jak zachowuje się pompa i czego wymaga źródło ciepła. Dopiero potem wybiera się architekturę hydrauliczną.</div>
      <p>Do pełnej oceny trzeba również sprawdzić opory magistrali oraz <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a>. Siłownik nie skompensuje zbyt małej średnicy, nieprawidłowych nastaw ani braku wymaganej dyspozycji ciśnienia.</p>

      <aside class="rk-act-cta" aria-label="Projekt podłogówki z automatyką strefową">
        <div class="rk-act-cta-title">Siłownik zamyka jedną pętlę. Projekt musi przewidzieć, co stanie się z całą instalacją.</div>
        <p>Przypisanie pętli do pomieszczeń, przepływy projektowe, opory hydrauliczne, sterowanie pompą oraz wymagania źródła ciepła powinny zostać sprawdzone jako jeden układ. Sam zakup pasujących siłowników tego nie rozwiązuje.</p>
        <a class="rk-act-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z poprawną automatyką strefową</a>
        <small class="rk-act-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-act-section" id="rk-act-use-case">
      <span class="rk-act-eyebrow">Automatyka ma realizować cel</span>
      <h2 class="rk-act-section-title">Kiedy siłowniki mają sens, a kiedy można ich nie stosować?</h2>
      <p class="rk-act-lead">Siłowniki nie są obowiązkowym dodatkiem do każdego rozdzielacza. Ich sens zależy od sposobu użytkowania budynku, zysków ciepła, podziału pomieszczeń i strategii sterowania źródłem.</p>

      <div class="rk-act-compare-table" role="table" aria-label="Kiedy siłowniki są przydatne, a kiedy należy zachować ostrożność">
        <div class="rk-act-table-row rk-act-table-head" role="row">
          <div role="columnheader">Sytuacja</div>
          <div role="columnheader">Siłowniki mogą wnieść wartość</div>
          <div role="columnheader">Potrzebna ostrożność lub prostsza regulacja</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Sytuacja" role="rowheader">Różne harmonogramy</div>
          <div data-label="Wartość" role="cell">Oddzielne strefy używane w innych godzinach mogą wymagać niezależnego ograniczania dopływu ciepła.</div>
          <div data-label="Ostrożność" role="cell">Podłogówka ma dużą bezwładność, więc agresywne obniżenia krótkookresowe mogą nie przynieść oczekiwanego efektu.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Sytuacja" role="rowheader">Zyski słoneczne lub kominek</div>
          <div data-label="Wartość" role="cell">Regulacja może ograniczyć przegrzewanie pomieszczenia z dużymi, okresowymi zyskami.</div>
          <div data-label="Ostrożność" role="cell">Reakcja posadzki i siłownika nie jest natychmiastowa; sama automatyka nie usuwa skutków źle dobranej mocy.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Sytuacja" role="rowheader">Otwarty plan domu</div>
          <div data-label="Wartość" role="cell">Sterowanie może być potrzebne dla wyodrębnionych pomieszczeń o innych warunkach.</div>
          <div data-label="Ostrożność" role="cell">W jednej otwartej strefie z pogodową regulacją temperatury wody wiele osobnych termostatów może niewiele poprawić.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Sytuacja" role="rowheader">Pompa ciepła</div>
          <div data-label="Wartość" role="cell">Siłowniki mogą ograniczać wybrane strefy, jeśli projekt zabezpiecza wymagany przepływ i prawidłową sekwencję sterowania.</div>
          <div data-label="Ostrożność" role="cell">Masowe zamykanie pętli może pogarszać warunki pracy źródła, jeśli hydraulika nie została do tego przygotowana.</div>
        </div>
      </div>

      <p>Podstawą pozostaje temperatura wody dobrana do budynku, a nie do samego termostatu. Praktyczne tło daje poradnik o <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulatorze pogodowym</a> i analiza <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperatury ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-installation">
      <span class="rk-act-eyebrow">Od dokumentacji do odbioru</span>
      <h2 class="rk-act-section-title">Montaż i uruchomienie siłowników krok po kroku</h2>
      <p class="rk-act-lead">Poniższa kolejność nie zastępuje instrukcji urządzeń ani pracy elektryka. Porządkuje odbiór automatyki tak, aby błędu nie szukać dopiero po zamknięciu szafki.</p>

      <div class="rk-act-steps">
        <article class="rk-act-step"><h3>Oznacz pomieszczenia i pętle</h3><p>Połącz numer obwodu z pomieszczeniem, termostatem, kanałem listwy i przewodem siłownika.</p></article>
        <article class="rk-act-step"><h3>Zidentyfikuj zawory</h3><p>Zapisz model rozdzielacza lub wkładki oraz dobierz potwierdzony adapter i kompatybilny siłownik.</p></article>
        <article class="rk-act-step"><h3>Sprawdź stan mechaniczny</h3><p>Trzpień zaworu powinien pracować zgodnie z wymaganiami producenta. Nie próbuj naprawiać oporu siłą siłownika.</p></article>
        <article class="rk-act-step"><h3>Potwierdź napięcie i logikę</h3><p>Porównaj tabliczkę siłownika, typ NC/NO, AC/DC, schemat termostatu i parametry wyjść listwy.</p></article>
        <article class="rk-act-step"><h3>Wykonaj połączenia elektryczne</h3><p>Pracę na obwodach wykonuje osoba z odpowiednimi kwalifikacjami, przy odłączonym i zabezpieczonym zasilaniu.</p></article>
        <article class="rk-act-step"><h3>Ustaw przepływy projektowe</h3><p>Równoważenie wykonuje się według dokumentacji, przy zdefiniowanym stanie zaworów. Automatyka nie zastępuje nastaw.</p></article>
        <article class="rk-act-step"><h3>Uruchom strefy pojedynczo</h3><p>Wymuś żądanie w jednym pomieszczeniu i po wymaganym czasie sprawdź właściwy wskaźnik, zawór oraz rotametr.</p></article>
        <article class="rk-act-step"><h3>Sprawdź zachowanie całego układu</h3><p>Przetestuj kilka stref, pompę i źródło ciepła. Udokumentuj wyniki oraz końcowe przypisanie kanałów.</p></article>
      </div>

      <div class="rk-act-warning"><strong>Funkcja First Open:</strong> część nowych siłowników NC jest fabrycznie utrzymywana w pozycji ułatwiającej napełnianie lub rozruch. Sposób zwolnienia blokady oraz znaczenie wskaźnika zależą od modelu. Przed diagnozą „nie zamyka” sprawdź instrukcję konkretnego urządzenia.</div>
      <p>Pełny odbiór warto połączyć z kontrolą typowych <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędów montażowych ogrzewania podłogowego</a> oraz dokumentacją tego, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt</a>.</p>
    </section>

    <section class="rk-act-section" id="rk-act-diagnostics">
      <span class="rk-act-eyebrow">Objaw nie jest jeszcze diagnozą</span>
      <h2 class="rk-act-section-title">Najczęstsze usterki siłowników i kolejność diagnostyki</h2>
      <p class="rk-act-lead">Ten sam objaw może mieć kilka przyczyn. Zaczynamy od dokumentacji, przypisania stref i oględzin, a dopiero później przechodzimy do pomiarów elektrycznych wykonywanych przez uprawnioną osobę.</p>

      <div class="rk-act-diagnostic-table" role="table" aria-label="Diagnostyka siłowników termoelektrycznych">
        <div class="rk-act-table-row rk-act-table-head" role="row">
          <div role="columnheader">Objaw</div>
          <div role="columnheader">Możliwe przyczyny</div>
          <div role="columnheader">Bezpieczna kolejność kontroli</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Siłownik nie zmienia położenia</div>
          <div data-label="Możliwe przyczyny" role="cell">Brak żądania, niewłaściwy kanał, brak zasilania, błędne napięcie, uszkodzone wyjście, zbyt krótki czas obserwacji albo awaria siłownika.</div>
          <div data-label="Kontrola" role="cell">Sprawdź żądanie i mapowanie, odczekaj czas z instrukcji, oceń wskaźnik. Pomiary zacisków zleć elektrykowi.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Siłownik reaguje, ale brak przepływu</div>
          <div data-label="Możliwe przyczyny" role="cell">Zablokowany zawór, niewłaściwy adapter, zamknięta nastawa, zapowietrzenie, zatrzymana pompa albo brak wymaganej różnicy ciśnień.</div>
          <div data-label="Kontrola" role="cell">Sprawdź zawór i montaż, później rotametr, pracę pompy i stan instalacji. Objawy powietrza opisuje poradnik o <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">zapowietrzeniu podłogówki</a>.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Pętla nie zamyka się</div>
          <div data-label="Możliwe przyczyny" role="cell">Niewłaściwy typ NC/NO, aktywna funkcja pierwszego otwarcia, zły adapter, niepełny zakres ruchu, problem wkładki albo stale aktywne wyjście.</div>
          <div data-label="Kontrola" role="cell">Porównaj model z tabelą zgodności, sprawdź stan wyjścia i instrukcję First Open, a następnie funkcję zaworu.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Grzeje inne pomieszczenie</div>
          <div data-label="Możliwe przyczyny" role="cell">Zamienione przewody siłowników, błędne przypisanie termostatu albo nieprawidłowo opisana pętla.</div>
          <div data-label="Kontrola" role="cell">Uruchom jedną strefę, sprawdź kanał listwy, wskaźnik siłownika i właściwy rotametr. Popraw etykiety na obu końcach.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Listwa wyłącza się lub zgłasza błąd</div>
          <div data-label="Możliwe przyczyny" role="cell">Przeciążenie kanału lub zasilacza, zwarcie przewodu, pomieszane napięcia, uszkodzony odbiornik albo niewłaściwe zabezpieczenie.</div>
          <div data-label="Kontrola" role="cell">Odłącz zasilanie i zleć sprawdzenie schematu, obciążeń, izolacji przewodów oraz kolejnych odbiorników wykwalifikowanej osobie.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Instalacja szumi po zamknięciu stref</div>
          <div data-label="Możliwe przyczyny" role="cell">Wzrost różnicy ciśnień, nieprawidłowa nastawa pompy, błędne równoważenie albo nieodpowiednia architektura hydrauliczna.</div>
          <div data-label="Kontrola" role="cell">Porównaj aktywne przepływy i nastawę pompy z projektem. Nie koryguj problemu przypadkowym dławieniem pętli.</div>
        </div>
        <div class="rk-act-table-row" role="row">
          <div class="rk-act-table-label" data-label="Objaw" role="rowheader">Pompa ciepła zgłasza przepływ</div>
          <div data-label="Możliwe przyczyny" role="cell">Zbyt mało otwartych obiegów, brak koordynacji pompy i listwy, zanieczyszczenie, zapowietrzenie albo inne ograniczenie obiegu.</div>
          <div data-label="Kontrola" role="cell">Sprawdź wymagania konkretnej pompy ciepła, aktywne obiegi i schemat hydrauliczny. Nie wymuszaj otwarcia przypadkowej pętli jako stałej naprawy.</div>
        </div>
      </div>

      <div class="rk-act-callout"><strong>Podpowiedź serwisowa:</strong> zdjęcie etykiety siłownika, listwy i rozdzielacza, schemat przewodów, lista pomieszczeń oraz film z sekwencyjnego testu są zwykle bardziej przydatne niż informacja „siłownik jest ciepły”.</div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-test">
      <span class="rk-act-eyebrow">Bez zgadywania temperaturą obudowy</span>
      <h2 class="rk-act-section-title">Jak bezpiecznie sprawdzić, czy siłownik działa?</h2>
      <p class="rk-act-lead">Nie istnieje uniwersalna temperatura obudowy ani jeden wygląd wskaźnika potwierdzający działanie każdego modelu. Wiarygodny test łączy sygnał, czas, zmianę mechaniczną i przepływ.</p>

      <div class="rk-act-steps">
        <article class="rk-act-step"><h3>Ustal oczekiwany stan</h3><p>Sprawdź NC/NO, funkcję First Open i to, czy przy danym żądaniu listwa powinna zasilać wyjście.</p></article>
        <article class="rk-act-step"><h3>Wymuś jedną strefę</h3><p>Zmień nastawę termostatu tak, aby stan żądania był jednoznaczny. Nie uruchamiaj jednocześnie wszystkich pomieszczeń.</p></article>
        <article class="rk-act-step"><h3>Odczekaj czas z karty</h3><p>Pełna zmiana położenia może trwać kilka minut, lecz właściwy czas otwarcia i zamknięcia jest cechą konkretnego modelu.</p></article>
        <article class="rk-act-step"><h3>Sprawdź wskaźnik i zawór</h3><p>Zinterpretuj wskaźnik wyłącznie według instrukcji. Zweryfikuj, czy mechanizm nie jest zablokowany albo źle osadzony.</p></article>
        <article class="rk-act-step"><h3>Sprawdź przepływ</h3><p>Zmiana na rotametrze potwierdza efekt hydrauliczny, ale wymaga pracującej pompy i prawidłowych warunków instalacji.</p></article>
        <article class="rk-act-step"><h3>Zleć pomiary elektryczne</h3><p>Jeżeli stan mechaniczny się nie zmienia, osoba uprawniona sprawdza napięcie, ciągłość i wyjście zgodnie ze schematem.</p></article>
      </div>

      <div class="rk-act-warning"><strong>Nie podawaj napięcia „na próbę”, nie zwieraj przypadkowych zacisków i nie zamieniaj urządzeń 24 V z 230 V.</strong> Błędny test może uszkodzić siłownik, termostat, listwę albo stworzyć zagrożenie porażeniem.</div>
      <p>Jeżeli instalacja wymaga regularnej kontroli, połącz test automatyki z zakresem opisanym w poradniku o tym, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często serwisować ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rk-act-section" id="rk-act-energy">
      <span class="rk-act-eyebrow">Proste obliczenie, konkretne dane</span>
      <h2 class="rk-act-section-title">Ile energii zużywa siłownik termoelektryczny?</h2>
      <p class="rk-act-lead">Zużycie zależy od mocy konkretnego modelu, liczby godzin utrzymywania stanu zasilonego oraz liczby urządzeń. Nie potrzeba do tego osobnego kalkulatora — wystarczy jedno przejrzyste równanie.</p>

      <div class="rk-act-formula">
        <div class="rk-act-formula-box">
          <div>
            <strong>E = P × t ÷ 1000</strong>
            <span>E — energia [kWh], P — moc [W], t — czas zasilania [h]</span>
          </div>
        </div>
        <div class="rk-act-formula-copy">
          <h3>Przykład wyłącznie obliczeniowy</h3>
          <p>Jeżeli karta konkretnego siłownika podaje 2 W, a urządzenie jest zasilane średnio przez 12 godzin na dobę, miesięczne zużycie wyniesie:</p>
          <p><strong>2 W × 12 h × 30 dni ÷ 1000 = 0,72 kWh.</strong></p>
          <p>To nie jest typowa wartość dla każdego domu. Siłownik NC pobiera energię zwykle w innym stanie zaworu niż NO, a rzeczywisty czas załączenia zależy od regulacji i warunków budynku.</p>
        </div>
      </div>

      <div class="rk-act-callout"><strong>Nie myl mocy znamionowej z doborem wyjścia.</strong> Obliczenie energii eksploatacyjnej nie zastępuje weryfikacji prądu początkowego, obciążalności kanału, zasilacza ani maksymalnej liczby siłowników dopuszczonej przez producenta listwy.</div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-checklist">
      <span class="rk-act-eyebrow">Lista do sklepu, dla instalatora i na odbiór</span>
      <h2 class="rk-act-section-title">Co sprawdzić przed zakupem siłowników?</h2>
      <p class="rk-act-lead">Najlepiej kupować siłownik jako część zaprojektowanego systemu sterowania, a nie jako osobny element dopasowany jedynie po zdjęciu gwintu.</p>

      <div class="rk-act-checklist">
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>NC czy NO</strong><br>Jaki ma być stan zaworu bez zasilania i czy listwa obsługuje tę logikę?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Napięcie i rodzaj prądu</strong><br>Czy oznaczenie brzmi 24 V AC, 24 V DC, AC/DC czy 230 V AC?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Rodzaj wyjścia listwy</strong><br>Czy kanał podaje napięcie, czy przełącza styk bezpotencjałowy?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Obciążenie kanału</strong><br>Ile siłowników wolno podłączyć do jednego wyjścia według dokumentacji?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Obciążenie całego systemu</strong><br>Czy zasilacz i listwa obsłużą wszystkie odbiorniki i warunki uruchomienia?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Dokładny model zaworu</strong><br>Czy znany jest typ wkładki zastosowanej w rozdzielaczu?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Gwint lub adapter</strong><br>Czy kompatybilność zestawu została potwierdzona pisemnie?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Wymiar zamknięcia i zakres ruchu</strong><br>Czy mechanizm osiągnie oba wymagane położenia zaworu?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Siła działania</strong><br>Czy odpowiada wymaganiom zastosowanej wkładki, bez przyjmowania uniwersalnego minimum?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Czas otwierania i zamykania</strong><br>Jak długo trzeba czekać na zmianę i jak wpływa to na sekwencję sterowania?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Warunki środowiskowe</strong><br>Czy stopień ochrony, temperatura i pozycja montażu odpowiadają szafce?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>First Open i wskaźnik</strong><br>Jak rozpoznać stan urządzenia przed oraz po pierwszym uruchomieniu?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Mapowanie pętli</strong><br>Czy przewody, kanały, siłowniki i pomieszczenia mają wspólne oznaczenia?</div></div>
        <div class="rk-act-checklist-item"><span>✓</span><div><strong>Hydraulika po zamknięciu stref</strong><br>Czy projekt potwierdza przepływ, nastawę pompy, czynny zład i wymagania źródła?</div></div>
      </div>
    </section>

    <section class="rk-act-section" id="rk-act-conclusions">
      <span class="rk-act-eyebrow">Wnioski projektanta</span>
      <h2 class="rk-act-section-title">Jak dobrać siłownik termoelektryczny bez kosztownych skrótów?</h2>
      <p class="rk-act-lead">Dobry siłownik to nie urządzenie z największą siłą, najdłuższym skokiem albo najpopularniejszym gwintem. To element zgodny z konkretnym zaworem, listwą i strategią pracy instalacji.</p>

      <div class="rk-act-grid-3">
        <article class="rk-act-card">
          <h3>Najpierw zgodność produktu</h3>
          <p>Potwierdź NC/NO, napięcie, AC/DC, wyjścia listwy, model zaworu, adapter, wymiar zamknięcia i dopuszczalne obciążenie.</p>
        </article>
        <article class="rk-act-card">
          <h3>Później odbiór działania</h3>
          <p>Sprawdź kolejno termostat, kanał listwy, zmianę położenia, zawór, rotametr i prawidłowe przypisanie pomieszczeń.</p>
        </article>
        <article class="rk-act-card">
          <h3>Na końcu cały system</h3>
          <p>Zweryfikuj przepływy, pompę, aktywny zład, sygnał źródła i zachowanie układu przy jednoczesnym zamykaniu stref.</p>
        </article>
      </div>

      <div class="rk-act-answer">
        <span class="rk-act-answer-label">Reguła końcowa</span>
        <p><strong>Siłownik ma wykonywać decyzję automatyki, ale to projekt określa, czy decyzja pojedynczej strefy jest bezpieczna dla całej instalacji. Nie dobieraj elementu wykonawczego w oderwaniu od zaworu, listwy, pompy i źródła ciepła.</strong></p>
      </div>

      <div class="rk-act-cta">
        <div class="rk-act-cta-title">Zaprojektuj podłogówkę, hydraulikę i sterowanie jako jeden układ</div>
        <p>Projekt łączy obciążenia pomieszczeń, powierzchnie czynne, rozstaw rur, długości pętli, przepływy, opory, nastawy rozdzielacza oraz warunki pracy pompy i źródła ciepła. Dzięki temu automatyka nie jest przypadkowym dodatkiem montowanym po wykonaniu instalacji.</p>
        <a class="rk-act-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
        <small class="rk-act-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-act-section rk-act-section-soft" id="rk-act-sources">
      <span class="rk-act-eyebrow">Podstawa techniczna i granice poradnika</span>
      <h2 class="rk-act-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-act-lead">Normy i przepisy opisują wymagania dla systemów ogrzewania oraz automatycznych urządzeń elektrycznych. Nie ustanawiają jednego czasu otwarcia, gwintu, skoku, siły ani poboru prądu dla wszystkich siłowników. Parametry produktu należy każdorazowo sprawdzić w jego aktualnej dokumentacji.</p>

      <div class="rk-act-source-grid">
        <article class="rk-act-source-card">
          <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy systemów płaszczyznowych</a>
          <p>Oficjalna karta normy dotyczącej wyznaczania projektowej mocy wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</p>
        </article>
        <article class="rk-act-source-card">
          <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a>
          <p>Oficjalna karta normy opisującej metodę projektowania oraz wymiarowania wbudowanych wodnych systemów płaszczyznowych.</p>
        </article>
        <article class="rk-act-source-card">
          <a href="https://webstore.iec.ch/en/publication/66089" target="_blank" rel="nofollow noopener noreferrer">IEC 60730-1:2022 — automatyczne urządzenia sterujące</a>
          <p>Oficjalna karta wymagań ogólnych dotyczących konstrukcji, działania i badań automatycznych urządzeń elektrycznych.</p>
        </article>
        <article class="rk-act-source-card">
          <a href="https://eur-lex.europa.eu/eli/dir/2014/35/oj" target="_blank" rel="nofollow noopener noreferrer">Dyrektywa 2014/35/UE — bezpieczeństwo sprzętu elektrycznego</a>
          <p>Oficjalny tekst unijnych ram bezpieczeństwa dla sprzętu elektrycznego pracującego w określonych granicach napięcia.</p>
        </article>
      </div>

      <div class="rk-act-responsibility">
        <p><strong>Zakres odpowiedzialności:</strong> artykuł i grafika interaktywna mają charakter edukacyjny. Nie są projektem instalacji elektrycznej ani hydraulicznej, tabelą kompatybilności produktów, instrukcją pracy pod napięciem, ekspertyzą serwisową ani zgodą na połączenie dwóch dowolnych urządzeń. Obowiązują aktualne instrukcje siłownika, zaworu, rozdzielacza, termostatu, listwy, pompy i źródła ciepła oraz dokumentacja projektowa konkretnego budynku.</p>
        <p><strong>Bezpieczeństwo:</strong> montaż, pomiary i zmiany w instalacji elektrycznej powinny być wykonywane przez osoby posiadające wymagane kwalifikacje. Przed pracą należy odłączyć zasilanie, zabezpieczyć obwód przed przypadkowym załączeniem i potwierdzić brak napięcia zgodnie z właściwą procedurą.</p>
      </div>
    </section>

    <section class="rk-act-section" id="rk-act-faq">
      <span class="rk-act-eyebrow">Najczęstsze pytania inwestorów i wykonawców</span>
      <h2 class="rk-act-section-title">FAQ — siłowniki termoelektryczne na rozdzielaczu</h2>

      <div class="rk-act-faq">
        <details>
          <summary>Jak działa siłownik termoelektryczny na rozdzielaczu?</summary>
          <div class="rk-act-faq-answer"><p>Po otrzymaniu właściwego stanu zasilania element termoelektryczny stopniowo zmienia położenie mechanizmu współpracującego z zaworem. W efekcie zawór otwiera albo zamyka możliwość przepływu przez pętlę. Czas, kierunek ruchu i parametry mechaniczne zależą od konkretnego modelu.</p></div>
        </details>
        <details>
          <summary>Co oznacza NC na siłowniku?</summary>
          <div class="rk-act-faq-answer"><p>NC oznacza „normalnie zamknięty”. W prawidłowo dobranym zestawie po zaniku zasilania zawór docelowo przechodzi do stanu zamkniętego. Nie oznacza to, że każdy siłownik NC pasuje do każdego zaworu albo że wszystkie modele otwierają się w tym samym czasie.</p></div>
        </details>
        <details>
          <summary>Co oznacza NO na siłowniku?</summary>
          <div class="rk-act-faq-answer"><p>NO oznacza „normalnie otwarty”. Po zaniku zasilania kompatybilny zestaw dąży do otwarcia zaworu. Automatyka musi obsługiwać odpowiednią logikę, aby żądanie grzania i brak żądania powodowały oczekiwane stany pętli.</p></div>
        </details>
        <details>
          <summary>Czy siłownik 24 V działa zarówno na AC, jak i DC?</summary>
          <div class="rk-act-faq-answer"><p>Nie można tego zakładać. Dostępne są modele wymagające 24 V AC, 24 V DC albo dopuszczające oba warianty. Pełne oznaczenie na urządzeniu i w karcie technicznej musi odpowiadać listwie oraz zasilaczowi.</p></div>
        </details>
        <details>
          <summary>Czy M30 × 1,5 gwarantuje zgodność z rozdzielaczem?</summary>
          <div class="rk-act-faq-answer"><p>Nie. Zgodny gwint jest tylko jednym z warunków. Trzeba jeszcze potwierdzić adapter, geometrię wkładki, wymiar zamknięcia, zakres ruchu, siłę i dopuszczoną pozycję montażową. Najpewniejsza jest tabela kompatybilności konkretnego zestawu.</p></div>
        </details>
        <details>
          <summary>Co oznacza funkcja First Open?</summary>
          <div class="rk-act-faq-answer"><p>W wybranych siłownikach jest to fabryczny stan ułatwiający napełnianie, próbę lub pierwszy rozruch przed uruchomieniem automatyki. Sposób zwolnienia funkcji oraz zachowanie wskaźnika są zależne od modelu, dlatego trzeba stosować jego instrukcję.</p></div>
        </details>
        <details>
          <summary>Dlaczego siłownik jest ciepły, ale na rotametrze nie ma przepływu?</summary>
          <div class="rk-act-faq-answer"><p>Ciepła obudowa może wskazywać zasilanie elementu, ale nie potwierdza poprawnego otwarcia zaworu. Przyczyną może być zły adapter, zablokowana wkładka, First Open, zapowietrzenie, zamknięta nastawa, brak pracy pompy albo brak odpowiedniej różnicy ciśnień.</p></div>
        </details>
        <details>
          <summary>Ile siłowników można podłączyć do jednego termostatu?</summary>
          <div class="rk-act-faq-answer"><p>Nie ma jednej liczby dla wszystkich systemów. Decyduje sposób połączenia przez listwę, dopuszczalne obciążenie kanału, limit całej listwy, parametry zasilacza i dane konkretnych siłowników. Obowiązują ograniczenia podane przez producenta automatyki.</p></div>
        </details>
        <details>
          <summary>Czy siłowniki są konieczne przy pompie ciepła?</summary>
          <div class="rk-act-faq-answer"><p>Nie zawsze. Mogą być użyteczne w wybranych strefach, ale ich masowe zamykanie zmniejsza aktywny przepływ i zład. Projekt musi sprawdzić wymagania pompy ciepła, pompę obiegową, hydraulikę i sposób przekazywania żądania ciepła.</p></div>
        </details>
        <details>
          <summary>Ile prądu zużywa siłownik termoelektryczny?</summary>
          <div class="rk-act-faq-answer"><p>Zużycie oblicza się z mocy urządzenia i czasu zasilania. Przykładowo 2 W przez 12 godzin na dobę daje 0,72 kWh w ciągu 30 dni. Rzeczywisty wynik zależy od modelu, typu NC/NO, regulacji, pogody i sposobu użytkowania pomieszczeń.</p></div>
        </details>
      </div>
    </section>

    <section class="rk-act-author" id="rk-act-author">
      <span class="rk-act-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-act-author-title">Autor i weryfikacja merytoryczna</h2>

      <div class="rk-act-author-layout">
        <aside class="rk-act-author-side">
          <div class="rk-act-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 HVAC" width="400" height="400" loading="lazy" decoding="async">
          </div>
          <div class="rk-act-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-act-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-act-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>

        <div class="rk-act-author-main">
          <div class="rk-act-author-quote">„Siłownik jest ostatnim elementem łańcucha sterowania, ale jego zamknięcie zmienia warunki pracy całej instalacji. Dlatego automatykę trzeba sprawdzać razem z przepływami, pompą i źródłem ciepła.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W pracy projektowej łączy obciążenia pomieszczeń, powierzchnie czynne, temperaturę wody, rozstaw rur, długości pętli, przepływy, opory i strategię regulacji.</p>
          <p>Ten artykuł został zweryfikowany pod kątem rozdzielenia parametrów konkretnego produktu od wymagań projektowych. Usunięto uniwersalne wartości czasu, skoku, siły, prądu i pojemności, które bez wskazania modelu mogłyby tworzyć fałszywe poczucie pewności.</p>
          <p>Grafika interaktywna pokazuje logikę NC i NO w stanie docelowym. Nie jest symulatorem kompatybilności ani kalkulatorem elektrycznym. Jej zadaniem jest ułatwienie rozmowy z projektantem, instalatorem i elektrykiem.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>

          <div class="rk-act-author-facts">
            <div class="rk-act-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, hydraulika i automatyka strefowa</div>
            <div class="rk-act-author-fact"><strong>Metoda pracy</strong>obliczenia projektowe, dokumentacja urządzeń i odbiór działania układu</div>
            <div class="rk-act-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-act-guide");
  if (!root) {
    return;
  }

  var selectedType = "NC";
  var selectedDemand = "off";
  var typeButtons = root.querySelectorAll("[data-rk-act-type]");
  var demandButtons = root.querySelectorAll("[data-rk-act-demand]");
  var stepElements = root.querySelectorAll("[data-rk-act-step]");
  var summary = document.getElementById("rk-act-state-summary");
  var summaryDot = document.getElementById("rk-act-state-dot");
  var summaryTitle = document.getElementById("rk-act-state-title");
  var summaryCopy = document.getElementById("rk-act-state-copy");

  var states = {
    "NC_off": {
      flow: "closed",
      dot: "×",
      title: "NC bez żądania: pętla zamknięta",
      copy: "W typowym układzie NC listwa nie zasila siłownika, a prawidłowo dobrany komplet siłownik–zawór pozostaje zamknięty.",
      steps: [
        { value: "Brak żądania", tone: "off", copy: "Temperatura strefy nie wymaga uruchomienia ogrzewania.", active: false },
        { value: "Wyjście nieaktywne", tone: "off", copy: "W typowej konfiguracji NC na siłownik nie jest podawane napięcie.", active: false },
        { value: "Wyłączone", tone: "off", copy: "Na zaciskach siłownika nie powinno być napięcia roboczego.", active: false },
        { value: "Stan spoczynkowy", tone: "off", copy: "Element termoelektryczny pozostaje w stanie bez zasilania.", active: false },
        { value: "Zamknięty", tone: "closed", copy: "Prawidłowo dobrany zestaw NC odcina gałąź po zakończeniu przejścia.", active: true },
        { value: "Zatrzymany", tone: "closed", copy: "Przy zamkniętym zaworze dana pętla nie powinna otrzymywać przepływu.", active: true }
      ]
    },
    "NC_on": {
      flow: "open",
      dot: "✓",
      title: "NC z żądaniem: pętla przechodzi do otwarcia",
      copy: "Listwa zasila zgodny siłownik NC. Po czasie podanym przez producenta mechanizm powinien otworzyć zawór i umożliwić przepływ.",
      steps: [
        { value: "Żądanie grzania", tone: "on", copy: "Termostat zgłasza, że strefa potrzebuje dopływu ciepła.", active: true },
        { value: "Wyjście aktywne", tone: "on", copy: "Listwa uruchamia kanał przypisany do tej strefy.", active: true },
        { value: "Włączone", tone: "on", copy: "Na siłownik trafia właściwe napięcie o zgodnym rodzaju AC lub DC.", active: true },
        { value: "Zmiana położenia", tone: "on", copy: "Element termoelektryczny pracuje; pełny ruch wymaga czasu określonego w karcie.", active: true },
        { value: "Otwarty po czasie", tone: "on", copy: "Po zakończeniu przejścia kompatybilny zestaw umożliwia przepływ.", active: true },
        { value: "Możliwy", tone: "on", copy: "Wartość przepływu zależy jeszcze od pompy, oporów i nastawy pętli.", active: true }
      ]
    },
    "NO_off": {
      flow: "closed",
      dot: "×",
      title: "NO bez żądania: automatyka musi zamknąć pętlę",
      copy: "W prawidłowo skonfigurowanym układzie listwa zasila siłownik NO, aby przy braku żądania doprowadzić zawór do stanu zamkniętego.",
      steps: [
        { value: "Brak żądania", tone: "off", copy: "Termostat nie zgłasza potrzeby dopływu ciepła do strefy.", active: false },
        { value: "Logika zamykania", tone: "on", copy: "Listwa musi obsługiwać odwrócony stan właściwy dla zastosowanego siłownika NO.", active: true },
        { value: "Włączone", tone: "on", copy: "Na siłownik trafia napięcie przewidziane do utrzymania stanu zamkniętego.", active: true },
        { value: "Zmiana położenia", tone: "on", copy: "Mechanizm przechodzi ze stanu normalnie otwartego do zamknięcia.", active: true },
        { value: "Zamknięty po czasie", tone: "closed", copy: "Kompatybilny zestaw odcina gałąź po zakończeniu pełnego cyklu.", active: true },
        { value: "Zatrzymany", tone: "closed", copy: "Po zamknięciu zaworu dana pętla nie powinna otrzymywać przepływu.", active: true }
      ]
    },
    "NO_on": {
      flow: "open",
      dot: "✓",
      title: "NO z żądaniem: pętla przechodzi do otwarcia",
      copy: "Zgodna automatyka wyłącza zasilanie siłownika NO. Po czasie powrotu zestaw osiąga stan normalnie otwarty i umożliwia przepływ.",
      steps: [
        { value: "Żądanie grzania", tone: "on", copy: "Termostat zgłasza potrzebę dopływu ciepła do pomieszczenia.", active: true },
        { value: "Logika otwierania", tone: "on", copy: "Listwa realizuje stan właściwy dla NO, inny niż w popularnym układzie NC.", active: true },
        { value: "Wyłączone", tone: "off", copy: "Zasilanie siłownika NO zostaje odłączone zgodnie z logiką systemu.", active: false },
        { value: "Powrót do spoczynku", tone: "off", copy: "Mechanizm potrzebuje czasu na powrót do stanu normalnie otwartego.", active: true },
        { value: "Otwarty po czasie", tone: "on", copy: "Po zakończeniu przejścia kompatybilny zawór umożliwia przepływ.", active: true },
        { value: "Możliwy", tone: "on", copy: "Rzeczywisty przepływ zależy od pompy, oporów i nastawy pętli.", active: true }
      ]
    }
  };

  function setPressed(buttons, attributeName, activeValue) {
    var i;
    for (i = 0; i < buttons.length; i += 1) {
      if (buttons[i].getAttribute(attributeName) === activeValue) {
        buttons[i].setAttribute("aria-pressed", "true");
      } else {
        buttons[i].setAttribute("aria-pressed", "false");
      }
    }
  }

  function applyTone(element, tone) {
    element.classList.remove("is-off");
    element.classList.remove("is-closed");
    if (tone === "off") {
      element.classList.add("is-off");
    }
    if (tone === "closed") {
      element.classList.add("is-closed");
    }
  }

  function renderState() {
    var key = selectedType + "_" + selectedDemand;
    var model = states[key];
    var i;

    if (!model) {
      return;
    }

    summary.setAttribute("data-flow", model.flow);
    summaryDot.textContent = model.dot;
    summaryTitle.textContent = model.title;
    summaryCopy.textContent = model.copy;

    for (i = 0; i < stepElements.length; i += 1) {
      var stepModel = model.steps[i];
      var valueElement = stepElements[i].querySelector("[data-rk-act-value]");
      var copyElement = stepElements[i].querySelector("[data-rk-act-copy]");

      if (!stepModel) {
        continue;
      }

      valueElement.textContent = stepModel.value;
      copyElement.textContent = stepModel.copy;
      applyTone(valueElement, stepModel.tone);
      stepElements[i].classList.remove("is-active");
      stepElements[i].classList.remove("is-rest");

      if (stepModel.active) {
        stepElements[i].classList.add("is-active");
      } else {
        stepElements[i].classList.add("is-rest");
      }
    }
  }

  var i;
  for (i = 0; i < typeButtons.length; i += 1) {
    typeButtons[i].addEventListener("click", function () {
      selectedType = this.getAttribute("data-rk-act-type");
      setPressed(typeButtons, "data-rk-act-type", selectedType);
      renderState();
    });
  }

  for (i = 0; i < demandButtons.length; i += 1) {
    demandButtons[i].addEventListener("click", function () {
      selectedDemand = this.getAttribute("data-rk-act-demand");
      setPressed(demandButtons, "data-rk-act-demand", selectedDemand);
      renderState();
    });
  }

  renderState();
}());
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@id": "https://projekt-ogrzewania.pl/#logo"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "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",
      "caption": "Projekt Ogrzewania"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "automatyka strefowa",
        "siłowniki termoelektryczne",
        "hydraulika instalacji grzewczych",
        "projektowe obciążenie cieplne",
        "pompy ciepła"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Silowniki-termoelektryczne-na-rozdzielaczach.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Silowniki-termoelektryczne-na-rozdzielaczach.webp",
      "width": 945,
      "height": 945,
      "caption": "Siłowniki termoelektryczne na rozdzielaczu ogrzewania podłogowego",
      "representativeOfPage": true,
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Siłowniki termoelektryczne na rozdzielaczu",
          "item": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webpage",
      "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/",
      "name": "Siłowniki termoelektryczne na rozdzielaczu – NC/NO, 24 V czy 230 V?",
      "description": "Jak działa siłownik termoelektryczny na rozdzielaczu? Porównaj NC i NO, 24 V i 230 V. Sprawdź dobór do zaworu, montaż, sterowanie i diagnostykę bez zgadywania.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#primaryimage"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article"
      },
      "datePublished": "2026-01-22T08:46:44+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webpage"
      },
      "headline": "Siłowniki termoelektryczne na rozdzielaczu – NC/NO, 24 V czy 230 V?",
      "alternativeHeadline": "Dobór, montaż i diagnostyka siłowników termoelektrycznych ogrzewania podłogowego",
      "description": "Techniczny poradnik o siłownikach NC i NO, napięciu 24 V i 230 V, zgodności mechanicznej z zaworem, współpracy z listwą, wpływie na przepływ oraz bezpiecznej diagnostyce.",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#primaryimage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-01-22T08:46:44+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "timeRequired": "PT23M",
      "wordCount": 4202,
      "isAccessibleForFree": true,
      "articleSection": [
        "Zasada działania",
        "NC i NO",
        "24 V i 230 V",
        "Zgodność z zaworem",
        "Zgodność elektryczna",
        "Sterowanie strefowe",
        "Hydraulika instalacji",
        "Montaż",
        "Diagnostyka",
        "FAQ"
      ],
      "keywords": [
        "siłowniki termoelektryczne",
        "siłownik na rozdzielaczu",
        "siłownik NC",
        "siłownik NO",
        "siłownik 24 V",
        "siłownik 230 V",
        "listwa sterująca",
        "automatyka ogrzewania podłogowego",
        "rozdzielacz ogrzewania podłogowego",
        "sterowanie strefowe"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Siłownik termoelektryczny"
        },
        {
          "@type": "Thing",
          "name": "Automatyka strefowa ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Rozdzielacz ogrzewania podłogowego"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Termostat pokojowy"
        },
        {
          "@type": "Thing",
          "name": "Listwa sterująca"
        },
        {
          "@type": "Thing",
          "name": "Pompa obiegowa"
        },
        {
          "@type": "Thing",
          "name": "Pompa ciepła"
        }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://webstore.iec.ch/en/publication/66089",
        "https://eur-lex.europa.eu/eli/dir/2014/35/oj"
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "#rk-act-answer .rk-act-answer",
          "#rk-act-nc-no .rk-act-lead",
          "#rk-act-conclusions .rk-act-answer"
        ]
      },
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#application"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#checklist"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#faq"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#application",
      "name": "Od sygnału termostatu do przepływu w pętli",
      "description": "Interaktywna grafika edukacyjna pokazująca logikę siłownika NC i NO przy braku żądania oraz przy żądaniu grzania.",
      "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-graphic",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article"
      },
      "featureList": [
        "Porównanie logiki NC i NO",
        "Stan bez żądania grzania",
        "Stan przy żądaniu grzania",
        "Łańcuch termostat–listwa–siłownik–zawór–pętla",
        "Komunikaty o ograniczeniach interpretacji"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#howto",
      "name": "Jak sprawdzić dobór i uruchomić siłowniki termoelektryczne",
      "description": "Kolejność weryfikacji siłowników na rozdzielaczu od oznaczenia pętli do testu całego układu.",
      "inLanguage": "pl-PL",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Dokumentacja siłownika, zaworu, termostatu i listwy"
        },
        {
          "@type": "HowToSupply",
          "name": "Projekt instalacji i wykaz pętli"
        },
        {
          "@type": "HowToSupply",
          "name": "Etykiety przewodów i pętli"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Przyrządy pomiarowe używane przez osobę z odpowiednimi kwalifikacjami"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oznacz pomieszczenia i pętle",
          "text": "Połącz numer obwodu z pomieszczeniem, termostatem, kanałem listwy i przewodem siłownika.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-installation"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zidentyfikuj zawór i adapter",
          "text": "Ustal model wkładki oraz pisemnie potwierdź kompatybilność siłownika i elementu montażowego.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-mechanics"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Potwierdź parametry elektryczne",
          "text": "Porównaj NC lub NO, napięcie, AC lub DC, schemat wyjścia i dopuszczalne obciążenia.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-electrics"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Wykonaj prawidłowy montaż",
          "text": "Zamontuj elementy zgodnie z instrukcją i wykonaj połączenia elektryczne przy zachowaniu wymaganych zasad bezpieczeństwa.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-installation"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Uruchom strefy sekwencyjnie",
          "text": "Wymuszaj po jednej strefie i po czasie z instrukcji sprawdzaj właściwy kanał, wskaźnik, zawór oraz rotametr.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-test"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź zachowanie całej instalacji",
          "text": "Zweryfikuj przepływy, pracę pompy i źródła ciepła przy różnych kombinacjach otwartych stref.",
          "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-hydraulics"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#checklist",
      "name": "Parametry do sprawdzenia przed zakupem siłownika",
      "numberOfItems": 14,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Typ NC lub NO" },
        { "@type": "ListItem", "position": 2, "name": "Napięcie i rodzaj prądu AC lub DC" },
        { "@type": "ListItem", "position": 3, "name": "Rodzaj wyjścia listwy" },
        { "@type": "ListItem", "position": 4, "name": "Obciążenie pojedynczego kanału" },
        { "@type": "ListItem", "position": 5, "name": "Obciążenie całej listwy i zasilacza" },
        { "@type": "ListItem", "position": 6, "name": "Dokładny model zaworu" },
        { "@type": "ListItem", "position": 7, "name": "Gwint lub właściwy adapter" },
        { "@type": "ListItem", "position": 8, "name": "Wymiar zamknięcia i zakres ruchu" },
        { "@type": "ListItem", "position": 9, "name": "Siła działania" },
        { "@type": "ListItem", "position": 10, "name": "Czas otwierania i zamykania" },
        { "@type": "ListItem", "position": 11, "name": "Warunki środowiskowe i pozycja montażowa" },
        { "@type": "ListItem", "position": 12, "name": "First Open oraz wskaźnik położenia" },
        { "@type": "ListItem", "position": 13, "name": "Mapowanie pomieszczeń, pętli i przewodów" },
        { "@type": "ListItem", "position": 14, "name": "Hydraulika po zamknięciu stref" }
      ],
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#faq",
      "url": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#rk-act-faq",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jak działa siłownik termoelektryczny na rozdzielaczu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Po otrzymaniu właściwego stanu zasilania element termoelektryczny stopniowo zmienia położenie mechanizmu współpracującego z zaworem. W efekcie zawór otwiera albo zamyka możliwość przepływu przez pętlę. Czas, kierunek ruchu i parametry mechaniczne zależą od konkretnego modelu."
          }
        },
        {
          "@type": "Question",
          "name": "Co oznacza NC na siłowniku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "NC oznacza normalnie zamknięty. W prawidłowo dobranym zestawie po zaniku zasilania zawór docelowo przechodzi do stanu zamkniętego. Nie oznacza to zgodności każdego siłownika NC z każdym zaworem."
          }
        },
        {
          "@type": "Question",
          "name": "Co oznacza NO na siłowniku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "NO oznacza normalnie otwarty. Po zaniku zasilania kompatybilny zestaw dąży do otwarcia zaworu. Automatyka musi obsługiwać właściwą logikę stanów."
          }
        },
        {
          "@type": "Question",
          "name": "Czy siłownik 24 V działa zarówno na AC, jak i DC?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego zakładać. Dostępne są modele wymagające 24 V AC, 24 V DC albo dopuszczające oba warianty. Pełne oznaczenie musi odpowiadać listwie i zasilaczowi."
          }
        },
        {
          "@type": "Question",
          "name": "Czy M30 × 1,5 gwarantuje zgodność z rozdzielaczem?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Zgodny gwint jest tylko jednym z warunków. Trzeba potwierdzić adapter, geometrię wkładki, wymiar zamknięcia, zakres ruchu, siłę i pozycję montażową."
          }
        },
        {
          "@type": "Question",
          "name": "Co oznacza funkcja First Open?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W wybranych siłownikach jest to fabryczny stan ułatwiający napełnianie, próbę lub pierwszy rozruch. Sposób zwolnienia funkcji zależy od modelu."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego siłownik jest ciepły, ale na rotametrze nie ma przepływu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Ciepła obudowa może wskazywać zasilanie elementu, ale nie potwierdza otwarcia zaworu. Przyczyną może być adapter, wkładka, First Open, zapowietrzenie, nastawa, pompa albo brak różnicy ciśnień."
          }
        },
        {
          "@type": "Question",
          "name": "Ile siłowników można podłączyć do jednego termostatu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej liczby dla wszystkich systemów. Decydują dopuszczalne obciążenia kanału i całej listwy, parametry zasilacza oraz dane siłowników."
          }
        },
        {
          "@type": "Question",
          "name": "Czy siłowniki są konieczne przy pompie ciepła?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Mogą być użyteczne w wybranych strefach, ale projekt musi sprawdzić wymagany przepływ, aktywny zład, pompę obiegową, hydraulikę i sterowanie źródła."
          }
        },
        {
          "@type": "Question",
          "name": "Ile prądu zużywa siłownik termoelektryczny?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zużycie oblicza się z mocy urządzenia i czasu zasilania. Przykładowo 2 W przez 12 godzin na dobę daje 0,72 kWh w ciągu 30 dni. Rzeczywisty wynik zależy od modelu i regulacji."
          }
        }
      ]
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki termoelektryczne na rozdzielaczu – NC/NO, 24 V czy 230 V?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sterownik (regulator) pogodowy.</title>
		<link>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/</link>
					<comments>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 08 Jan 2026 11:24:19 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[instalacja]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulator pogodowy]]></category>
		<category><![CDATA[sterownik pogodowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3102</guid>

					<description><![CDATA[<p>Nowoczesne ogrzewanie to dziś nie tylko źródło ciepła, ale przede wszystkim inteligentne sterowanie energią. Sterownik (regulator) pogodowy odgrywa kluczową rolę w osiągnięciu stabilnego komfortu cieplnego i realnych oszczędności eksploatacyjnych, szczególnie w instalacjach wodnego ogrzewania podłogowego. W artykule pokazujemy, jak działa regulacja pogodowa, czym jest krzywa grzewcza, dlaczego sama automatyka bez właściwej konfiguracji nie wystarczy oraz jak projektować instalację z myślą o maksymalnej efektywności. To praktyczny przewodnik dla inwestorów i instalatorów, którzy chcą, aby system grzewczy pracował mądrze, a nie „na oko”.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik (regulator) pogodowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-weather-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-green: #178265;
    --rk-green-soft: #ebf8f3;
    --rk-yellow: #f2b441;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d9e7ed;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px 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.78;
  }

  #rk-weather-guide,
  #rk-weather-guide * {
    box-sizing: border-box;
  }

  #rk-weather-guide img,
  #rk-weather-guide svg {
    max-width: 100%;
  }

  #rk-weather-guide button,
  #rk-weather-guide input,
  #rk-weather-guide a,
  #rk-weather-guide summary {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-weather-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-weather-guide a:hover {
    color: var(--rk-red);
  }

  #rk-weather-guide h2,
  #rk-weather-guide h3,
  #rk-weather-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-weather-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-weather-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-weather-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-weather-guide h2::before,
  #rk-weather-guide h2::after,
  #rk-weather-guide h3::before,
  #rk-weather-guide h3::after,
  #rk-weather-guide h4::before,
  #rk-weather-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-weather-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-weather-guide strong {
    color: var(--rk-dark);
  }

  #rk-weather-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-weather-guide .rk-weather-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-weather-guide .rk-weather-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-weather-guide .rk-weather-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange));
  }

  #rk-weather-guide .rk-weather-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 13%, rgba(255, 98, 56, 0.31), transparent 28%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.22), transparent 33%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-weather-guide .rk-weather-hero::before,
  #rk-weather-guide .rk-weather-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-weather-guide .rk-weather-hero::before {
    right: -120px;
    bottom: -175px;
    width: 400px;
    height: 400px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-weather-guide .rk-weather-hero::after {
    right: 145px;
    bottom: -125px;
    width: 235px;
    height: 235px;
    border: 34px solid rgba(255, 98, 56, 0.12);
  }

  #rk-weather-guide .rk-weather-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.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-weather-guide .rk-weather-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, 98, 56, 0.18);
  }

  #rk-weather-guide .rk-weather-hero h2 {
    max-width: 1040px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.05vw, 3.85rem);
    letter-spacing: -0.055em;
  }

  #rk-weather-guide .rk-weather-hero h2 span {
    color: #83edf5;
  }

  #rk-weather-guide .rk-weather-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 19px 21px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    background: rgba(255, 255, 255, 0.09);
  }

  #rk-weather-guide .rk-weather-hook p,
  #rk-weather-guide .rk-weather-hook strong,
  #rk-weather-guide .rk-weather-hero-lead {
    color: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-hook p {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.67;
  }

  #rk-weather-guide .rk-weather-hero-lead {
    max-width: 930px;
    font-size: 1.03rem;
  }

  #rk-weather-guide .rk-weather-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 24px;
    color: #cde0e7;
    font-size: 0.72rem;
    font-weight: 770;
  }

  #rk-weather-guide .rk-weather-hero-meta span::before {
    content: "•";
    margin-right: 8px;
    color: var(--rk-orange);
  }

  #rk-weather-guide .rk-weather-author-strip {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 26px;
  }

  #rk-weather-guide .rk-weather-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 3px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    object-fit: cover;
  }

  #rk-weather-guide .rk-weather-author-strip b,
  #rk-weather-guide .rk-weather-author-strip small {
    display: block;
  }

  #rk-weather-guide .rk-weather-author-strip b {
    color: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-weather-guide .rk-weather-author-strip small {
    color: #cde0e7;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-weather-guide .rk-weather-content {
    padding: clamp(30px, 5.7vw, 72px);
  }

  #rk-weather-guide .rk-weather-learn {
    margin-bottom: 36px;
  }

  #rk-weather-guide .rk-weather-learn > strong {
    display: block;
    margin-bottom: 16px;
    font-size: 1.12rem;
  }

  #rk-weather-guide .rk-weather-learn-grid,
  #rk-weather-guide .rk-weather-card-grid,
  #rk-weather-guide .rk-weather-error-grid,
  #rk-weather-guide .rk-weather-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-weather-guide .rk-weather-learn-card,
  #rk-weather-guide .rk-weather-card,
  #rk-weather-guide .rk-weather-error,
  #rk-weather-guide .rk-weather-check {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-weather-guide .rk-weather-learn-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  #rk-weather-guide .rk-weather-no,
  #rk-weather-guide .rk-weather-card-icon,
  #rk-weather-guide .rk-weather-error-no,
  #rk-weather-guide .rk-weather-check-no {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-weather-guide .rk-weather-learn-card h4,
  #rk-weather-guide .rk-weather-learn-card p,
  #rk-weather-guide .rk-weather-card h4,
  #rk-weather-guide .rk-weather-card p,
  #rk-weather-guide .rk-weather-error h4,
  #rk-weather-guide .rk-weather-error p,
  #rk-weather-guide .rk-weather-check h4,
  #rk-weather-guide .rk-weather-check p {
    margin: 0;
  }

  #rk-weather-guide .rk-weather-learn-card p,
  #rk-weather-guide .rk-weather-card p,
  #rk-weather-guide .rk-weather-error p,
  #rk-weather-guide .rk-weather-check p {
    margin-top: 6px;
    font-size: 0.84rem;
    line-height: 1.58;
  }

  #rk-weather-guide .rk-weather-nav {
    margin-bottom: 46px;
    padding: 22px;
    border: 1px solid #cce4ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-weather-guide .rk-weather-nav > strong {
    display: block;
    margin-bottom: 12px;
  }

  #rk-weather-guide .rk-weather-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  #rk-weather-guide .rk-weather-nav a {
    padding: 7px 11px;
    border: 1px solid #bfdbe5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-decoration: none;
  }

  #rk-weather-guide .rk-weather-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-weather-guide .rk-weather-section {
    margin-top: 64px;
  }

  #rk-weather-guide .rk-weather-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-weather-guide .rk-weather-section-head h2,
  #rk-weather-guide .rk-weather-section-head p {
    margin: 0;
  }

  #rk-weather-guide .rk-weather-section-head p {
    margin-top: 8px;
    font-size: 0.88rem;
  }

  #rk-weather-guide .rk-weather-section-no {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 11px 23px rgba(216, 60, 47, 0.2);
  }

  #rk-weather-guide .rk-weather-answer,
  #rk-weather-guide .rk-weather-truth,
  #rk-weather-guide .rk-weather-warning,
  #rk-weather-guide .rk-weather-note,
  #rk-weather-guide .rk-weather-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

  #rk-weather-guide .rk-weather-answer {
    border: 1px solid #bde3eb;
    border-left: 6px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }

  #rk-weather-guide .rk-weather-truth {
    border: 1px solid #f2c5b6;
    border-left: 6px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-weather-guide .rk-weather-warning {
    border: 1px solid #f0cfd0;
    border-left: 6px solid var(--rk-red);
    background: #fff5f5;
  }

  #rk-weather-guide .rk-weather-note {
    border: 1px solid #cbe6da;
    border-left: 6px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-weather-guide .rk-weather-answer p,
  #rk-weather-guide .rk-weather-truth p,
  #rk-weather-guide .rk-weather-warning p,
  #rk-weather-guide .rk-weather-note p,
  #rk-weather-guide .rk-weather-formula p {
    margin: 0;
  }

  #rk-weather-guide .rk-weather-card-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-weather-guide .rk-weather-card-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-weather-guide .rk-weather-card {
    background: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-card-icon {
    margin-bottom: 15px;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-weather-guide .rk-weather-list {
    margin: 18px 0 24px;
    padding: 0;
    list-style: none;
  }

  #rk-weather-guide .rk-weather-list li {
    position: relative;
    margin: 9px 0;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-weather-guide .rk-weather-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.08em;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-weather-guide .rk-weather-table-wrap {
    margin: 24px 0;
  }

  #rk-weather-guide .rk-weather-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    overflow: hidden;
    background: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-table th,
  #rk-weather-guide .rk-weather-table td {
    overflow-wrap: anywhere;
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-weather-guide .rk-weather-table th:last-child,
  #rk-weather-guide .rk-weather-table td:last-child {
    border-right: 0;
  }

  #rk-weather-guide .rk-weather-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-weather-guide .rk-weather-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  #rk-weather-guide .rk-weather-table td {
    color: var(--rk-text);
    font-size: 0.8rem;
    line-height: 1.55;
  }

  #rk-weather-guide .rk-weather-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-weather-guide .rk-weather-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin: 25px 0 18px;
  }

  #rk-weather-guide .rk-weather-flow-step {
    min-width: 0;
    padding: 16px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.4;
    cursor: pointer;
  }

  #rk-weather-guide .rk-weather-flow-step:hover,
  #rk-weather-guide .rk-weather-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-weather-guide .rk-weather-flow-detail {
    min-height: 150px;
    padding: 23px;
    border: 1px solid #cde5ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-weather-guide .rk-weather-flow-detail h3,
  #rk-weather-guide .rk-weather-flow-detail p {
    margin: 0;
  }

  #rk-weather-guide .rk-weather-flow-detail p {
    margin-top: 9px;
  }

  #rk-weather-guide .rk-weather-formula {
    border: 1px solid #c6dce5;
    background: var(--rk-dark);
  }

  #rk-weather-guide .rk-weather-formula strong,
  #rk-weather-guide .rk-weather-formula p,
  #rk-weather-guide .rk-weather-formula code {
    color: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-formula code {
    display: block;
    margin: 13px 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.07);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.65;
    white-space: normal;
  }

  #rk-weather-guide .rk-weather-architectures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 25px 0;
  }

  #rk-weather-guide .rk-weather-architecture {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-weather-guide .rk-weather-architecture > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-weather-guide .rk-weather-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-weather-guide .rk-weather-node {
    position: relative;
    padding: 12px;
    border: 1px solid #cbdde5;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 820;
    text-align: center;
  }

  #rk-weather-guide .rk-weather-node + .rk-weather-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

  #rk-weather-guide .rk-weather-architecture p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-weather-guide .rk-weather-lab {
    overflow: hidden;
    margin: 28px 0;
    border: 1px solid #c9e1e9;
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.1);
  }

  #rk-weather-guide .rk-weather-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-weather-guide .rk-weather-lab-head h3,
  #rk-weather-guide .rk-weather-lab-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-lab-head p {
    margin-top: 8px;
    color: #cfe2e8;
    font-size: 0.87rem;
  }

  #rk-weather-guide .rk-weather-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 17px;
  }

  #rk-weather-guide .rk-weather-preset {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-weather-guide .rk-weather-preset:hover,
  #rk-weather-guide .rk-weather-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-weather-guide .rk-weather-lab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.35fr);
    gap: 0;
  }

  #rk-weather-guide .rk-weather-controls {
    padding: 25px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-weather-guide .rk-weather-control {
    margin-bottom: 19px;
  }

  #rk-weather-guide .rk-weather-control:last-child {
    margin-bottom: 0;
  }

  #rk-weather-guide .rk-weather-control label {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-weather-guide .rk-weather-control output {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.7rem;
  }

  #rk-weather-guide .rk-weather-control input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-weather-guide .rk-weather-visual {
    min-width: 0;
    padding: 25px;
  }

  #rk-weather-guide .rk-weather-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-weather-guide .rk-weather-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-weather-guide .rk-weather-result span,
  #rk-weather-guide .rk-weather-result strong {
    display: block;
  }

  #rk-weather-guide .rk-weather-result span {
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.35;
  }

  #rk-weather-guide .rk-weather-result strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.28rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  #rk-weather-guide .rk-weather-chart {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f3f8fa);
  }

  #rk-weather-guide .rk-weather-chart .rk-grid-line {
    stroke: #d9e6ec;
    stroke-width: 1;
  }

  #rk-weather-guide .rk-weather-chart .rk-axis {
    stroke: #8194a1;
    stroke-width: 1.4;
  }

  #rk-weather-guide .rk-weather-chart .rk-axis-label,
  #rk-weather-guide .rk-weather-chart .rk-tick {
    fill: #5f7381;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
  }

  #rk-weather-guide .rk-weather-chart .rk-curve {
    fill: none;
    stroke: var(--rk-blue);
    stroke-width: 5;
    stroke-linecap: round;
  }

  #rk-weather-guide .rk-weather-chart .rk-dot {
    fill: var(--rk-orange);
    stroke: var(--rk-white);
    stroke-width: 4;
  }

  #rk-weather-guide .rk-weather-chart .rk-guide {
    stroke: var(--rk-orange);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
  }

  #rk-weather-guide .rk-weather-status {
    margin-top: 14px;
    padding: 15px;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.55;
  }

  #rk-weather-guide .rk-weather-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-weather-guide .rk-weather-howto {
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }

  #rk-weather-guide .rk-weather-howto-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-howto-step > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 900;
  }

  #rk-weather-guide .rk-weather-howto-step h3,
  #rk-weather-guide .rk-weather-howto-step p {
    margin: 0;
  }

  #rk-weather-guide .rk-weather-howto-step p {
    margin-top: 7px;
    font-size: 0.87rem;
  }

  #rk-weather-guide .rk-weather-faq-list {
    display: grid;
    gap: 10px;
  }

  #rk-weather-guide .rk-weather-faq {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-weather-guide .rk-weather-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-weather-guide .rk-weather-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-weather-guide .rk-weather-faq[open] summary::after {
    content: "−";
  }

  #rk-weather-guide .rk-weather-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-weather-guide .rk-weather-faq-answer p {
    margin: 0;
    font-size: 0.88rem;
  }

  #rk-weather-guide .rk-weather-sources {
    margin-top: 28px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.7;
  }

  #rk-weather-guide .rk-weather-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-weather-guide .rk-weather-cta {
    margin-top: 58px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(255, 98, 56, 0.3), transparent 33%),
      linear-gradient(135deg, #102536, #174155);
    box-shadow: 0 20px 45px rgba(16, 37, 54, 0.16);
  }

  #rk-weather-guide .rk-weather-cta h3,
  #rk-weather-guide .rk-weather-cta p,
  #rk-weather-guide .rk-weather-cta strong {
    color: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-cta p {
    max-width: 880px;
  }

  #rk-weather-guide .rk-weather-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    margin-top: 7px;
    padding: 15px 24px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 28px rgba(216, 60, 47, 0.24);
    font-size: 0.88rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none !important;
  }

  #rk-weather-guide .rk-weather-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-weather-guide .rk-weather-cta small {
    display: block;
    margin-top: 14px;
    color: #bdd1da;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-weather-guide .rk-weather-author-box {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-author-head {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 28px;
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

  #rk-weather-guide .rk-weather-author-head h3,
  #rk-weather-guide .rk-weather-author-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-weather-guide .rk-weather-author-head p {
    margin-top: 6px;
    color: #cde0e7;
    font-size: 0.82rem;
  }

  #rk-weather-guide .rk-weather-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.35);
    border-radius: 13px;
    color: #84edf5;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-weather-guide .rk-weather-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

  #rk-weather-guide .rk-weather-author-profile {
    padding: 32px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-weather-guide .rk-weather-author-profile img {
    width: 174px;
    height: 174px;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 34px rgba(16, 37, 54, 0.14);
  }

  #rk-weather-guide .rk-weather-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-weather-guide .rk-weather-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.6;
    text-transform: uppercase;
  }

  #rk-weather-guide .rk-weather-author-content {
    min-width: 0;
    padding: 32px;
  }

  #rk-weather-guide .rk-weather-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 23px 23px 23px 61px;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-weather-guide .rk-weather-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
  }

  #rk-weather-guide .rk-weather-quote blockquote {
    margin: 0;
    color: var(--rk-dark);
    font-size: 1.03rem;
    font-style: italic;
    font-weight: 790;
    line-height: 1.7;
  }

  #rk-weather-guide .rk-weather-tab-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  #rk-weather-guide .rk-weather-tab-button {
    min-width: 0;
    padding: 13px 10px;
    border: 0;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-weather-guide .rk-weather-tab-button:last-child {
    border-right: 0;
  }

  #rk-weather-guide .rk-weather-tab-button.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-weather-guide .rk-weather-tab-panel {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
  }

  #rk-weather-guide .rk-weather-tab-panel p {
    margin: 0;
    font-size: 0.86rem;
  }

  #rk-weather-guide .rk-weather-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-weather-guide .rk-weather-portals a {
    padding: 8px 12px;
    border: 1px solid #c8dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    text-decoration: none;
  }

  #rk-weather-guide .rk-weather-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 1120px) {
    #rk-weather-guide .rk-weather-card-grid.four {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-weather-guide .rk-weather-architectures,
    #rk-weather-guide .rk-weather-card-grid.three {
      grid-template-columns: 1fr;
    }

    #rk-weather-guide .rk-weather-author-main {
      grid-template-columns: 260px minmax(0, 1fr);
    }
  }

  @media (max-width: 880px) {
    #rk-weather-guide {
      font-size: 17px;
    }

    #rk-weather-guide .rk-weather-lab-grid,
    #rk-weather-guide .rk-weather-author-main {
      grid-template-columns: 1fr;
    }

    #rk-weather-guide .rk-weather-controls,
    #rk-weather-guide .rk-weather-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-weather-guide .rk-weather-flow {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-weather-guide .rk-weather-flow-step:last-child {
      grid-column: 1 / -1;
    }
  }

  @media (max-width: 720px) {
    #rk-weather-guide {
      margin: 18px auto 50px;
      font-size: 16px;
    }

    #rk-weather-guide .rk-weather-shell {
      border-radius: 20px;
    }

    #rk-weather-guide .rk-weather-hero,
    #rk-weather-guide .rk-weather-content {
      padding: 25px 18px;
    }

    #rk-weather-guide .rk-weather-learn-grid,
    #rk-weather-guide .rk-weather-card-grid,
    #rk-weather-guide .rk-weather-card-grid.four,
    #rk-weather-guide .rk-weather-error-grid,
    #rk-weather-guide .rk-weather-check-grid,
    #rk-weather-guide .rk-weather-results {
      grid-template-columns: 1fr;
    }

    #rk-weather-guide .rk-weather-section {
      margin-top: 48px;
    }

    #rk-weather-guide .rk-weather-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
    }

    #rk-weather-guide .rk-weather-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-weather-guide .rk-weather-table,
    #rk-weather-guide .rk-weather-table tbody,
    #rk-weather-guide .rk-weather-table tr,
    #rk-weather-guide .rk-weather-table td {
      display: block;
      width: 100%;
    }

    #rk-weather-guide .rk-weather-table {
      border: 0;
      background: transparent;
    }

    #rk-weather-guide .rk-weather-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-weather-guide .rk-weather-table tr {
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      overflow: hidden;
      background: var(--rk-white);
    }

    #rk-weather-guide .rk-weather-table td,
    #rk-weather-guide .rk-weather-table tr:last-child td {
      display: grid;
      grid-template-columns: minmax(105px, 0.42fr) minmax(0, 0.58fr);
      gap: 10px;
      padding: 13px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

    #rk-weather-guide .rk-weather-table td:last-child {
      border-bottom: 0;
    }

    #rk-weather-guide .rk-weather-table td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-weight: 900;
    }

    #rk-weather-guide .rk-weather-chart {
      min-height: 265px;
    }

    #rk-weather-guide .rk-weather-howto-step {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
      padding: 16px;
    }

    #rk-weather-guide .rk-weather-howto-step > span {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-weather-guide .rk-weather-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 22px;
    }

    #rk-weather-guide .rk-weather-author-content,
    #rk-weather-guide .rk-weather-author-profile {
      padding: 22px;
    }

    #rk-weather-guide .rk-weather-tab-buttons {
      grid-template-columns: 1fr;
    }

    #rk-weather-guide .rk-weather-tab-button {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-weather-guide .rk-weather-tab-button:last-child {
      border-bottom: 0;
    }

    #rk-weather-guide .rk-weather-cta-link {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-weather-guide *,
    #rk-weather-guide *::before,
    #rk-weather-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-weather-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-weather-shell">
    <div class="rk-weather-progress-track" aria-hidden="true"><div class="rk-weather-progress"></div></div>

    <header class="rk-weather-hero">
      <div class="rk-weather-badge">Automatyka grzewcza • praktyka projektowa</div>
      <h2 itemprop="headline">Sterownik pogodowy do ogrzewania podłogowego – jak działa <span>regulator</span> i jak go ustawić?</h2>
      <div class="rk-weather-hook">
        <p><strong>Sterownik pogodowy nie jest termostatem, który czeka, aż w domu zrobi się zimno.</strong> Wyznacza temperaturę wody na podstawie temperatury zewnętrznej i charakterystyki budynku. Jeżeli jednak krzywa, czujniki albo hydraulika są źle dobrane, nawet najlepsza automatyka będzie jedynie precyzyjnie realizowała błędne założenia.</p>
      </div>
      <p class="rk-weather-hero-lead" itemprop="description">Ten przewodnik pokazuje, co naprawdę robi regulator pogodowy, czym różni się od sterowania pokojowego, kiedy steruje bezpośrednio pompą ciepła lub kotłem, a kiedy potrzebuje zaworu mieszającego. Zawiera również poprawny model dwupunktowej krzywej grzewczej, symulator, schematy układów i procedurę strojenia.</p>
      <div class="rk-weather-hero-meta">
        <span>Aktualizacja techniczna: 24 sierpnia 2026 r.</span>
        <span>Opracowanie bez rankingów producentów</span>
        <span>Jednoznaczne rozdzielenie sterowania i hydrauliki</span>
      </div>
      <div class="rk-weather-author-strip" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-weather-content">
      <div class="rk-weather-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-weather-learn-grid">
          <div class="rk-weather-learn-card"><div class="rk-weather-no">01</div><div><h4>Co sterownik rzeczywiście reguluje</h4><p>Temperaturę zasilania, pracę źródła, zawór mieszający lub obieg – zależnie od architektury instalacji.</p></div></div>
          <div class="rk-weather-learn-card"><div class="rk-weather-no">02</div><div><h4>Jak zbudować krzywą z dwóch punktów</h4><p>Bez błędnych wzorów i bez zakładania, że numer nachylenia jest identyczny w każdym urządzeniu.</p></div></div>
          <div class="rk-weather-learn-card"><div class="rk-weather-no">03</div><div><h4>Jak korygować ustawienia</h4><p>Inaczej reagujemy na niedogrzanie podczas mrozu, inaczej na przegrzewanie w okresie przejściowym.</p></div></div>
          <div class="rk-weather-learn-card"><div class="rk-weather-no">04</div><div><h4>Kiedy problem nie leży w automatyce</h4><p>Jedno zimne pomieszczenie zwykle wskazuje na moc, przepływ lub równoważenie, a nie na całą krzywą.</p></div></div>
        </div>
      </div>

      <nav class="rk-weather-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-weather-nav-links">
          <a href="#rk-weather-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-weather-roznice">Sterownik a termostat</a>
          <a href="#rk-weather-dzialanie">Zasada działania</a>
          <a href="#rk-weather-uklady">Trzy układy</a>
          <a href="#rk-weather-symulator">Symulator</a>
          <a href="#rk-weather-ustawienie">Ustawianie krok po kroku</a>
          <a href="#rk-weather-czujniki">Czujniki</a>
          <a href="#rk-weather-sygnaly">Sygnały sterujące</a>
          <a href="#rk-weather-zrodla">Pompa ciepła i kocioł</a>
          <a href="#rk-weather-bledy">Błędy</a>
          <a href="#rk-weather-dobor">Dobór regulatora</a>
          <a href="#rk-weather-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-weather-section" id="rk-weather-odpowiedz" aria-labelledby="rk-weather-h2-1">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">01</div>
          <div>
            <h2 id="rk-weather-h2-1">Sterownik pogodowy – co to jest i co daje w podłogówce?</h2>
            <p>Najkrótsza odpowiedź bez marketingowych obietnic.</p>
          </div>
        </div>

        <div class="rk-weather-answer">
          <p><strong>Sterownik pogodowy, nazywany również regulatorem pogodowym, wyznacza wymaganą temperaturę zasilania instalacji na podstawie temperatury zewnętrznej.</strong> Zależność tę opisuje krzywa grzewcza. Gdy na zewnątrz robi się chłodniej, regulator podnosi temperaturę wody; gdy straty budynku maleją, obniża ją albo zatrzymuje ogrzewanie po osiągnięciu granicy trybu letniego.</p>
        </div>

        <p>W ogrzewaniu podłogowym ma to szczególne znaczenie, ponieważ masywna podłoga reaguje wolniej niż lekki grzejnik. Regulacja wyłącznie pokojowa może zareagować dopiero wtedy, gdy temperatura wewnętrzna już się zmieni. Regulacja według temperatury zewnętrznej dostosowuje parametr wody wcześniej, ale nie jest prognozą pogody. Typowy regulator mierzy aktualną temperaturę na zewnątrz; dopiero bardziej rozbudowane algorytmy mogą dodatkowo korzystać z prognozy lub uczenia adaptacyjnego.</p>

        <div class="rk-weather-card-grid three">
          <div class="rk-weather-card"><div class="rk-weather-card-icon">T°</div><h4>Mierzy</h4><p>Odczytuje temperaturę zewnętrzną, a zależnie od układu również temperaturę zasilania, powrotu i pomieszczenia referencyjnego.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">ƒ</div><h4>Oblicza</h4><p>Z krzywej grzewczej wyznacza wartość zadaną temperatury wody i uwzględnia limity, przesunięcie oraz ewentualny wpływ pokojowy.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">↗</div><h4>Steruje</h4><p>Przekazuje polecenie do źródła ciepła, siłownika mieszacza albo innego elementu wykonawczego przewidzianego w danym układzie.</p></div>
        </div>

        <div class="rk-weather-truth">
          <p><strong>Regulator nie tworzy mocy, której nie ma instalacja.</strong> Nie naprawi zbyt małej powierzchni grzewczej, źle dobranego rozstawu, niedostatecznego przepływu ani nadmiernego oporu okładziny. Może jedynie prawidłowo sterować układem, który został wcześniej obliczony i zrównoważony.</p>
        </div>
      </section>

      <section class="rk-weather-section" id="rk-weather-roznice" aria-labelledby="rk-weather-h2-2">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">02</div>
          <div>
            <h2 id="rk-weather-h2-2">Sterownik pogodowy, termostat i listwa strefowa – to nie są te same urządzenia</h2>
            <p>Każde z nich obserwuje inny sygnał i realizuje inne zadanie.</p>
          </div>
        </div>

        <p>W praktyce określenie „sterownik do podłogówki” bywa używane dla kilku całkowicie różnych elementów. Tymczasem regulator pogodowy wpływa przede wszystkim na temperaturę czynnika, <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat pokojowy</a> porównuje temperaturę pomieszczenia z nastawą, a listwa strefowa otwiera i zamyka siłowniki na rozdzielaczu. Dopiero świadome ustalenie hierarchii zapobiega sytuacji, w której urządzenia wydają sprzeczne polecenia.</p>

        <div class="rk-weather-table-wrap">
          <table class="rk-weather-table">
            <thead><tr><th>Element</th><th>Na co reaguje?</th><th>Co zwykle zmienia?</th><th>Najważniejsza rola</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Regulator pogodowy</strong></td><td data-label="Reaguje na">Temperaturę zewnętrzną, czasem także sygnał pokojowy</td><td data-label="Zmienia">Temperaturę zasilania, modulację źródła albo pozycję mieszacza</td><td data-label="Rola">Dopasowanie parametru wody do aktualnych strat budynku</td></tr>
              <tr><td data-label="Element"><strong>Termostat pokojowy</strong></td><td data-label="Reaguje na">Temperaturę wewnętrzną w danej strefie</td><td data-label="Zmienia">Żądanie ciepła, pozycję siłownika lub korektę regulatora</td><td data-label="Rola">Kontrola temperatury pomieszczenia i ograniczanie zysków wewnętrznych</td></tr>
              <tr><td data-label="Element"><strong>Listwa strefowa</strong></td><td data-label="Reaguje na">Sygnały z termostatów</td><td data-label="Zmienia">Stan siłowników, pompy i ewentualnie styku żądania</td><td data-label="Rola">Koordynacja wielu stref na rozdzielaczu</td></tr>
              <tr><td data-label="Element"><strong>Sterownik mieszacza</strong></td><td data-label="Reaguje na">Temperaturę zadaną i rzeczywistą za zaworem</td><td data-label="Zmienia">Pozycję siłownika zaworu 3- lub 4-drogowego</td><td data-label="Rola">Przygotowanie temperatury dla oddzielnego obiegu mieszanego</td></tr>
            </tbody>
          </table>
        </div>

        <p>Szersze spojrzenie na cały system znajduje się w opracowaniu <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe w ogrzewaniu podłogowym</a>. Ten artykuł koncentruje się na samym regulatorze: jego zadaniach, wejściach, wyjściach, doborze i uruchomieniu.</p>
      </section>

      <section class="rk-weather-section" id="rk-weather-dzialanie" aria-labelledby="rk-weather-h2-3">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">03</div>
          <div>
            <h2 id="rk-weather-h2-3">Jak działa regulator pogodowy – pięć etapów jednej pętli sterowania</h2>
            <p>Kliknij etap, aby zobaczyć, gdzie powstaje wartość zadana i co dzieje się dalej.</p>
          </div>
        </div>

        <div data-rk-weather-flow>
          <div class="rk-weather-flow" role="group" aria-label="Etapy działania regulatora pogodowego">
            <button class="rk-weather-flow-step is-active" type="button" data-weather-step="0" aria-pressed="true">1. Pomiar zewnętrzny</button>
            <button class="rk-weather-flow-step" type="button" data-weather-step="1" aria-pressed="false">2. Krzywa grzewcza</button>
            <button class="rk-weather-flow-step" type="button" data-weather-step="2" aria-pressed="false">3. Korekty i limity</button>
            <button class="rk-weather-flow-step" type="button" data-weather-step="3" aria-pressed="false">4. Element wykonawczy</button>
            <button class="rk-weather-flow-step" type="button" data-weather-step="4" aria-pressed="false">5. Kontrola wyniku</button>
          </div>
          <div class="rk-weather-flow-detail" aria-live="polite">
            <h3 data-weather-flow-title>1. Pomiar temperatury zewnętrznej</h3>
            <p data-weather-flow-text>Czujnik przekazuje regulatorowi temperaturę reprezentatywną dla otoczenia budynku. Błąd pomiaru wywołany słońcem, otwartym oknem albo wyrzutnią powietrza trafia bezpośrednio do algorytmu i zniekształca temperaturę zasilania.</p>
          </div>
        </div>

        <h3>Krzywa grzewcza jako funkcja, a nie magiczny numer</h3>
        <p>Najbardziej uniwersalnym sposobem opisania regulacji jest wskazanie dwóch punktów: temperatury wody przy projektowym mrozie oraz temperatury wody w pobliżu granicy ogrzewania. Pomiędzy nimi regulator może stosować linię prostą albo krzywą właściwą dla swojego algorytmu. Numery nachylenia używane przez różne urządzenia nie muszą oznaczać tej samej zależności.</p>

        <div class="rk-weather-formula">
          <p><strong>Uproszczony model liniowy między dwoma punktami:</strong></p>
          <code>Tz(Te) = Tz,warm + [(Te,warm − Te) / (Te,warm − Te,cold)] × (Tz,cold − Tz,warm)</code>
          <p>Przykład: dla punktów <strong>−20°C → 35°C</strong> oraz <strong>+15°C → 25°C</strong> model daje około <strong>29,3°C zasilania przy 0°C</strong> i około <strong>32,1°C przy −10°C</strong>. To matematycznie spójna interpolacja, a nie przypadkowa wartość pochodząca z błędnego znaku we wzorze.</p>
        </div>

        <p>Pełne strojenie nachylenia i przesunięcia rozwijamy osobno w artykule <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza w ogrzewaniu podłogowym</a>. Tutaj ważniejsze jest zrozumienie, że regulator może realizować tę samą fizyczną zależność w różny sposób: przez dwa punkty, nachylenie i poziom, krzywą numerowaną albo algorytm adaptacyjny.</p>
      </section>

      <section class="rk-weather-section" id="rk-weather-uklady" aria-labelledby="rk-weather-h2-4">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">04</div>
          <div>
            <h2 id="rk-weather-h2-4">Trzy poprawne architektury – regulator nie zawsze steruje mieszaczem</h2>
            <p>Sposób wykonania polecenia zależy od źródła ciepła i liczby obiegów temperaturowych.</p>
          </div>
        </div>

        <div class="rk-weather-architectures">
          <article class="rk-weather-architecture">
            <span>Układ A • bezpośredni</span>
            <h3>Pompa ciepła i podłogówka</h3>
            <div class="rk-weather-nodes" aria-label="Schemat bezpośredniego układu z pompą ciepła">
              <div class="rk-weather-node">Czujnik zewnętrzny</div>
              <div class="rk-weather-node">Regulator w pompie ciepła</div>
              <div class="rk-weather-node">Temperatura wody wytwarzana przez źródło</div>
              <div class="rk-weather-node">Rozdzielacz i pętle podłogowe</div>
            </div>
            <p>Źródło bezpośrednio przygotowuje temperaturę wynikającą z krzywej. Dodatkowy mieszacz może być zbędny, jeżeli cała instalacja pracuje na jednym niskim parametrze i hydraulika pozwala na bezpośrednie połączenie.</p>
          </article>

          <article class="rk-weather-architecture">
            <span>Układ B • jeden parametr</span>
            <h3>Kocioł kondensacyjny i podłogówka</h3>
            <div class="rk-weather-nodes" aria-label="Schemat bezpośredniego układu z kotłem kondensacyjnym">
              <div class="rk-weather-node">Czujnik zewnętrzny</div>
              <div class="rk-weather-node">Regulator kotła</div>
              <div class="rk-weather-node">Modulacja palnika i temperatura kotła</div>
              <div class="rk-weather-node">Obieg niskotemperaturowy</div>
            </div>
            <p>Jeżeli kocioł potrafi stabilnie pracować z wymaganą temperaturą, regulator może obniżać parametr bezpośrednio w źródle. Niska temperatura powrotu sprzyja kondensacji, ale układ trzeba ocenić razem z wymaganym przepływem i minimalną mocą kotła.</p>
          </article>

          <article class="rk-weather-architecture">
            <span>Układ C • mieszany</span>
            <h3>Grzejniki i ogrzewanie podłogowe</h3>
            <div class="rk-weather-nodes" aria-label="Schemat układu z obiegiem mieszanym">
              <div class="rk-weather-node">Regulator nadrzędny</div>
              <div class="rk-weather-node">Obieg grzejnikowy – wyższa krzywa</div>
              <div class="rk-weather-node">Zawór z siłownikiem i pompa obiegu</div>
              <div class="rk-weather-node">Podłogówka – niższa krzywa</div>
            </div>
            <p>Oddzielny obieg temperaturowy uzasadnia zastosowanie <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworu mieszającego</a>. Regulator musi wtedy obsłużyć drugą krzywą, siłownik i pompę albo współpracować z modułem rozszerzającym.</p>
          </article>
        </div>

        <div class="rk-weather-warning">
          <p><strong>Błąd projektowy:</strong> dodawanie mieszacza „bo podłogówka zawsze go potrzebuje”. Mieszacz jest potrzebny wtedy, gdy trzeba przygotować odrębną temperaturę dla danego obiegu albo wymaga tego konkretna topologia hydrauliczna. Nie powinien bez potrzeby dublować regulacji źródła i zwiększać złożoności instalacji.</p>
        </div>
      </section>

      <section class="rk-weather-section" id="rk-weather-symulator" aria-labelledby="rk-weather-h2-5">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">05</div>
          <div>
            <h2 id="rk-weather-h2-5">Interaktywny symulator regulatora pogodowego</h2>
            <p>Zobacz, jak dwa punkty, temperatura zewnętrzna i przesunięcie wpływają na temperaturę zasilania.</p>
          </div>
        </div>

        <div class="rk-weather-lab" id="rk-weather-lab" aria-label="Edukacyjny symulator krzywej regulatora pogodowego">
          <div class="rk-weather-lab-head">
            <h3>Laboratorium krzywej pogodowej</h3>
            <p>Presety są przykładami edukacyjnymi. Nie stanowią nastaw dla konkretnego budynku ani konkretnego urządzenia.</p>
            <div class="rk-weather-presets" role="group" aria-label="Przykładowe profile">
              <button class="rk-weather-preset is-active" type="button" data-weather-preset="floor">Nowy dom • podłogówka</button>
              <button class="rk-weather-preset" type="button" data-weather-preset="heatpump">Niski parametr • pompa ciepła</button>
              <button class="rk-weather-preset" type="button" data-weather-preset="modernized">Budynek modernizowany</button>
            </div>
          </div>

          <div class="rk-weather-lab-grid">
            <div class="rk-weather-controls">
              <div class="rk-weather-control"><label for="rk-weather-cold-out">Projektowa temperatura zewnętrzna <output id="rk-weather-cold-out-value">−20°C</output></label><input id="rk-weather-cold-out" type="range" min="-24" max="-10" step="1" value="-20"></div>
              <div class="rk-weather-control"><label for="rk-weather-cold-flow">Zasilanie przy projektowym mrozie <output id="rk-weather-cold-flow-value">35°C</output></label><input id="rk-weather-cold-flow" type="range" min="28" max="48" step="0.5" value="35"></div>
              <div class="rk-weather-control"><label for="rk-weather-warm-out">Granica ogrzewania / ciepły punkt <output id="rk-weather-warm-out-value">15°C</output></label><input id="rk-weather-warm-out" type="range" min="10" max="18" step="1" value="15"></div>
              <div class="rk-weather-control"><label for="rk-weather-warm-flow">Zasilanie w ciepłym punkcie <output id="rk-weather-warm-flow-value">25°C</output></label><input id="rk-weather-warm-flow" type="range" min="20" max="30" step="0.5" value="25"></div>
              <div class="rk-weather-control"><label for="rk-weather-now-out">Aktualna temperatura zewnętrzna <output id="rk-weather-now-out-value">0°C</output></label><input id="rk-weather-now-out" type="range" min="-25" max="20" step="0.5" value="0"></div>
              <div class="rk-weather-control"><label for="rk-weather-shift">Przesunięcie równoległe <output id="rk-weather-shift-value">0 K</output></label><input id="rk-weather-shift" type="range" min="-5" max="5" step="0.5" value="0"></div>
              <div class="rk-weather-control"><label for="rk-weather-limit">Maksymalny limit zasilania <output id="rk-weather-limit-value">40°C</output></label><input id="rk-weather-limit" type="range" min="30" max="55" step="1" value="40"></div>
            </div>

            <div class="rk-weather-visual">
              <div class="rk-weather-results" aria-live="polite">
                <div class="rk-weather-result"><span>Temperatura zadana</span><strong id="rk-weather-result-flow">29,3°C</strong></div>
                <div class="rk-weather-result"><span>Zmiana na 1 K na zewnątrz</span><strong id="rk-weather-result-slope">0,286 K</strong></div>
                <div class="rk-weather-result"><span>Stan regulatora</span><strong id="rk-weather-result-mode">Grzanie</strong></div>
              </div>

              <svg class="rk-weather-chart" id="rk-weather-chart" viewBox="0 0 650 360" role="img" aria-labelledby="rk-weather-chart-title rk-weather-chart-desc">
                <title id="rk-weather-chart-title">Wykres przykładowej krzywej grzewczej</title>
                <desc id="rk-weather-chart-desc">Zależność temperatury zasilania od temperatury zewnętrznej wraz z aktualnym punktem pracy.</desc>
                <line class="rk-grid-line" x1="62" y1="55" x2="620" y2="55"></line>
                <line class="rk-grid-line" x1="62" y1="112" x2="620" y2="112"></line>
                <line class="rk-grid-line" x1="62" y1="169" x2="620" y2="169"></line>
                <line class="rk-grid-line" x1="62" y1="226" x2="620" y2="226"></line>
                <line class="rk-grid-line" x1="62" y1="283" x2="620" y2="283"></line>
                <line class="rk-axis" x1="62" y1="25" x2="62" y2="315"></line>
                <line class="rk-axis" x1="62" y1="315" x2="620" y2="315"></line>
                <text class="rk-tick" x="28" y="59">50</text>
                <text class="rk-tick" x="28" y="116">45</text>
                <text class="rk-tick" x="28" y="173">40</text>
                <text class="rk-tick" x="28" y="230">35</text>
                <text class="rk-tick" x="28" y="287">30</text>
                <text class="rk-tick" x="52" y="337">−25</text>
                <text class="rk-tick" x="171" y="337">−15</text>
                <text class="rk-tick" x="294" y="337">−5</text>
                <text class="rk-tick" x="420" y="337">5</text>
                <text class="rk-tick" x="536" y="337">15</text>
                <text class="rk-axis-label" x="236" y="355">Temperatura zewnętrzna [°C]</text>
                <text class="rk-axis-label" transform="rotate(-90 13 223)" x="13" y="223">Temperatura zasilania [°C]</text>
                <line class="rk-guide" id="rk-weather-guide-x" x1="0" y1="0" x2="0" y2="315"></line>
                <line class="rk-guide" id="rk-weather-guide-y" x1="62" y1="0" x2="0" y2="0"></line>
                <path class="rk-curve" id="rk-weather-curve" d=""></path>
                <circle class="rk-dot" id="rk-weather-dot" cx="0" cy="0" r="8"></circle>
              </svg>

              <div class="rk-weather-status" id="rk-weather-status">Przy 0°C na zewnątrz model wyznacza około 29,3°C zasilania. Wartość nie przekracza ustawionego limitu.</div>
            </div>
          </div>
          <div class="rk-weather-disclaimer"><strong>Ważne:</strong> symulator pokazuje wyłącznie interpolację między dwoma punktami. Nie oblicza strat ciepła, mocy podłogi, oporu okładziny, przepływów ani bezwładności. Nastawy konkretnego urządzenia należy wykonać zgodnie z jego dokumentacją i parametrami projektu.</div>
        </div>

        <div class="rk-weather-note">
          <p><strong>Dlaczego model dwupunktowy jest bezpieczniejszy edukacyjnie?</strong> Pozwala od razu sprawdzić, czy dla obliczeniowej temperatury zewnętrznej regulator osiąga projektową temperaturę zasilania. Nie wymaga zgadywania, co producent danego sterownika oznaczył numerem 0,3, 0,4 albo 0,8.</p>
        </div>
      </section>

      <section class="rk-weather-section" id="rk-weather-ustawienie" aria-labelledby="rk-weather-h2-6">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">06</div>
          <div>
            <h2 id="rk-weather-h2-6">Jak ustawić sterownik pogodowy do ogrzewania podłogowego?</h2>
            <p>Procedura zaczyna się od danych projektowych, a nie od przypadkowej krzywej znalezionej w internecie.</p>
          </div>
        </div>

        <ol class="rk-weather-howto">
          <li class="rk-weather-howto-step" id="rk-weather-step-1"><span>01</span><div><h3>Ustal projektowy punkt pracy</h3><p>Potrzebujesz projektowej temperatury zewnętrznej dla lokalizacji, temperatury pomieszczeń oraz parametrów zasilania i powrotu wynikających z obliczonej mocy podłogi. Podstawą jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, a nie powierzchnia domu pomnożona przez uniwersalny wskaźnik.</p></div></li>
          <li class="rk-weather-howto-step" id="rk-weather-step-2"><span>02</span><div><h3>Wprowadź ciepły i zimny punkt krzywej</h3><p>Zimny punkt powinien odpowiadać parametrowi projektu przy obliczeniowej temperaturze zewnętrznej. Ciepły punkt ustawiamy w pobliżu granicy ogrzewania, uwzględniając minimalną temperaturę, którą źródło i obieg potrafią stabilnie utrzymać.</p></div></li>
          <li class="rk-weather-howto-step" id="rk-weather-step-3"><span>03</span><div><h3>Ustaw limity bezpieczeństwa</h3><p>Ogranicz maksymalną temperaturę zasilania zgodnie z projektem, konstrukcją podłogi i okładziną. Sam limit wody nie zastępuje kontroli temperatury powierzchni. Więcej zależności opisuje artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p></div></li>
          <li class="rk-weather-howto-step" id="rk-weather-step-4"><span>04</span><div><h3>Otwórz przepływy i ustabilizuj hydraulikę</h3><p>Przed oceną krzywej sprawdź, czy pętle mają przepływy projektowe, pompa pracuje w prawidłowym punkcie, a siłowniki nie zamykają przypadkowo większości instalacji. Regulacja pogodowa nie powinna być strojona na układzie z nieznanym przepływem.</p></div></li>
          <li class="rk-weather-howto-step" id="rk-weather-step-5"><span>05</span><div><h3>Obserwuj pełne okresy pracy</h3><p>Po jednej korekcie pozostaw instalację bez kolejnych zmian przez co najmniej 24–72 godziny, zależnie od masy podłogi, pogody i konstrukcji budynku. Krótkie testy po kilku godzinach mogą prowadzić do pogoni za bezwładnością.</p></div></li>
          <li class="rk-weather-howto-step" id="rk-weather-step-6"><span>06</span><div><h3>Koryguj właściwy parametr</h3><p>Jeśli błąd jest podobny podczas całego sezonu, zmień poziom lub przesunięcie. Jeżeli różnica rośnie wraz z mrozem, koryguj nachylenie albo zimny punkt. Jedno wadliwe pomieszczenie diagnozuj lokalnie – poprzez moc, powierzchnię i przepływ.</p></div></li>
        </ol>

        <h3>Macierz diagnostyczna krzywej grzewczej</h3>
        <div class="rk-weather-table-wrap">
          <table class="rk-weather-table">
            <thead><tr><th>Objaw</th><th>Najbardziej prawdopodobny kierunek korekty</th><th>Czego nie robić od razu?</th></tr></thead>
            <tbody>
              <tr><td data-label="Objaw"><strong>Za zimno zarówno przy +5°C, jak i przy mrozie</strong></td><td data-label="Korekta">Podnieść poziom lub przesunąć całą krzywą niewielkim krokiem</td><td data-label="Nie rób">Nie zwiększać gwałtownie nachylenia, jeśli błąd jest stały</td></tr>
              <tr><td data-label="Objaw"><strong>Dobrze w okresie przejściowym, za zimno podczas mrozu</strong></td><td data-label="Korekta">Podnieść nachylenie albo zimny punkt krzywej</td><td data-label="Nie rób">Nie podnosić całej krzywej, bo przegrzeje dom przy łagodnej pogodzie</td></tr>
              <tr><td data-label="Objaw"><strong>Za ciepło przy +5°C, dobrze podczas mrozu</strong></td><td data-label="Korekta">Obniżyć ciepły punkt lub odpowiednio zmienić nachylenie</td><td data-label="Nie rób">Nie obniżać wyłącznie punktu projektowego</td></tr>
              <tr><td data-label="Objaw"><strong>Tylko jedno pomieszczenie jest za zimne</strong></td><td data-label="Korekta">Sprawdzić obciążenie cieplne, aktywną powierzchnię, przepływ, siłownik i zapowietrzenie</td><td data-label="Nie rób">Nie podnosić temperatury całego domu dla jednej strefy</td></tr>
              <tr><td data-label="Objaw"><strong>Przegrzewanie po słońcu lub gotowaniu</strong></td><td data-label="Korekta">Ograniczyć wpływ pokojowy, użyć adaptacji albo łagodnej korekty strefowej</td><td data-label="Nie rób">Nie traktować zysków wewnętrznych jak błędu zimnego punktu</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-weather-section" id="rk-weather-czujniki" aria-labelledby="rk-weather-h2-7">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">07</div>
          <div>
            <h2 id="rk-weather-h2-7">Czujniki regulatora pogodowego – co mierzą i gdzie popełnia się błędy?</h2>
            <p>Algorytm może być tak dobry, jak dane, które otrzymuje.</p>
          </div>
        </div>

        <div class="rk-weather-card-grid four">
          <div class="rk-weather-card"><div class="rk-weather-card-icon">ZE</div><h4>Czujnik zewnętrzny</h4><p>Podstawowy sygnał krzywej. Montuje się go zgodnie z instrukcją urządzenia w miejscu reprezentatywnym, bez bezpośredniego słońca oraz wpływu okien, drzwi, wyrzutni i innych źródeł ciepła.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">ZA</div><h4>Czujnik zasilania</h4><p>Mierzy temperaturę za elementem, którym sterujemy. W obiegu mieszanym powinien znajdować się po stronie przygotowanej wody, aby regulator widział efekt ruchu zaworu.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">PO</div><h4>Czujnik pokojowy</h4><p>Może przesuwać wartość zadaną lub ograniczać grzanie po osiągnięciu temperatury. Jego wpływ powinien być łagodny i dopasowany do bezwładności podłogi.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">PR</div><h4>Powrót lub podłoga</h4><p>Czujnik powrotu wspiera diagnostykę i funkcje ochronne, a <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujnik podłogowy</a> może ograniczać temperaturę wybranej powierzchni. Nie należy mylić ich funkcji.</p></div>
        </div>

        <h3>Montaż czujnika zewnętrznego – zasady praktyczne</h3>
        <ul class="rk-weather-list">
          <li>Wybierz elewację i wysokość wskazaną w dokumentacji regulatora; często jest to zacieniona ściana północna albo północno-zachodnia.</li>
          <li>Unikaj bezpośredniego promieniowania słonecznego, wnęk, nagrzewających się osłon oraz miejsc z zastojem powietrza.</li>
          <li>Nie montuj czujnika nad oknem, obok drzwi, kratki wentylacyjnej, wyrzutni rekuperacji, agregatu ani przewodu spalinowego.</li>
          <li>Nie dopisuj samodzielnie nietypowej osłony, jeżeli zmienia ona wentylację obudowy. Czujnik powinien mierzyć powietrze, a nie mikroklimat zamkniętej puszki.</li>
          <li>Po uruchomieniu porównaj odczyt z niezależnym termometrem w podobnych warunkach, ale nie koryguj go na podstawie chwilowej różnicy między dwoma różnie zlokalizowanymi punktami.</li>
        </ul>

        <div class="rk-weather-truth"><p><strong>Czujnik pokojowy nie jest zawsze obowiązkowy.</strong> W dobrze zrównoważonym układzie pogodowym może pełnić jedynie funkcję korekcyjną. Agresywne włączanie i wyłączanie źródła na podstawie jednego pomieszczenia bywa niekorzystne szczególnie dla pompy ciepła i masywnej podłogi.</p></div>
      </section>

      <section class="rk-weather-section" id="rk-weather-sygnaly" aria-labelledby="rk-weather-h2-8">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">08</div>
          <div>
            <h2 id="rk-weather-h2-8">Wyjścia regulatora – styk, sterowanie trójpunktowe, 0–10 V, PWM i magistrala</h2>
            <p>Kompatybilność elektryczna i komunikacyjna jest równie ważna jak funkcje opisane w katalogu.</p>
          </div>
        </div>

        <div class="rk-weather-table-wrap">
          <table class="rk-weather-table">
            <thead><tr><th>Sposób sterowania</th><th>Co przekazuje?</th><th>Typowe zastosowanie</th><th>Na co uważać?</th></tr></thead>
            <tbody>
              <tr><td data-label="Sterowanie"><strong>Styk beznapięciowy ON/OFF</strong></td><td data-label="Sygnał">Żądanie pracy albo jego brak</td><td data-label="Zastosowanie">Prosty sygnał do źródła, pompy lub listwy</td><td data-label="Uwaga">Sam styk nie przekazuje zadanej temperatury zasilania i może ograniczać modulację</td></tr>
              <tr><td data-label="Sterowanie"><strong>Trójpunktowe: otwórz–stop–zamknij</strong></td><td data-label="Sygnał">Impulsy w dwóch kierunkach</td><td data-label="Zastosowanie">Siłownik zaworu mieszającego</td><td data-label="Uwaga">Czas pełnego obrotu siłownika musi odpowiadać konfiguracji regulatora</td></tr>
              <tr><td data-label="Sterowanie"><strong>0–10 V</strong></td><td data-label="Sygnał">Wartość proporcjonalną</td><td data-label="Zastosowanie">Modulacja urządzenia, pompy lub siłownika</td><td data-label="Uwaga">Trzeba sprawdzić kierunek, zakres oraz znaczenie napięcia minimalnego i maksymalnego</td></tr>
              <tr><td data-label="Sterowanie"><strong>PWM</strong></td><td data-label="Sygnał">Wypełnienie impulsu</td><td data-label="Zastosowanie">Wybrane pompy, siłowniki i układy modulowane</td><td data-label="Uwaga">PWM nie jest jednym uniwersalnym standardem dla wszystkich urządzeń</td></tr>
              <tr><td data-label="Sterowanie"><strong>Magistrala cyfrowa</strong></td><td data-label="Sygnał">Dane dwukierunkowe</td><td data-label="Zastosowanie">Wartości zadane, stany pracy, błędy, modulacja i diagnostyka</td><td data-label="Uwaga">Zgodność nazw złączy nie gwarantuje zgodności protokołów i wersji</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-weather-warning"><p><strong>Przed zakupem nie wystarczy pytanie „czy regulator obsługuje pompę ciepła?”.</strong> Trzeba sprawdzić konkretny sposób komunikacji, liczbę obiegów, rodzaj siłownika, obciążalność wyjść, typ czujników, logikę awaryjną oraz to, które urządzenie ma być nadrzędne.</p></div>
      </section>

      <section class="rk-weather-section" id="rk-weather-zrodla" aria-labelledby="rk-weather-h2-9">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">09</div>
          <div>
            <h2 id="rk-weather-h2-9">Regulator pogodowy z pompą ciepła, kotłem i instalacją mieszaną</h2>
            <p>Ta sama idea regulacji prowadzi do różnych rozwiązań wykonawczych.</p>
          </div>
        </div>

        <h3>Pompa ciepła i ogrzewanie podłogowe</h3>
        <p>W instalacji z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a> celem jest uzyskanie wymaganej temperatury pomieszczeń przy możliwie niskiej temperaturze wody i stabilnym przepływie. Najczęściej korzystne jest, aby automatyka źródła bezpośrednio realizowała krzywą, zamiast wytwarzać niepotrzebnie gorącą wodę, a następnie schładzać ją na mieszaczu. Ostateczny układ zależy jednak od minimalnego przepływu pompy, liczby obiegów, bufora, sprzęgła i pozostałych odbiorników.</p>

        <p>Duże nocne obniżenie temperatury może wymusić późniejsze ładowanie podłogi wyższym parametrem. W masywnym systemie często lepiej działa niewielka korekta albo stała temperatura zadana. Podobnie agresywne zamykanie wielu pętli przez termostaty może zmniejszyć przepływ poniżej wymagań źródła i zwiększać liczbę startów sprężarki.</p>

        <h3>Kocioł kondensacyjny</h3>
        <p>Przy jednym niskotemperaturowym obiegu <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> może regulować temperaturę bezpośrednio. Pogodowe obniżenie zasilania zwykle obniża również temperaturę powrotu, co sprzyja kondensacji. Nie rozwiązuje jednak problemu zbyt wysokiej mocy minimalnej: jeśli kocioł nie potrafi zejść do aktualnego obciążenia budynku, może taktować mimo poprawnej krzywej.</p>

        <h3>Instalacja grzejnikowa i podłogowa</h3>
        <p>Dwa rodzaje odbiorników mogą wymagać dwóch oddzielnych krzywych i dwóch obiegów. Wtedy regulator powinien koordynować temperaturę źródła, obieg bezpośredni oraz obieg mieszany. Nie należy kopiować tej samej temperatury ani tej samej krzywej na grzejniki i podłogę tylko dlatego, że znajdują się w jednym budynku.</p>

        <div class="rk-weather-note"><p><strong>Połączenie źródła i odbiorników powinno wynikać z projektu.</strong> Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a> rozwija zależność między temperaturą zasilania, mocą podłogi, przepływem i sprawnością całego układu.</p></div>
      </section>

      <section class="rk-weather-section" id="rk-weather-oszczednosci" aria-labelledby="rk-weather-h2-10">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">10</div>
          <div>
            <h2 id="rk-weather-h2-10">Czy sterownik pogodowy zawsze obniża rachunki?</h2>
            <p>Nie istnieje uczciwa, uniwersalna obietnica oszczędności dla każdego domu.</p>
          </div>
        </div>

        <p>Efekt zależy od punktu odniesienia. Jeżeli wcześniej instalacja pracowała ze stałą, zawyżoną temperaturą i przegrzewała budynek, poprawna regulacja może przynieść zauważalną zmianę. Jeżeli natomiast źródło już modulowało na niskim parametrze, dom był dobrze wyregulowany, a temperatury pomieszczeń stabilne, dodatkowy efekt może być niewielki.</p>

        <div class="rk-weather-card-grid three">
          <div class="rk-weather-card"><div class="rk-weather-card-icon">01</div><h4>Najpierw komfort</h4><p>Regulator ma bilansować bieżące straty bez cykli przegrzewania i wychładzania. Oszczędność nie powinna wynikać z niedogrzania domu.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">02</div><h4>Potem sprawność źródła</h4><p>Niższa wymagana temperatura może poprawiać warunki pompy ciepła i kotła kondensacyjnego, ale zależność trzeba odczytywać z danych konkretnego urządzenia.</p></div>
          <div class="rk-weather-card"><div class="rk-weather-card-icon">03</div><h4>Na końcu pieniądze</h4><p>Rachunek zależy również od pogody, temperatury wewnętrznej, taryfy, wentylacji, zysków słonecznych, ciepłej wody i zachowania użytkowników.</p></div>
        </div>

        <p>Badanie eksploatacyjne opublikowane w 2025 roku, obejmujące kilka tysięcy powietrznych pomp ciepła, wykazało duży udział źle skonfigurowanych krzywych i średni potencjał zmniejszenia rocznego zużycia energii na poziomie około 4% po zastosowaniu opracowanej metody optymalizacji. Nie jest to obietnica dla każdego budynku, lecz dobry dowód, że strojenie ma znaczenie i jednocześnie nie uzasadnia marketingowych deklaracji typu „zawsze 20% oszczędności”.</p>
      </section>

      <section class="rk-weather-section" id="rk-weather-bledy" aria-labelledby="rk-weather-h2-11">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">11</div>
          <div>
            <h2 id="rk-weather-h2-11">Najczęstsze błędy przy regulatorze pogodowym</h2>
            <p>Objawy są podobne, ale przyczyny mogą leżeć w automatyce, hydraulice albo samym projekcie.</p>
          </div>
        </div>

        <div class="rk-weather-error-grid">
          <div class="rk-weather-error"><div class="rk-weather-error-no">01</div><h4>Krzywa skopiowana z internetu</h4><p>Nie uwzględnia projektowej temperatury zewnętrznej, strat budynku, rozstawu rur, okładziny ani sposobu kodowania krzywej przez urządzenie.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">02</div><h4>Zbyt częste zmiany</h4><p>Kolejna korekta jest wprowadzana, zanim masywna podłoga i budynek zdążą osiągnąć nowy stan równowagi.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">03</div><h4>Błędny czujnik zewnętrzny</h4><p>Słońce, wyrzutnia, okno albo nagrzana wnęka zmieniają odczyt, a regulator reaguje prawidłowo na nieprawidłowe dane.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">04</div><h4>Za wysoki limit</h4><p>Regulator może przy mrozie doprowadzić do parametru, którego nie przewidziano dla podłogi, drewna albo całego układu.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">05</div><h4>Mieszacz bez potrzeby</h4><p>Źródło podgrzewa wodę wyżej, a dodatkowy obieg natychmiast ją schładza, zwiększając liczbę pomp i elementów regulacyjnych.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">06</div><h4>Konflikt ze strefami</h4><p>Krzywa podnosi temperaturę, podczas gdy termostaty zamykają większość pętli. Źródło traci przepływ i zaczyna pracować niestabilnie.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">07</div><h4>Brak równoważenia</h4><p>Krzywa jest podnoszona dla zimnego pokoju, choć rzeczywistą przyczyną jest zbyt mały przepływ w jednej pętli.</p></div>
          <div class="rk-weather-error"><div class="rk-weather-error-no">08</div><h4>Próba leczenia projektu automatyką</h4><p>Regulator nie zwiększy aktywnej powierzchni, nie zmniejszy oporu podłogi i nie naprawi zbyt długich lub źle rozłożonych pętli.</p></div>
        </div>
      </section>

      <section class="rk-weather-section" id="rk-weather-dobor" aria-labelledby="rk-weather-h2-12">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">12</div>
          <div>
            <h2 id="rk-weather-h2-12">Jak dobrać regulator pogodowy bez przywiązywania się do marki?</h2>
            <p>Najpierw określ układ, dopiero później porównuj urządzenia.</p>
          </div>
        </div>

        <div class="rk-weather-check-grid">
          <div class="rk-weather-check"><div class="rk-weather-check-no">01</div><h4>Liczba obiegów</h4><p>Czy jest jeden obieg podłogowy, czy osobne obiegi dla kondygnacji, grzejników, podłogówki i innych odbiorników?</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">02</div><h4>Element wykonawczy</h4><p>Czy regulator ma sterować źródłem, mieszaczem, pompą, kilkoma modułami czy połączeniem tych elementów?</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">03</div><h4>Protokół i wyjścia</h4><p>Styk, sygnał trójpunktowy, 0–10 V oraz magistrale nie są zamienne bez sprawdzenia kompatybilności.</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">04</div><h4>Czujniki</h4><p>Sprawdź typ, zakres, charakterystykę, długość przewodów i możliwość kalibracji czujnika zewnętrznego oraz zasilania.</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">05</div><h4>Limity i zabezpieczenia</h4><p>Potrzebne są ograniczenia temperatury, zachowanie po awarii czujnika, ochrona przeciwzamrożeniowa i logiczny tryb letni.</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">06</div><h4>Wpływ pokojowy</h4><p>Warto wiedzieć, czy czujnik tylko przesuwa krzywą, wyłącza źródło, czy regulator potrafi adaptacyjnie uczyć się budynku.</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">07</div><h4>Diagnostyka</h4><p>Historia temperatury zewnętrznej, zasilania, powrotu, stanów pracy i błędów znacząco ułatwia strojenie oraz serwis.</p></div>
          <div class="rk-weather-check"><div class="rk-weather-check-no">08</div><h4>Hierarchia sterowania</h4><p>Trzeba jednoznacznie wskazać urządzenie nadrzędne, aby źródło, mieszacz, listwa i termostaty nie walczyły ze sobą.</p></div>
        </div>

        <div class="rk-weather-truth"><p><strong>Dobry wybór nie zaczyna się od listy funkcji.</strong> Zaczyna się od schematu hydraulicznego, parametrów projektu i informacji, w jaki sposób źródło ciepła przyjmuje wartość zadaną. Dopiero wtedy wiadomo, jakich wejść, wyjść i algorytmów naprawdę potrzebujesz.</p></div>
      </section>

      <section class="rk-weather-section" id="rk-weather-faq" aria-labelledby="rk-weather-h2-13">
        <div class="rk-weather-section-head">
          <div class="rk-weather-section-no">13</div>
          <div>
            <h2 id="rk-weather-h2-13">FAQ – sterownik i regulator pogodowy</h2>
            <p>Odpowiedzi na pytania związane z montażem, ustawieniami i współpracą z podłogówką.</p>
          </div>
        </div>

        <div class="rk-weather-faq-list">
          <details class="rk-weather-faq" id="rk-weather-faq-1"><summary>Co to jest sterownik pogodowy?</summary><div class="rk-weather-faq-answer"><p>Sterownik pogodowy to regulator, który na podstawie temperatury zewnętrznej oraz zapisanej krzywej wyznacza wymaganą temperaturę zasilania instalacji. Może przekazywać tę wartość do źródła ciepła albo realizować ją przez sterowanie zaworem mieszającym.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-2"><summary>Czym sterownik pogodowy różni się od termostatu pokojowego?</summary><div class="rk-weather-faq-answer"><p>Regulator pogodowy reaguje przede wszystkim na temperaturę zewnętrzną i zmienia parametr wody. Termostat pokojowy porównuje temperaturę pomieszczenia z nastawą i wysyła żądanie, korektę albo polecenie dla siłownika. Urządzenia mogą współpracować, ale nie pełnią tej samej funkcji.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-3"><summary>Czy sterownik pogodowy jest potrzebny do ogrzewania podłogowego?</summary><div class="rk-weather-faq-answer"><p>Nie jest warunkiem fizycznego działania instalacji, ale jest bardzo użytecznym sposobem dopasowania temperatury zasilania do zmiennych strat budynku. Szczególne znaczenie ma w systemach o dużej bezwładności i ze źródłami korzystającymi z niskiej temperatury wody.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-4"><summary>Jaką krzywą grzewczą ustawić do podłogówki?</summary><div class="rk-weather-faq-answer"><p>Nie istnieje jedna krzywa odpowiednia dla wszystkich domów i urządzeń. Punktem startowym powinny być projektowa temperatura zewnętrzna oraz projektowa temperatura zasilania. Oznaczenia nachylenia różnią się między regulatorami, dlatego trzeba korzystać z dokumentacji urządzenia i danych projektu.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-5"><summary>Gdzie zamontować czujnik temperatury zewnętrznej?</summary><div class="rk-weather-faq-answer"><p>Należy zastosować lokalizację i sposób montażu wskazane w dokumentacji regulatora. Miejsce powinno być reprezentatywne, bez bezpośredniego słońca i wpływu okien, drzwi, wyrzutni wentylacji, agregatów, kominów oraz innych lokalnych źródeł ciepła.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-6"><summary>Czy regulator pogodowy może działać bez czujnika pokojowego?</summary><div class="rk-weather-faq-answer"><p>Tak. Podstawą regulacji pogodowej jest czujnik zewnętrzny i krzywa. Czujnik pokojowy może zapewniać korektę zysków słonecznych i wewnętrznych, ale jego wpływ powinien być dopasowany do bezwładności instalacji oraz strategii pracy źródła.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-7"><summary>Czy podłogówka zawsze potrzebuje zaworu mieszającego?</summary><div class="rk-weather-faq-answer"><p>Nie. Jeżeli pompa ciepła lub kocioł bezpośrednio wytwarza wymaganą niską temperaturę dla jednego obiegu, dodatkowy mieszacz może być zbędny. Jest uzasadniony między innymi wtedy, gdy podłogówka stanowi oddzielny obieg o niższej temperaturze niż pozostałe odbiorniki.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-8"><summary>Czy regulator pogodowy poprawia COP pompy ciepła?</summary><div class="rk-weather-faq-answer"><p>Może poprawić warunki pracy, jeżeli pozwala utrzymywać tylko taką temperaturę zasilania, jaka jest aktualnie potrzebna. Rzeczywisty efekt zależy od konstrukcji pompy, temperatury dolnego źródła, przepływu, odszraniania, obciążenia częściowego i ustawień całej instalacji.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-9"><summary>Czy warto obniżać temperaturę podłogówki na noc?</summary><div class="rk-weather-faq-answer"><p>W masywnej podłodze duże i krótkie obniżenie często daje niewielki efekt, ponieważ instalacja reaguje z opóźnieniem. Późniejsze odtworzenie temperatury może wymagać wyższego parametru. Decyzję należy dostosować do bezwładności, taryfy, źródła i rytmu użytkowania budynku.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-10"><summary>Dlaczego dom przegrzewa się podczas nagłej odwilży?</summary><div class="rk-weather-faq-answer"><p>Regulator obniża temperaturę wody po wzroście temperatury zewnętrznej, ale podłoga i konstrukcja budynku nadal zawierają wcześniej zgromadzoną energię. Zjawisko mogą zwiększać zyski słoneczne, zbyt stroma krzywa, zbyt duży wpływ pokojowy albo brak algorytmu uwzględniającego prognozę.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-11"><summary>Czy jeden regulator może obsługiwać kilka obiegów?</summary><div class="rk-weather-faq-answer"><p>Tak, jeżeli ma odpowiednią liczbę modułów, wyjść i niezależnych krzywych. Każdy obieg musi mieć zdefiniowany element wykonawczy, czujnik temperatury i logikę pracy. Obsługa kilku pomieszczeń nie zawsze oznacza kilka obiegów temperaturowych.</p></div></details>
          <details class="rk-weather-faq" id="rk-weather-faq-12"><summary>Jak długo obserwować instalację po zmianie krzywej?</summary><div class="rk-weather-faq-answer"><p>W wodnym ogrzewaniu podłogowym zwykle warto odczekać co najmniej 24–72 godziny przy możliwie stabilnej pogodzie. Dokładny czas zależy od masy jastrychu, izolacji, konstrukcji budynku, zysków słonecznych i wielkości wykonanej korekty.</p></div></details>
        </div>

        <div class="rk-weather-sources" aria-label="Źródła techniczne opracowania">
          <strong>Źródła i podstawa techniczna opracowania</strong>
          Sterowanie systemami płaszczyznowymi: <a href="https://www.iso.org/standard/64999.html" target="_blank" rel="noopener noreferrer">ISO 11855-6:2018 – Control</a> wraz z poprawką z 2023 roku. Projektowanie i wymiarowanie: <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener noreferrer">ISO 11855-3:2021</a>. Parametry obliczeń energetycznych systemów płaszczyznowych: <a href="https://www.iso.org/standard/69830.html" target="_blank" rel="noopener noreferrer">ISO 11855-7:2019</a>. Dane eksploatacyjne dotyczące optymalizacji krzywych pomp ciepła: <a href="https://doi.org/10.1016/j.apenergy.2025.125725" target="_blank" rel="noopener noreferrer">Applied Energy, 2025 – Optimization of heating curves for heat pumps in operation</a>. Linki zewnętrzne prowadzą wyłącznie do źródeł normatywnych i naukowych oraz otwierają się w nowej karcie.
        </div>
      </section>

      <section class="rk-weather-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <h3>Regulator może realizować tylko takie parametry, jakie wcześniej policzono</h3>
        <p>Projekt określa obciążenia cieplne pomieszczeń, projektową temperaturę zasilania i powrotu, rozstawy i długości pętli, wymagane przepływy, opory hydrauliczne oraz nastawy rozdzielacza. Dopiero na tej podstawie można świadomie ustawić krzywą pogodową i limity automatyki.</p>
        <a class="rk-weather-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl – serwisu należącego do autora artykułu.</small>
      </section>

      <aside class="rk-weather-author-box" aria-label="Informacje o autorze" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <div class="rk-weather-author-head">
          <div><h3>Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-weather-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-weather-author-main">
          <div class="rk-weather-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="174" height="174" loading="lazy" itemprop="image">
            <h4 itemprop="name">Robert Kucharski</h4>
            <span class="rk-weather-author-role" itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-weather-author-content">
            <div class="rk-weather-quote"><blockquote>„Regulator pogodowy nie powinien zgadywać, jakiej temperatury potrzebuje dom. Jego krzywa ma wynikać z projektowego punktu pracy instalacji, a później być spokojnie dostrojona na podstawie zachowania budynku.”</blockquote></div>
            <div class="rk-weather-tabs">
              <div class="rk-weather-tab-buttons" role="tablist" aria-label="Informacje o autorze">
                <button class="rk-weather-tab-button is-active" type="button" role="tab" aria-selected="true" aria-controls="rk-weather-tab-about" id="rk-weather-tab-about-button" data-weather-author-tab="about">O autorze</button>
                <button class="rk-weather-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-weather-tab-exp" id="rk-weather-tab-exp-button" data-weather-author-tab="exp">Doświadczenie</button>
                <button class="rk-weather-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-weather-tab-sites" id="rk-weather-tab-sites-button" data-weather-author-tab="sites">Portale</button>
              </div>
              <div class="rk-weather-tab-panel is-active" id="rk-weather-tab-about" role="tabpanel" aria-labelledby="rk-weather-tab-about-button" data-weather-author-panel="about">
                <p itemprop="description">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 oraz automatykę w jeden możliwy do wykonania układ.</p>
              </div>
              <div class="rk-weather-tab-panel" id="rk-weather-tab-exp" role="tabpanel" aria-labelledby="rk-weather-tab-exp-button" data-weather-author-panel="exp" hidden>
                <p>Doświadczenie obejmuje ponad 1000 projektów i analiz instalacji przygotowywanych dla budynków w całej Polsce. Dokumentacje uwzględniają temperatury projektowe, rozstawy i długości pętli, opory hydrauliczne, nastawy rozdzielaczy, pompy obiegowe, źródła niskotemperaturowe oraz strategię sterowania.</p>
              </div>
              <div class="rk-weather-tab-panel" id="rk-weather-tab-sites" role="tabpanel" aria-labelledby="rk-weather-tab-sites-button" data-weather-author-panel="sites" hidden>
                <p>Jestem właścicielem trzech serwisów branżowych. Podaję to jawnie, aby czytelnik znał autorstwo publikacji i kontekst linkowania.</p>
                <div class="rk-weather-portals">
                  <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                  <a href="https://remont.biz.pl/" target="_blank" rel="noopener noreferrer">Remont.biz.pl</a>
                  <a href="https://sobir.pl/" target="_blank" rel="noopener noreferrer">Sobir.pl</a>
                </div>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/",
      "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/",
      "name": "Sterownik pogodowy do ogrzewania podłogowego – jak działa regulator i jak go ustawić?",
      "description": "Techniczny przewodnik po regulatorach pogodowych: działanie, dobór, czujniki, schematy, sygnały sterujące, ustawienie krzywej i współpraca z pompą ciepła.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#article",
      "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/" },
      "headline": "Sterownik pogodowy do ogrzewania podłogowego – jak działa regulator i jak go ustawić?",
      "alternativeHeadline": "Regulator pogodowy do podłogówki – działanie, dobór, czujniki i ustawienie krzywej",
      "description": "Techniczny przewodnik po regulatorach pogodowych: działanie, dobór, czujniki, schematy, sygnały sterujące, ustawienie krzywej i współpraca z pompą ciepła.",
      "dateModified": "2026-08-24T18:00:00+02:00",
      "inLanguage": "pl-PL",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "keywords": [
        "sterownik pogodowy do ogrzewania podłogowego",
        "regulator pogodowy",
        "jak działa sterownik pogodowy",
        "jak ustawić regulator pogodowy",
        "sterownik pogodowy a termostat pokojowy",
        "krzywa grzewcza ogrzewania podłogowego",
        "regulator pogodowy do pompy ciepła",
        "czujnik temperatury zewnętrznej",
        "sterowanie zaworem mieszającym",
        "automatyka ogrzewania podłogowego"
      ],
      "articleSection": [
        "Automatyka grzewcza",
        "Ogrzewanie podłogowe",
        "Pompy ciepła",
        "Regulacja instalacji",
        "Projektowanie instalacji"
      ],
      "about": [
        { "@type": "DefinedTerm", "name": "Sterownik pogodowy" },
        { "@type": "DefinedTerm", "name": "Regulator pogodowy" },
        { "@type": "DefinedTerm", "name": "Krzywa grzewcza" },
        { "@type": "DefinedTerm", "name": "Temperatura zasilania" },
        { "@type": "DefinedTerm", "name": "Czujnik temperatury zewnętrznej" },
        { "@type": "DefinedTerm", "name": "Zawór mieszający" }
      ],
      "citation": [
        { "@type": "CreativeWork", "name": "ISO 11855-6:2018 – Control", "url": "https://www.iso.org/standard/64999.html" },
        { "@type": "CreativeWork", "name": "ISO 11855-3:2021 – Design and dimensioning", "url": "https://www.iso.org/standard/74684.html" },
        { "@type": "CreativeWork", "name": "ISO 11855-7:2019 – Input parameters for energy calculation", "url": "https://www.iso.org/standard/69830.html" },
        { "@type": "ScholarlyArticle", "name": "Optimization of heating curves for heat pumps in operation", "url": "https://doi.org/10.1016/j.apenergy.2025.125725" }
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#simulator" },
        { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#faq" }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#howto",
      "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-ustawienie",
      "name": "Jak ustawić sterownik pogodowy do ogrzewania podłogowego?",
      "description": "Sześć etapów ustawienia regulatora pogodowego na podstawie danych projektowych i obserwacji budynku.",
      "inLanguage": "pl-PL",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#article" },
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal projektowy punkt pracy", "text": "Określ projektową temperaturę zewnętrzną, temperaturę pomieszczeń oraz parametry zasilania i powrotu wynikające z obliczonej mocy podłogi.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-1" },
        { "@type": "HowToStep", "position": 2, "name": "Wprowadź ciepły i zimny punkt krzywej", "text": "Zimny punkt dopasuj do parametrów projektu przy temperaturze obliczeniowej, a ciepły do granicy ogrzewania i minimalnego stabilnego parametru układu.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-2" },
        { "@type": "HowToStep", "position": 3, "name": "Ustaw limity bezpieczeństwa", "text": "Ogranicz maksymalną temperaturę zasilania zgodnie z projektem, konstrukcją podłogi i zastosowaną okładziną.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-3" },
        { "@type": "HowToStep", "position": 4, "name": "Otwórz przepływy i ustabilizuj hydraulikę", "text": "Sprawdź projektowe przepływy pętli, pracę pompy i stan siłowników przed oceną krzywej grzewczej.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-4" },
        { "@type": "HowToStep", "position": 5, "name": "Obserwuj pełne okresy pracy", "text": "Po jednej korekcie obserwuj układ przez co najmniej 24–72 godziny, zależnie od masy podłogi i warunków pogodowych.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-5" },
        { "@type": "HowToStep", "position": 6, "name": "Koryguj właściwy parametr", "text": "Stały błąd koryguj poziomem, a błąd rosnący wraz z mrozem nachyleniem lub zimnym punktem. Problemy jednego pomieszczenia diagnozuj lokalnie.", "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-step-6" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#simulator",
      "name": "Interaktywny symulator regulatora pogodowego",
      "description": "Edukacyjny model dwupunktowej krzywej grzewczej pokazujący zależność temperatury zasilania od temperatury zewnętrznej, przesunięcia i limitu.",
      "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-lab",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#article" }
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#faq",
      "url": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#rk-weather-faq",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#article" },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Co to jest sterownik pogodowy?",
          "acceptedAnswer": { "@type": "Answer", "text": "Sterownik pogodowy to regulator, który na podstawie temperatury zewnętrznej oraz zapisanej krzywej wyznacza wymaganą temperaturę zasilania instalacji. Może przekazywać tę wartość do źródła ciepła albo realizować ją przez sterowanie zaworem mieszającym." }
        },
        {
          "@type": "Question",
          "name": "Czym sterownik pogodowy różni się od termostatu pokojowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Regulator pogodowy reaguje przede wszystkim na temperaturę zewnętrzną i zmienia parametr wody. Termostat pokojowy porównuje temperaturę pomieszczenia z nastawą i wysyła żądanie, korektę albo polecenie dla siłownika." }
        },
        {
          "@type": "Question",
          "name": "Czy sterownik pogodowy jest potrzebny do ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie jest warunkiem fizycznego działania instalacji, ale jest bardzo użytecznym sposobem dopasowania temperatury zasilania do zmiennych strat budynku. Szczególne znaczenie ma w systemach o dużej bezwładności i ze źródłami korzystającymi z niskiej temperatury wody." }
        },
        {
          "@type": "Question",
          "name": "Jaką krzywą grzewczą ustawić do podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie istnieje jedna krzywa odpowiednia dla wszystkich domów i urządzeń. Punktem startowym powinny być projektowa temperatura zewnętrzna oraz projektowa temperatura zasilania. Oznaczenia nachylenia różnią się między regulatorami." }
        },
        {
          "@type": "Question",
          "name": "Gdzie zamontować czujnik temperatury zewnętrznej?",
          "acceptedAnswer": { "@type": "Answer", "text": "Należy zastosować lokalizację i sposób montażu wskazane w dokumentacji regulatora. Miejsce powinno być reprezentatywne, bez bezpośredniego słońca i wpływu okien, drzwi, wyrzutni wentylacji, agregatów, kominów oraz innych lokalnych źródeł ciepła." }
        },
        {
          "@type": "Question",
          "name": "Czy regulator pogodowy może działać bez czujnika pokojowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak. Podstawą regulacji pogodowej jest czujnik zewnętrzny i krzywa. Czujnik pokojowy może zapewniać korektę zysków słonecznych i wewnętrznych, ale jego wpływ powinien być dopasowany do bezwładności instalacji." }
        },
        {
          "@type": "Question",
          "name": "Czy podłogówka zawsze potrzebuje zaworu mieszającego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Jeżeli pompa ciepła lub kocioł bezpośrednio wytwarza wymaganą niską temperaturę dla jednego obiegu, dodatkowy mieszacz może być zbędny. Jest uzasadniony między innymi wtedy, gdy podłogówka stanowi oddzielny obieg o niższej temperaturze niż pozostałe odbiorniki." }
        },
        {
          "@type": "Question",
          "name": "Czy regulator pogodowy poprawia COP pompy ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Może poprawić warunki pracy, jeżeli pozwala utrzymywać tylko taką temperaturę zasilania, jaka jest aktualnie potrzebna. Rzeczywisty efekt zależy od konstrukcji pompy, temperatury dolnego źródła, przepływu, odszraniania i obciążenia częściowego." }
        },
        {
          "@type": "Question",
          "name": "Czy warto obniżać temperaturę podłogówki na noc?",
          "acceptedAnswer": { "@type": "Answer", "text": "W masywnej podłodze duże i krótkie obniżenie często daje niewielki efekt, ponieważ instalacja reaguje z opóźnieniem. Późniejsze odtworzenie temperatury może wymagać wyższego parametru." }
        },
        {
          "@type": "Question",
          "name": "Dlaczego dom przegrzewa się podczas nagłej odwilży?",
          "acceptedAnswer": { "@type": "Answer", "text": "Regulator obniża temperaturę wody po wzroście temperatury zewnętrznej, ale podłoga i konstrukcja budynku nadal zawierają wcześniej zgromadzoną energię. Zjawisko mogą zwiększać zyski słoneczne, zbyt stroma krzywa albo brak algorytmu uwzględniającego prognozę." }
        },
        {
          "@type": "Question",
          "name": "Czy jeden regulator może obsługiwać kilka obiegów?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli ma odpowiednią liczbę modułów, wyjść i niezależnych krzywych. Każdy obieg musi mieć zdefiniowany element wykonawczy, czujnik temperatury i logikę pracy." }
        },
        {
          "@type": "Question",
          "name": "Jak długo obserwować instalację po zmianie krzywej?",
          "acceptedAnswer": { "@type": "Answer", "text": "W wodnym ogrzewaniu podłogowym zwykle warto odczekać co najmniej 24–72 godziny przy możliwie stabilnej pogodzie. Dokładny czas zależy od masy jastrychu, izolacji, konstrukcji budynku i wielkości korekty." }
        }
      ]
    },
    {
      "@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 HVAC"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista branży budowlano-instalacyjnej",
      "description": "Projektant instalacji sanitarnych, specjalista ogrzewania podłogowego, hydrauliki instalacji, obliczeń obciążenia cieplnego i systemów HVAC. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "HVAC",
        "ogrzewanie podłogowe",
        "sterowanie pogodowe",
        "automatyka grzewcza",
        "projektowanie instalacji sanitarnych",
        "hydraulika instalacji grzewczych",
        "obliczenia OZC",
        "pompy ciepła"
      ],
      "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",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "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 () {
    "use strict";

    var root = document.getElementById("rk-weather-guide");
    if (!root) return;

    var progress = root.querySelector(".rk-weather-progress");
    var ticking = false;

    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) {
        window.requestAnimationFrame(updateProgress);
        ticking = true;
      }
    }

    root.querySelectorAll('a[href^="#"]').forEach(function (link) {
      link.addEventListener("click", function (event) {
        var selector = link.getAttribute("href");
        if (!selector || selector === "#") return;
        var target = root.querySelector(selector);
        if (!target) return;
        event.preventDefault();
        target.scrollIntoView({
          behavior: window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth",
          block: "start"
        });
      });
    });

    var flowTitles = [
      "1. Pomiar temperatury zewnętrznej",
      "2. Wyznaczenie temperatury z krzywej",
      "3. Zastosowanie korekt i limitów",
      "4. Wykonanie polecenia regulatora",
      "5. Kontrola temperatury rzeczywistej"
    ];

    var flowTexts = [
      "Czujnik przekazuje regulatorowi temperaturę reprezentatywną dla otoczenia budynku. Błąd pomiaru wywołany słońcem, otwartym oknem albo wyrzutnią powietrza trafia bezpośrednio do algorytmu i zniekształca temperaturę zasilania.",
      "Regulator odczytuje z krzywej wartość zadaną temperatury wody. Może korzystać z dwóch punktów, nachylenia i poziomu, numerowanej charakterystyki albo modelu adaptacyjnego. Fizyczny cel jest ten sam: dopasować moc odbiorników do strat budynku.",
      "Do wartości bazowej mogą zostać dodane: przesunięcie równoległe, korekta pokojowa, harmonogram, limit maksymalny, temperatura wyłączenia ogrzewania i funkcje ochronne. Ważne, aby kolejne korekty nie dublowały się i nie prowadziły do niekontrolowanego podnoszenia parametru.",
      "W układzie bezpośrednim regulator przekazuje wartość zadaną do pompy ciepła lub kotła. W obiegu mieszanym steruje siłownikiem zaworu i pompą. Styk ON/OFF, sygnał trójpunktowy, 0–10 V i magistrala cyfrowa niosą różny zakres informacji.",
      "Czujnik zasilania pokazuje, czy zadana temperatura została osiągnięta. Czujnik pokojowy może korygować wpływ słońca i zysków wewnętrznych, a odczyt powrotu wspiera diagnostykę. Brak komfortu nie oznacza automatycznie błędu regulatora – trzeba sprawdzić także moc i przepływy."
    ];

    var flowBox = root.querySelector("[data-rk-weather-flow]");
    if (flowBox) {
      var flowButtons = flowBox.querySelectorAll("[data-weather-step]");
      var flowTitle = flowBox.querySelector("[data-weather-flow-title]");
      var flowText = flowBox.querySelector("[data-weather-flow-text]");

      flowButtons.forEach(function (button) {
        button.addEventListener("click", function () {
          var index = Number(button.getAttribute("data-weather-step"));
          flowButtons.forEach(function (item) {
            item.classList.remove("is-active");
            item.setAttribute("aria-pressed", "false");
          });
          button.classList.add("is-active");
          button.setAttribute("aria-pressed", "true");
          if (flowTitle) flowTitle.textContent = flowTitles[index] || flowTitles[0];
          if (flowText) flowText.textContent = flowTexts[index] || flowTexts[0];
        });
      });
    }

    var fields = {
      coldOut: root.querySelector("#rk-weather-cold-out"),
      coldFlow: root.querySelector("#rk-weather-cold-flow"),
      warmOut: root.querySelector("#rk-weather-warm-out"),
      warmFlow: root.querySelector("#rk-weather-warm-flow"),
      nowOut: root.querySelector("#rk-weather-now-out"),
      shift: root.querySelector("#rk-weather-shift"),
      limit: root.querySelector("#rk-weather-limit")
    };

    var outputs = {
      coldOut: root.querySelector("#rk-weather-cold-out-value"),
      coldFlow: root.querySelector("#rk-weather-cold-flow-value"),
      warmOut: root.querySelector("#rk-weather-warm-out-value"),
      warmFlow: root.querySelector("#rk-weather-warm-flow-value"),
      nowOut: root.querySelector("#rk-weather-now-out-value"),
      shift: root.querySelector("#rk-weather-shift-value"),
      limit: root.querySelector("#rk-weather-limit-value"),
      resultFlow: root.querySelector("#rk-weather-result-flow"),
      resultSlope: root.querySelector("#rk-weather-result-slope"),
      resultMode: root.querySelector("#rk-weather-result-mode"),
      status: root.querySelector("#rk-weather-status")
    };

    var curvePath = root.querySelector("#rk-weather-curve");
    var curveDot = root.querySelector("#rk-weather-dot");
    var guideX = root.querySelector("#rk-weather-guide-x");
    var guideY = root.querySelector("#rk-weather-guide-y");

    function numberValue(field) {
      return field ? Number(field.value) : 0;
    }

    function pl(value, digits) {
      return Number(value).toLocaleString("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      });
    }

    function signed(value, suffix) {
      var sign = value > 0 ? "+" : value < 0 ? "−" : "";
      return sign + pl(Math.abs(value), value % 1 ? 1 : 0) + suffix;
    }

    function xCoord(outdoor) {
      return 62 + ((outdoor + 25) / 45) * 558;
    }

    function yCoord(flow) {
      var clamped = Math.max(25, Math.min(50, flow));
      return 315 - ((clamped - 25) / 25) * 290;
    }

    function calculatedFlow(outdoor, coldOut, coldFlow, warmOut, warmFlow, shift) {
      return warmFlow + ((warmOut - outdoor) / (warmOut - coldOut)) * (coldFlow - warmFlow) + shift;
    }

    function updateSimulator() {
      if (!fields.coldOut) return;

      var coldOut = numberValue(fields.coldOut);
      var coldFlow = numberValue(fields.coldFlow);
      var warmOut = numberValue(fields.warmOut);
      var warmFlow = numberValue(fields.warmFlow);
      var nowOut = numberValue(fields.nowOut);
      var shift = numberValue(fields.shift);
      var limit = numberValue(fields.limit);
      var waterSlope = (coldFlow - warmFlow) / (warmOut - coldOut);
      var raw = calculatedFlow(nowOut, coldOut, coldFlow, warmOut, warmFlow, shift);
      var active = nowOut < warmOut;
      var limited = active ? raw > limit : false;
      var result = Math.min(raw, limit);

      outputs.coldOut.textContent = signed(coldOut, "°C");
      outputs.coldFlow.textContent = pl(coldFlow, coldFlow % 1 ? 1 : 0) + "°C";
      outputs.warmOut.textContent = signed(warmOut, "°C");
      outputs.warmFlow.textContent = pl(warmFlow, warmFlow % 1 ? 1 : 0) + "°C";
      outputs.nowOut.textContent = signed(nowOut, "°C");
      outputs.shift.textContent = signed(shift, " K");
      outputs.limit.textContent = pl(limit, 0) + "°C";
      outputs.resultFlow.textContent = active ? pl(result, 1) + "°C" : "wyłączone";
      outputs.resultSlope.textContent = pl(waterSlope, 3) + " K";
      outputs.resultMode.textContent = !active ? "Tryb letni" : limited ? "Limit" : "Grzanie";

      if (!active) {
        outputs.status.textContent = "Temperatura zewnętrzna osiągnęła lub przekroczyła ustawioną granicę ogrzewania. Model pokazuje tryb letni; rzeczywisty regulator może dodatkowo stosować histerezę i opóźnienie.";
      } else if (limited) {
        outputs.status.textContent = "Wartość obliczona wynosi " + pl(raw, 1) + "°C, ale regulator ogranicza zasilanie do " + pl(limit, 0) + "°C. Jeżeli przy mrozie brakuje mocy, problemu nie należy rozwiązywać przez przypadkowe usunięcie zabezpieczenia.";
      } else {
        outputs.status.textContent = "Przy " + signed(nowOut, "°C") + " na zewnątrz model wyznacza około " + pl(result, 1) + "°C zasilania. Wartość nie przekracza ustawionego limitu.";
      }

      var path = [];
      var end = Math.min(warmOut, 20);
      for (var outdoor = -25; outdoor <= end; outdoor += 0.5) {
        var flow = Math.min(calculatedFlow(outdoor, coldOut, coldFlow, warmOut, warmFlow, shift), limit);
        path.push((path.length ? "L" : "M") + xCoord(outdoor).toFixed(1) + " " + yCoord(flow).toFixed(1));
      }
      if (curvePath) curvePath.setAttribute("d", path.join(" "));

      var dotFlow = active ? result : warmFlow + shift;
      var dotX = xCoord(Math.max(-25, Math.min(20, nowOut)));
      var dotY = yCoord(dotFlow);
      if (curveDot) {
        curveDot.setAttribute("cx", dotX.toFixed(1));
        curveDot.setAttribute("cy", dotY.toFixed(1));
      }
      if (guideX) {
        guideX.setAttribute("x1", dotX.toFixed(1));
        guideX.setAttribute("x2", dotX.toFixed(1));
        guideX.setAttribute("y1", dotY.toFixed(1));
        guideX.setAttribute("y2", "315");
      }
      if (guideY) {
        guideY.setAttribute("x1", "62");
        guideY.setAttribute("x2", dotX.toFixed(1));
        guideY.setAttribute("y1", dotY.toFixed(1));
        guideY.setAttribute("y2", dotY.toFixed(1));
      }
    }

    var presets = {
      floor: { coldOut: -20, coldFlow: 35, warmOut: 15, warmFlow: 25, nowOut: 0, shift: 0, limit: 40 },
      heatpump: { coldOut: -20, coldFlow: 34, warmOut: 15, warmFlow: 24, nowOut: 0, shift: 0, limit: 38 },
      modernized: { coldOut: -20, coldFlow: 42, warmOut: 15, warmFlow: 25, nowOut: 0, shift: 0, limit: 45 }
    };

    var presetButtons = root.querySelectorAll("[data-weather-preset]");
    presetButtons.forEach(function (button) {
      button.addEventListener("click", function () {
        var name = button.getAttribute("data-weather-preset");
        var preset = presets[name];
        if (!preset) return;
        Object.keys(preset).forEach(function (key) {
          if (fields[key]) fields[key].value = preset[key];
        });
        presetButtons.forEach(function (item) { item.classList.remove("is-active"); });
        button.classList.add("is-active");
        updateSimulator();
      });
    });

    Object.keys(fields).forEach(function (key) {
      if (!fields[key]) return;
      fields[key].addEventListener("input", function () {
        presetButtons.forEach(function (item) { item.classList.remove("is-active"); });
        updateSimulator();
      });
    });
    updateSimulator();

    var tabButtons = root.querySelectorAll("[data-weather-author-tab]");
    var tabPanels = root.querySelectorAll("[data-weather-author-panel]");

    tabButtons.forEach(function (button) {
      button.addEventListener("click", function () {
        var name = button.getAttribute("data-weather-author-tab");
        tabButtons.forEach(function (item) {
          item.classList.remove("is-active");
          item.setAttribute("aria-selected", "false");
        });
        tabPanels.forEach(function (panel) {
          var active = panel.getAttribute("data-weather-author-panel") === name;
          panel.classList.toggle("is-active", active);
          panel.hidden = !active;
        });
        button.classList.add("is-active");
        button.setAttribute("aria-selected", "true");
      });
    });

    window.addEventListener("scroll", requestProgress, { passive: true });
    window.addEventListener("resize", requestProgress, { passive: true });
    updateProgress();
  }());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik (regulator) pogodowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

					<description><![CDATA[<p>Nowoczesne budownictwo coraz częściej wykorzystuje darmową energię słoneczną, ale jej niewłaściwe połączenie z instalacją grzewczą potrafi przynieść więcej szkód niż korzyści. Ogrzewanie podłogowe a pasywne zyski ciepła to temat kluczowy dla komfortu i efektywności energetycznej budynku. W artykule pokazujemy, jak promieniowanie słoneczne wpływa na bezwładną wylewkę, dlaczego dochodzi do przegrzewania pomieszczeń oraz jak dzięki świadomemu projektowi i inteligentnemu sterowaniu zamienić słońce w realne wsparcie systemu grzewczego, a nie jego wroga.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-solar-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-red: #e34837;
    --rk-yellow: #f3bd3f;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6b7d89;
    --rk-line: #d9e7ed;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3eb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    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-solar-guide,
  #rk-solar-guide * {
    box-sizing: border-box;
  }

  #rk-solar-guide img,
  #rk-solar-guide svg {
    max-width: 100%;
  }

  #rk-solar-guide button,
  #rk-solar-guide input,
  #rk-solar-guide select,
  #rk-solar-guide label,
  #rk-solar-guide summary,
  #rk-solar-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-solar-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-solar-guide a:hover,
  #rk-solar-guide a:focus-visible {
    color: var(--rk-red);
  }

  #rk-solar-guide h2,
  #rk-solar-guide h3,
  #rk-solar-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-solar-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.62rem);
  }

  #rk-solar-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  }

  #rk-solar-guide h4 {
    margin-bottom: 8px;
    font-size: 1.03rem;
    letter-spacing: -0.018em;
  }

  #rk-solar-guide h2::before,
  #rk-solar-guide h2::after,
  #rk-solar-guide h3::before,
  #rk-solar-guide h3::after,
  #rk-solar-guide h4::before,
  #rk-solar-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-solar-guide p {
    margin: 0 0 1.18em;
    color: var(--rk-text);
  }

  #rk-solar-guide strong {
    color: var(--rk-dark);
  }

  #rk-solar-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-solar-guide .rk-solar-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-solar-guide .rk-solar-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

  #rk-solar-guide .rk-solar-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-yellow), var(--rk-orange));
  }

  #rk-solar-guide .rk-solar-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 87% 15%, rgba(255, 190, 63, 0.5), transparent 21%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.26), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09627b 100%);
  }

  #rk-solar-guide .rk-solar-hero::before {
    content: "☀";
    position: absolute;
    z-index: -1;
    right: -50px;
    bottom: -135px;
    color: rgba(255, 255, 255, 0.05);
    font-size: clamp(17rem, 38vw, 32rem);
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(285px, 0.84fr);
    gap: clamp(28px, 5vw, 62px);
    align-items: center;
  }

  #rk-solar-guide .rk-solar-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 23px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #a3f4ff;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-yellow);
    box-shadow: 0 0 0 7px rgba(243, 189, 63, 0.17);
  }

  #rk-solar-guide .rk-solar-hero-title {
    max-width: 820px;
    margin: 0 0 24px;
    color: var(--rk-white);
    font-size: clamp(2.03rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-solar-guide .rk-solar-hero-lead {
    max-width: 810px;
    margin-bottom: 26px;
    color: #dcecf4;
    font-size: clamp(1.02rem, 2.1vw, 1.24rem);
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    color: #c9dce5;
    font-size: 0.81rem;
    font-weight: 780;
  }

  #rk-solar-guide .rk-solar-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-solar-guide .rk-solar-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-hero-panel {
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(7px);
  }

  #rk-solar-guide .rk-solar-hero-panel small {
    display: block;
    margin-bottom: 14px;
    color: #8df1fc;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-balance {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 9px;
    align-items: center;
  }

  #rk-solar-guide .rk-solar-hero-value {
    min-width: 0;
    padding: 16px 9px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.09);
    text-align: center;
  }

  #rk-solar-guide .rk-solar-hero-value span {
    display: block;
    color: #c7dae4;
    font-size: 0.63rem;
    font-weight: 850;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-value strong {
    display: block;
    margin-top: 5px;
    color: var(--rk-white);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-symbol {
    color: var(--rk-yellow);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-result {
    margin-top: 14px;
    padding: 14px;
    border-radius: 15px;
    color: var(--rk-white);
    background: rgba(40, 201, 218, 0.16);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 1rem;
    font-weight: 900;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-nav {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 15px clamp(20px, 5vw, 56px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    scrollbar-width: thin;
  }

  #rk-solar-guide .rk-solar-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 880;
    text-decoration: none;
    white-space: nowrap;
  }

  #rk-solar-guide .rk-solar-nav a:hover,
  #rk-solar-guide .rk-solar-nav a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-body {
    padding: clamp(28px, 6vw, 70px);
  }

  #rk-solar-guide .rk-solar-section {
    margin-bottom: clamp(56px, 8vw, 94px);
  }

  #rk-solar-guide .rk-solar-section:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-kicker {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 930;
    letter-spacing: 0.095em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-lead {
    max-width: 940px;
    font-size: 1.08rem;
    line-height: 1.82;
  }

  #rk-solar-guide .rk-solar-dropcap::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--rk-orange);
    font-size: 3.65rem;
    font-weight: 950;
    line-height: 0.82;
  }

  #rk-solar-guide .rk-solar-grid-2,
  #rk-solar-guide .rk-solar-grid-3,
  #rk-solar-guide .rk-solar-grid-4 {
    display: grid;
    gap: 17px;
  }

  #rk-solar-guide .rk-solar-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    margin-bottom: 16px;
    padding: 0 12px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.78rem;
    font-weight: 930;
  }

  #rk-solar-guide .rk-solar-card p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(270px, 0.88fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 27px;
  }

  #rk-solar-guide .rk-solar-answer-main {
    padding: clamp(25px, 4vw, 40px);
    border: 1px solid #bddce7;
    border-radius: 23px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-answer-side {
    padding: clamp(25px, 4vw, 40px);
    border-radius: 23px;
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-solar-guide .rk-solar-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-answer-side p {
    color: #d6e7ef;
  }

  #rk-solar-guide .rk-solar-answer-side p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-note,
  #rk-solar-guide .rk-solar-warning,
  #rk-solar-guide .rk-solar-success,
  #rk-solar-guide .rk-solar-danger {
    margin-top: 22px;
    padding: 20px 22px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 9px 17px 17px 9px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-solar-guide .rk-solar-note p:last-child,
  #rk-solar-guide .rk-solar-warning p:last-child,
  #rk-solar-guide .rk-solar-success p:last-child,
  #rk-solar-guide .rk-solar-danger p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-corrections {
    overflow: hidden;
    border: 1px solid #efc9b9;
    border-radius: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-corrections-head {
    padding: 27px clamp(25px, 5vw, 45px);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-corrections-head h2 {
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-corrections-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-corrections-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--rk-line);
  }

  #rk-solar-guide .rk-solar-correction {
    padding: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-correction b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 13px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.75rem;
  }

  #rk-solar-guide .rk-solar-correction p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow {
    overflow: hidden;
    margin-top: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: linear-gradient(180deg, #f8fcfd, #eef8fb);
  }

  #rk-solar-guide .rk-solar-flow-head {
    padding: 23px 25px 0;
  }

  #rk-solar-guide .rk-solar-flow-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow svg {
    display: block;
    width: 100%;
    height: auto;
  }

  #rk-solar-guide .rk-solar-lab {
    overflow: hidden;
    border: 1px solid #b8dce7;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 24px 62px rgba(16, 37, 54, 0.12);
  }

  #rk-solar-guide .rk-solar-lab-head {
    padding: clamp(30px, 5vw, 54px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 8%, rgba(243, 189, 63, 0.4), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #174b63);
  }

  #rk-solar-guide .rk-solar-lab-head h2 {
    max-width: 900px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-lab-head p {
    max-width: 920px;
    margin-bottom: 0;
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-lab-layout {
    display: grid;
    grid-template-columns: minmax(330px, 0.86fr) minmax(0, 1.14fr);
  }

  #rk-solar-guide .rk-solar-controls {
    padding: clamp(25px, 4vw, 40px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-control {
    margin-bottom: 21px;
  }

  #rk-solar-guide .rk-solar-control:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-control-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-control label {
    color: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 880;
    line-height: 1.45;
  }

  #rk-solar-guide .rk-solar-output {
    flex: 0 0 auto;
    min-width: 70px;
    padding: 5px 9px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-control input[type="range"] {
    width: 100%;
    height: 8px;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-solar-guide .rk-solar-control small {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-results {
    min-width: 0;
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-solar-guide .rk-solar-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  #rk-solar-guide .rk-solar-result-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-result-card.is-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-result-card small {
    display: block;
    min-height: 2.8em;
    margin-bottom: 7px;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 820;
    line-height: 1.4;
  }

  #rk-solar-guide .rk-solar-result-card.is-main small {
    color: #d6f7fd;
  }

  #rk-solar-guide .rk-solar-result-number {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-size: clamp(1.05rem, 2.1vw, 1.45rem);
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 1.15;
  }

  #rk-solar-guide .rk-solar-result-card.is-main .rk-solar-result-number {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-status {
    margin-top: 16px;
    padding: 19px 20px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 10px 17px 17px 10px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-status.is-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-status.is-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-solar-guide .rk-solar-status.is-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-status strong,
  #rk-solar-guide .rk-solar-status span {
    display: block;
  }

  #rk-solar-guide .rk-solar-status span {
    margin-top: 4px;
    color: var(--rk-text);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-solar-guide .rk-solar-chart {
    margin-top: 18px;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-chart h3 {
    margin-bottom: 5px;
    font-size: 1.03rem;
  }

  #rk-solar-guide .rk-solar-chart p {
    margin-bottom: 12px;
    font-size: 0.72rem;
  }

  #rk-solar-guide .rk-solar-chart svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  #rk-solar-guide .rk-solar-chart-grid {
    stroke: #d6e4ea;
    stroke-width: 1;
  }

  #rk-solar-guide .rk-solar-chart-axis {
    stroke: #8196a3;
    stroke-width: 1.5;
  }

  #rk-solar-guide .rk-solar-chart-label {
    fill: #5b6f7c;
    font-size: 13px;
    font-weight: 700;
  }

  #rk-solar-guide .rk-solar-bar-loss {
    fill: var(--rk-red);
  }

  #rk-solar-guide .rk-solar-bar-sun {
    fill: var(--rk-yellow);
  }

  #rk-solar-guide .rk-solar-bar-internal {
    fill: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-bar-floor {
    fill: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-chart-value {
    fill: var(--rk-dark);
    font-size: 14px;
    font-weight: 900;
  }

  #rk-solar-guide .rk-solar-inline-cta {
    padding: clamp(27px, 5vw, 45px);
    color: var(--rk-white);
    background: linear-gradient(125deg, var(--rk-dark), #17475e);
  }

  #rk-solar-guide .rk-solar-inline-cta h3 {
    max-width: 900px;
    margin-bottom: 12px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-inline-cta p {
    max-width: 930px;
    color: #d6e8f0;
  }

  #rk-solar-guide .rk-solar-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 6px;
    padding: 14px 23px;
    border-radius: 15px;
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-orange), #f04434);
    box-shadow: 0 12px 28px rgba(227, 72, 55, 0.24);
    font-size: 0.83rem;
    font-weight: 920;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
  }

  #rk-solar-guide .rk-solar-cta-button:hover,
  #rk-solar-guide .rk-solar-cta-button:focus-visible {
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-red), var(--rk-orange));
    transform: translateY(-1px);
  }

  #rk-solar-guide .rk-solar-disclosure {
    display: block;
    margin-top: 11px;
    color: #bad0dc;
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-solar-guide .rk-solar-formula {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-formula span {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-orange);
    font-size: 0.69rem;
    font-weight: 930;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-formula code {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.88rem;
    font-weight: 850;
    line-height: 1.55;
    white-space: normal;
  }

  #rk-solar-guide .rk-solar-formula p {
    margin-bottom: 0;
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-selfreg {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-visual {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    padding: 30px;
    border-radius: 23px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 75% 20%, rgba(243, 189, 63, 0.35), transparent 24%),
      linear-gradient(145deg, var(--rk-dark), #184c64);
  }

  #rk-solar-guide .rk-solar-selfreg-visual h3 {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-selfreg-visual p {
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-selfreg-scale {
    display: grid;
    gap: 12px;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-row {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr) 64px;
    gap: 10px;
    align-items: center;
    color: #d8eaf2;
    font-size: 0.72rem;
    font-weight: 800;
  }

  #rk-solar-guide .rk-solar-selfreg-track {
    height: 16px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
  }

  #rk-solar-guide .rk-solar-selfreg-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-yellow));
  }

  #rk-solar-guide .rk-solar-selfreg-copy {
    padding: 29px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
  }

  #rk-solar-guide table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
  }

  #rk-solar-guide th,
  #rk-solar-guide td {
    padding: 15px 17px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    text-align: left;
    vertical-align: top;
  }

  #rk-solar-guide th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.73rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-solar-guide td {
    font-size: 0.82rem;
    line-height: 1.55;
  }

  #rk-solar-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-solar-guide tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-solar-guide .rk-solar-strategy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-solar-guide .rk-solar-strategy {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-strategy-head {
    min-height: 92px;
    padding: 20px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(2) .rk-solar-strategy-head {
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(3) .rk-solar-strategy-head {
    background: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-strategy-body {
    padding: 21px;
  }

  #rk-solar-guide .rk-solar-strategy-body p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    counter-reset: rk-solar-step;
  }

  #rk-solar-guide .rk-solar-step {
    position: relative;
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
    counter-increment: rk-solar-step;
  }

  #rk-solar-guide .rk-solar-step::before {
    content: counter(rk-solar-step, decimal-leading-zero);
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.75rem;
    font-weight: 930;
  }

  #rk-solar-guide .rk-solar-step p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-solar-guide .rk-solar-checklist li {
    position: relative;
    margin: 0;
    padding: 17px 18px 17px 52px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-text);
    background: var(--rk-soft);
    font-size: 0.82rem;
    line-height: 1.6;
  }

  #rk-solar-guide .rk-solar-checklist li::before {
    content: "✓";
    position: absolute;
    top: 17px;
    left: 17px;
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.71rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-faq {
    display: grid;
    gap: 12px;
  }

  #rk-solar-guide .rk-solar-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-weight: 880;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-solar-guide .rk-solar-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-solar-guide .rk-solar-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-blue);
    font-size: 1.35rem;
    font-weight: 900;
    transform: translateY(-50%);
  }

  #rk-solar-guide .rk-solar-faq details[open] summary::after {
    content: "−";
  }

  #rk-solar-guide .rk-solar-faq-answer {
    padding: 18px 20px;
  }

  #rk-solar-guide .rk-solar-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-sources {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
    font-size: 0.75rem;
    line-height: 1.65;
  }

  #rk-solar-guide .rk-solar-sources strong {
    display: block;
    margin-bottom: 7px;
  }

  #rk-solar-guide .rk-solar-author {
    overflow: hidden;
    margin-bottom: clamp(55px, 8vw, 90px);
    border: 1px solid #bdd9e5;
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 22px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-solar-guide .rk-solar-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px clamp(28px, 5vw, 50px);
    border-bottom: 6px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-solar-guide .rk-solar-author-head h2 {
    margin-bottom: 7px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-author-head p {
    margin-bottom: 0;
    color: #d5e7ef;
  }

  #rk-solar-guide .rk-solar-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.38);
    border-radius: 15px;
    color: #6aefff;
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  #rk-solar-guide .rk-solar-author-layout {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
  }

  #rk-solar-guide .rk-solar-author-side {
    padding: 38px 28px;
    border-right: 1px solid var(--rk-line);
    background: #f2f8fa;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-author-photo {
    width: 184px;
    height: 184px;
    margin: 0 auto 21px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 14px 34px rgba(16, 37, 54, 0.15);
  }

  #rk-solar-guide .rk-solar-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-solar-guide .rk-solar-author-name {
    color: var(--rk-dark);
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-solar-guide .rk-solar-author-role {
    margin-top: 6px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-author-main {
    min-width: 0;
    padding: 34px 38px 38px;
  }

  #rk-solar-guide .rk-solar-author-quote {
    margin: 0 0 26px;
    padding: 23px 25px 23px 72px;
    border: 0;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-author-quote::before {
    content: "“";
    position: absolute;
    margin: -15px 0 0 -49px;
    color: var(--rk-cyan);
    font-size: 3.7rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-solar-guide .rk-solar-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-style: italic;
    font-weight: 820;
  }

  #rk-solar-guide .rk-solar-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-solar-guide .rk-solar-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-solar-guide .rk-solar-author-panel {
    display: none;
    min-height: 168px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-solar-guide .rk-solar-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-author-about:checked ~ .rk-solar-author-layout .rk-solar-author-panel-about,
  #rk-solar-author-exp:checked ~ .rk-solar-author-layout .rk-solar-author-panel-exp,
  #rk-solar-author-sites:checked ~ .rk-solar-author-layout .rk-solar-author-panel-sites {
    display: block;
  }

  #rk-solar-author-about:checked ~ .rk-solar-author-layout label[for="rk-solar-author-about"],
  #rk-solar-author-exp:checked ~ .rk-solar-author-layout label[for="rk-solar-author-exp"],
  #rk-solar-author-sites:checked ~ .rk-solar-author-layout label[for="rk-solar-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-solar-guide .rk-solar-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.74rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-solar-guide .rk-solar-site-links a:hover,
  #rk-solar-guide .rk-solar-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 16%, rgba(243, 189, 63, 0.38), transparent 27%),
      linear-gradient(125deg, var(--rk-dark), #15465e);
  }

  #rk-solar-guide .rk-solar-final-cta-content {
    padding: clamp(30px, 5vw, 53px);
  }

  #rk-solar-guide .rk-solar-final-cta h2 {
    max-width: 920px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-final-cta p {
    max-width: 940px;
    color: #d8e9f1;
  }

  @media (max-width: 980px) {
    #rk-solar-guide .rk-solar-hero-grid,
    #rk-solar-guide .rk-solar-answer,
    #rk-solar-guide .rk-solar-lab-layout,
    #rk-solar-guide .rk-solar-selfreg,
    #rk-solar-guide .rk-solar-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-controls,
    #rk-solar-guide .rk-solar-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-solar-guide {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-solar-guide .rk-solar-shell {
      border-radius: 20px;
    }

    #rk-solar-guide .rk-solar-hero,
    #rk-solar-guide .rk-solar-body {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-solar-guide .rk-solar-corrections-grid,
    #rk-solar-guide .rk-solar-grid-2,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-result-grid,
    #rk-solar-guide .rk-solar-formulas,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps,
    #rk-solar-guide .rk-solar-checklist {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-solar-guide .rk-solar-author-main {
      padding: 25px 18px 28px;
    }

    #rk-solar-guide .rk-solar-author-quote {
      padding: 22px 20px 22px 57px;
    }

    #rk-solar-guide .rk-solar-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-solar-guide .rk-solar-cta-button {
      display: flex;
      width: 100%;
    }

    #rk-solar-guide .rk-solar-nav {
      display: flex;
      width: auto;
      margin: 18px 20px 0;
      padding: 20px;
      flex-wrap: wrap;
      gap: 10px;
      overflow: visible;
      border: 1px solid var(--rk-line);
      border-radius: 20px;
      background: var(--rk-soft);
      scrollbar-width: auto;
    }

    #rk-solar-guide .rk-solar-nav::before {
      content: "NA SKRÓTY";
      flex: 0 0 100%;
      margin-bottom: 4px;
      color: var(--rk-dark);
      font-size: 0.75rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1.3;
    }

    #rk-solar-guide .rk-solar-nav a {
      flex: 0 1 auto;
      white-space: normal;
    }

    #rk-solar-guide table,
    #rk-solar-guide tbody,
    #rk-solar-guide tr,
    #rk-solar-guide th,
    #rk-solar-guide td {
      display: block;
      width: 100%;
    }

    #rk-solar-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-solar-guide tbody tr {
      margin-bottom: 14px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(118px, 0.78fr) minmax(0, 1.22fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-solar-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.71rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 430px) {
    #rk-solar-guide .rk-solar-hero-balance {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-hero-symbol {
      text-align: center;
    }

    #rk-solar-guide .rk-solar-selfreg-row {
      grid-template-columns: 88px minmax(0, 1fr) 50px;
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-solar-guide *,
    #rk-solar-guide *::before,
    #rk-solar-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-solar-guide" data-rk-solar-version="2026-08-26" aria-label="Ogrzewanie podłogowe a pasywne zyski ciepła">
  <div class="rk-solar-shell">
    <div class="rk-solar-progress-track" aria-hidden="true"><div class="rk-solar-progress"></div></div>

    <header class="rk-solar-hero">
      <div class="rk-solar-hero-grid">
        <div>
          <span class="rk-solar-eyebrow"><b aria-hidden="true"></b> Fizyka budynku • analiza techniczna 2026</span>
          <div class="rk-solar-hero-title" role="heading" aria-level="2">Ogrzewanie podłogowe a pasywne zyski ciepła</div>
          <p class="rk-solar-hero-lead">Słońce wpadające przez duże przeszklenia może w ciągu kilkudziesięciu minut zmienić bilans salonu. Sprawdź, jak podłogówka reaguje na darmową energię, kiedy działa samoregulacja i co naprawdę ogranicza przegrzewanie.</p>
          <div class="rk-solar-meta">
            <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
            <span><i aria-hidden="true"></i> Aktualizacja: 26 sierpnia 2026 r.</span>
            <span><i aria-hidden="true"></i> Czas czytania: ok. 18 minut</span>
          </div>
        </div>

        <aside class="rk-solar-hero-panel" aria-label="Przykład chwilowego bilansu zysków słonecznych">
          <small>Bilans chwilowy — nie moc projektowa</small>
          <div class="rk-solar-hero-balance">
            <div class="rk-solar-hero-value"><span>Aktualne straty</span><strong>1200 W</strong></div>
            <div class="rk-solar-hero-symbol" aria-hidden="true">−</div>
            <div class="rk-solar-hero-value"><span>Zyski słoneczne</span><strong>560 W</strong></div>
          </div>
          <div class="rk-solar-hero-result">Pozostaje chwilowo: 640 W</div>
        </aside>
      </div>
    </header>

    <nav class="rk-solar-nav" aria-label="Spis treści artykułu">
      <a href="#rk-solar-answer">Szybka odpowiedź</a>
      <a href="#rk-solar-corrections">Ważne korekty</a>
      <a href="#rk-solar-lab">Laboratorium</a>
      <a href="#rk-solar-physics">Samoregulacja</a>
      <a href="#rk-solar-design">Projektowanie</a>
      <a href="#rk-solar-control">Sterowanie</a>
      <a href="#rk-solar-heatpump">Pompa ciepła</a>
      <a href="#rk-solar-howto">Procedura</a>
      <a href="#rk-solar-faq">FAQ</a>
      <a href="#rk-solar-author">Autor</a>
    </nav>

    <div class="rk-solar-body">
      <section class="rk-solar-section" id="rk-solar-answer">
        <span class="rk-solar-kicker">Najkrótsza poprawna odpowiedź</span>
        <h2>Czy pasywne zyski ciepła przeszkadzają ogrzewaniu podłogowemu?</h2>
        <p class="rk-solar-lead rk-solar-dropcap"><strong>Ogrzewanie podłogowe a pasywne zyski ciepła</strong> mogą współpracować bardzo dobrze, ponieważ niska temperatura powierzchni sprzyja fizycznej samoregulacji emisji. Problem pojawia się wtedy, gdy duże przeszklenia, ciężka podłoga, zbyt wysoka temperatura zasilania i spóźnione sterowanie dostarczają do pomieszczenia więcej energii, niż może ono w danej chwili oddać. Słońce nie jest wadą podłogówki — jest zmiennym składnikiem bilansu, który trzeba przewidzieć.</p>

        <div class="rk-solar-answer">
          <div class="rk-solar-answer-main">
            <h3>Co dzieje się w słoneczny dzień?</h3>
            <p>Promieniowanie przenika przez szybę, ogrzewa podłogę, ściany i wyposażenie, a następnie podnosi temperaturę operacyjną wnętrza. W tym samym czasie aktywna podłoga nadal może oddawać energię zgromadzoną wcześniej w jastrychu.</p>
            <p><strong>Efekt końcowy zależy od czasu:</strong> chwilowego nasłonecznienia, ilości zakumulowanego ciepła, temperatury powierzchni, zacienienia i reakcji automatyki.</p>
          </div>
          <div class="rk-solar-answer-side">
            <h3>Najważniejszy wniosek</h3>
            <p>Nie wolno zmniejszać projektowej mocy pomieszczenia tylko dlatego, że ma okna od południa. W mroźny i pochmurny dzień zysk słoneczny może być bliski zeru.</p>
            <p>Projekt zapewnia moc w warunkach obliczeniowych, a sterowanie i zacienienie odpowiadają za pracę przy zmiennych zyskach.</p>
          </div>
        </div>

        <div class="rk-solar-grid-4" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">A<sub>gl</sub></span><h3>Powierzchnia szyb</h3><p>Liczy się przejrzysta część przeszklenia odbierająca promieniowanie, a nie wyłącznie wymiar całego otworu okiennego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">g</span><h3>Współczynnik szyby</h3><p>Określa udział całkowitej energii słonecznej przedostającej się do wnętrza. Przyjmujemy dane konkretnego pakietu szybowego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">F<sub>sh</sub></span><h3>Zacienienie</h3><p>Okap, balkon, żaluzje zewnętrzne, sąsiednie budynki i drzewa zmieniają rzeczywisty dopływ energii w ciągu dnia i roku.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">C</span><h3>Masa termiczna</h3><p>Jastrych i inne ciężkie powierzchnie mogą tłumić krótki szczyt, ale przejętą energię oddają później.</p></article>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-corrections">
        <div class="rk-solar-corrections">
          <div class="rk-solar-corrections-head">
            <span class="rk-solar-kicker">Pięć rozróżnień, które zmieniają ocenę instalacji</span>
            <h2>Projektowa moc grzewcza, chwilowy bilans i przegrzewanie to trzy różne zagadnienia</h2>
            <p>Najwięcej błędów wynika z mieszania parametrów obliczanych dla skrajnego mrozu z wynikiem obserwowanym podczas kilku słonecznych godzin.</p>
          </div>
          <div class="rk-solar-corrections-grid">
            <article class="rk-solar-correction"><b>01</b><h3>Moc projektowa nie zależy od obietnicy słońca</h3><p>Instalacja ma pokryć projektowe straty również wtedy, gdy jest zimno, pochmurno i nie występują użyteczne zyski. Zyski analizujemy dodatkowo jako zmienne obciążenie eksploatacyjne.</p></article>
            <article class="rk-solar-correction"><b>02</b><h3>Waty to nie kilowatogodziny</h3><p>Natężenie promieniowania `I` wyrażone w W/m² opisuje chwilową moc. Miesięczne lub roczne napromienienie jest energią i podaje się je między innymi w kWh/m².</p></article>
            <article class="rk-solar-correction"><b>03</b><h3>Masa nie tylko przegrzewa</h3><p>Ciężka konstrukcja pochłania energię, ogranicza szybkość wzrostu temperatury i przesuwa szczyt w czasie. Może jednak przedłużyć oddawanie ciepła po zaniku słońca.</p></article>
            <article class="rk-solar-correction"><b>04</b><h3>Termostat nie cofa energii z jastrychu</h3><p>Zamknięcie siłownika zatrzymuje dopływ nowej energii, ale podłoga nadal oddaje ciepło już zgromadzone. Dlatego liczy się niska temperatura zasilania i działanie wyprzedzające.</p></article>
            <article class="rk-solar-correction"><b>05</b><h3>Bufor nie jest obowiązkowy z definicji</h3><p>Przy pompie ciepła jego potrzebę ocenia się na podstawie minimalnego przepływu, pojemności wodnej, sposobu odszraniania, liczby zamykanych pętli i wymagań urządzenia.</p></article>
            <article class="rk-solar-correction"><b>06</b><h3>Strefa nie oznacza osobnego mieszacza</h3><p>Pomieszczenie zwykle jest regulowane siłownikiem odpowiedniej pętli lub grupy pętli. Zawór mieszający przygotowuje temperaturę dla obiegu, a nie dla każdego pokoju oddzielnie.</p></article>
          </div>
        </div>

        <div class="rk-solar-flow" aria-label="Schemat przepływu energii słonecznej i ciepła z ogrzewania podłogowego">
          <div class="rk-solar-flow-head"><h3>Dwa strumienie energii spotykają się w jednym pomieszczeniu</h3><p>O temperaturze decyduje ich suma, aktualne straty oraz zdolność konstrukcji do magazynowania i oddawania ciepła.</p></div>
          <svg viewBox="0 0 1040 330" role="img" aria-labelledby="rk-solar-flow-title rk-solar-flow-desc">
            <title id="rk-solar-flow-title">Przepływ energii słonecznej i ciepła z podłogówki</title>
            <desc id="rk-solar-flow-desc">Promieniowanie słoneczne przechodzi przez szybę, a woda przekazuje ciepło przez jastrych. Oba strumienie wpływają na temperaturę pomieszczenia i straty budynku.</desc>
            <defs>
              <linearGradient id="rkSolarSun" x1="0" x2="1"><stop offset="0" stop-color="#f3bd3f"></stop><stop offset="1" stop-color="#ff7438"></stop></linearGradient>
              <linearGradient id="rkSolarWater" x1="0" x2="1"><stop offset="0" stop-color="#28c9da"></stop><stop offset="1" stop-color="#078fbe"></stop></linearGradient>
              <marker id="rkSolarArrowWarm" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#ff7438"></path></marker>
              <marker id="rkSolarArrowCool" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#078fbe"></path></marker>
            </defs>
            <circle cx="92" cy="80" r="36" fill="url(#rkSolarSun)"></circle>
            <g stroke="#f3bd3f" stroke-width="5"><line x1="92" y1="22" x2="92" y2="5"></line><line x1="92" y1="155" x2="92" y2="138"></line><line x1="34" y1="80" x2="17" y2="80"></line><line x1="167" y1="80" x2="150" y2="80"></line><line x1="51" y1="39" x2="38" y2="26"></line><line x1="133" y1="121" x2="146" y2="134"></line></g>
            <text x="92" y="187" text-anchor="middle" fill="#14384d" font-size="17" font-weight="900">SŁOŃCE</text>
            <rect x="220" y="48" width="92" height="205" rx="12" fill="#dff7fb" stroke="#078fbe" stroke-width="3"></rect>
            <line x1="251" y1="50" x2="251" y2="252" stroke="#87dce8" stroke-width="2"></line><line x1="281" y1="50" x2="281" y2="252" stroke="#87dce8" stroke-width="2"></line>
            <text x="266" y="282" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">SZYBA: g + CIEŃ</text>
            <path d="M142 86 C175 86 187 86 215 86" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <path d="M318 98 C360 98 382 116 416 136" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="440" y="64" width="255" height="152" rx="24" fill="#ffffff" stroke="#c7dce5" stroke-width="3"></rect>
            <text x="568" y="115" text-anchor="middle" fill="#102536" font-size="21" font-weight="900">POMIESZCZENIE</text>
            <text x="568" y="147" text-anchor="middle" fill="#506674" font-size="16">powietrze + powierzchnie</text>
            <text x="568" y="179" text-anchor="middle" fill="#078fbe" font-size="16" font-weight="800">temperatura operacyjna</text>
            <rect x="420" y="252" width="295" height="34" rx="12" fill="#d7e2e7"></rect>
            <path d="M458 270 C483 227 510 227 535 270 C560 313 587 313 612 270 C637 227 664 227 689 270" fill="none" stroke="url(#rkSolarWater)" stroke-width="9"></path>
            <text x="568" y="318" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">WODA → JASTRYCH → PODŁOGA</text>
            <path d="M568 250 C568 238 568 231 568 220" fill="none" stroke="#078fbe" stroke-width="8" marker-end="url(#rkSolarArrowCool)"></path>
            <path d="M700 134 C759 134 778 104 820 104" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="838" y="54" width="164" height="105" rx="19" fill="#fff3eb" stroke="#ff7438" stroke-width="3"></rect>
            <text x="920" y="92" text-anchor="middle" fill="#102536" font-size="18" font-weight="900">STRATY</text>
            <text x="920" y="122" text-anchor="middle" fill="#506674" font-size="14">przenikanie</text>
            <text x="920" y="143" text-anchor="middle" fill="#506674" font-size="14">+ wentylacja</text>
            <text x="842" y="215" fill="#16876d" font-size="15" font-weight="900">SAMOREGULACJA:</text>
            <text x="842" y="241" fill="#506674" font-size="14">wyższa temperatura wnętrza</text>
            <text x="842" y="264" fill="#506674" font-size="14">→ mniejsza emisja podłogi</text>
          </svg>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-lab">
        <div class="rk-solar-lab">
          <div class="rk-solar-lab-head">
            <span class="rk-solar-kicker" style="color:#79f1ff">Interaktywne laboratorium bilansu chwilowego</span>
            <h2>Sprawdź, kiedy słońce przejmuje ogrzewanie pomieszczenia</h2>
            <p>Zmień straty, temperatury, powierzchnię szyb, współczynnik `g`, nasłonecznienie i zacienienie. Model zestawi chwilowe zyski z przybliżonym aktualnym zapotrzebowaniem oraz mocą nadal oddawaną przez podłogę.</p>
          </div>

          <div class="rk-solar-lab-layout">
            <form class="rk-solar-controls" id="rk-solar-form" aria-label="Dane do kalkulatora zysków słonecznych">
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-load">Projektowa strata pomieszczenia</label><output class="rk-solar-output" id="rk-solar-design-load-output">1200 W</output></div>
                <input id="rk-solar-design-load" type="range" min="300" max="5000" step="50" value="1200">
                <small>Moc potrzebna w projektowych warunkach zewnętrznych, przed dodawaniem przypadkowych zapasów.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-out">Projektowa temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-design-out-output">−20°C</output></div>
                <input id="rk-solar-design-out" type="range" min="-30" max="-10" step="1" value="-20">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-current-out">Aktualna temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-current-out-output">0°C</output></div>
                <input id="rk-solar-current-out" type="range" min="-20" max="15" step="1" value="0">
                <small>Aktualne straty są szacowane proporcjonalnie do różnicy temperatur.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-indoor">Temperatura wewnętrzna</label><output class="rk-solar-output" id="rk-solar-indoor-output">21°C</output></div>
                <input id="rk-solar-indoor" type="range" min="18" max="25" step="0.5" value="21">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-glass">Powierzchnia czynna przeszklenia</label><output class="rk-solar-output" id="rk-solar-glass-output">8,0 m²</output></div>
                <input id="rk-solar-glass" type="range" min="1" max="30" step="0.5" value="8">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-gvalue">Współczynnik całkowitej przepuszczalności `g`</label><output class="rk-solar-output" id="rk-solar-gvalue-output">0,50</output></div>
                <input id="rk-solar-gvalue" type="range" min="0.25" max="0.75" step="0.01" value="0.50">
                <small>Wartość należy pobrać z dokumentacji konkretnego pakietu szybowego.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-irradiance">Promieniowanie padające na szybę</label><output class="rk-solar-output" id="rk-solar-irradiance-output">140 W/m²</output></div>
                <input id="rk-solar-irradiance" type="range" min="0" max="600" step="10" value="140">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-shading">Energia pozostająca po zacienieniu</label><output class="rk-solar-output" id="rk-solar-shading-output">85%</output></div>
                <input id="rk-solar-shading" type="range" min="0" max="100" step="5" value="85">
                <small>100% oznacza brak redukcji, 20% — silne ograniczenie przez skuteczną osłonę.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-internal">Zyski od ludzi i urządzeń</label><output class="rk-solar-output" id="rk-solar-internal-output">120 W</output></div>
                <input id="rk-solar-internal" type="range" min="0" max="800" step="20" value="120">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-active">Moc nadal oddawana przez podłogę</label><output class="rk-solar-output" id="rk-solar-active-output">600 W</output></div>
                <input id="rk-solar-active" type="range" min="0" max="5000" step="50" value="600">
                <small>To chwilowa moc aktywna, nie moc znamionowa pętli ani moc źródła ciepła.</small>
              </div>
            </form>

            <div class="rk-solar-results" aria-live="polite">
              <div class="rk-solar-result-grid">
                <div class="rk-solar-result-card"><small>Przybliżone aktualne straty</small><div class="rk-solar-result-number" id="rk-solar-result-loss">615 W</div></div>
                <div class="rk-solar-result-card"><small>Zyski słoneczne</small><div class="rk-solar-result-number" id="rk-solar-result-sun">476 W</div></div>
                <div class="rk-solar-result-card"><small>Łączne zyski pasywne i bytowe</small><div class="rk-solar-result-number" id="rk-solar-result-gains">596 W</div></div>
                <div class="rk-solar-result-card"><small>Moc aktywna nadal potrzebna</small><div class="rk-solar-result-number" id="rk-solar-result-required">19 W</div></div>
                <div class="rk-solar-result-card"><small>Pokrycie strat przez same zyski</small><div class="rk-solar-result-number" id="rk-solar-result-coverage">97%</div></div>
                <div class="rk-solar-result-card is-main"><small>Bilans po dodaniu ciepła podłogi</small><div class="rk-solar-result-number" id="rk-solar-result-balance">+581 W</div></div>
              </div>

              <div class="rk-solar-status is-danger" id="rk-solar-status">
                <strong id="rk-solar-status-title">Wyraźna chwilowa nadwyżka energii</strong>
                <span id="rk-solar-status-copy">Zyski niemal pokrywają straty, a podłoga nadal oddaje 600 W. Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.</span>
              </div>

              <div class="rk-solar-chart" aria-label="Wykres chwilowego bilansu cieplnego pomieszczenia">
                <h3>Straty i dopływy energii w tej samej chwili</h3>
                <p>Porównanie nie przewiduje temperatury za kilka godzin — do tego potrzebny jest model dynamiczny budynku.</p>
                <svg viewBox="0 0 720 345" role="img" aria-labelledby="rk-solar-chart-title rk-solar-chart-desc">
                  <title id="rk-solar-chart-title">Porównanie strat oraz zysków cieplnych</title>
                  <desc id="rk-solar-chart-desc">Cztery słupki przedstawiają aktualne straty, zyski słoneczne, zyski wewnętrzne oraz moc oddawaną przez podłogę.</desc>
                  <line class="rk-solar-chart-grid" x1="74" y1="45" x2="685" y2="45"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="100" x2="685" y2="100"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="155" x2="685" y2="155"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="210" x2="685" y2="210"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="265" x2="685" y2="265"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="45" x2="74" y2="265"></line>
                  <text class="rk-solar-chart-label" id="rk-solar-ymax" x="64" y="50" text-anchor="end">720</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y75" x="64" y="105" text-anchor="end">540</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y50" x="64" y="160" text-anchor="end">360</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y25" x="64" y="215" text-anchor="end">180</text>
                  <text class="rk-solar-chart-label" x="64" y="270" text-anchor="end">0</text>
                  <text class="rk-solar-chart-label" x="17" y="160" text-anchor="middle" transform="rotate(-90 17 160)">moc [W]</text>
                  <rect class="rk-solar-bar-loss" id="rk-solar-bar-loss" x="115" y="77" width="90" height="188" rx="11"></rect>
                  <rect class="rk-solar-bar-sun" id="rk-solar-bar-sun" x="265" y="119" width="90" height="146" rx="11"></rect>
                  <rect class="rk-solar-bar-internal" id="rk-solar-bar-internal" x="415" y="228" width="90" height="37" rx="11"></rect>
                  <rect class="rk-solar-bar-floor" id="rk-solar-bar-floor" x="565" y="82" width="90" height="183" rx="11"></rect>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-loss-value" x="160" y="69" text-anchor="middle">615 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-sun-value" x="310" y="111" text-anchor="middle">476 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-internal-value" x="460" y="220" text-anchor="middle">120 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-floor-value" x="610" y="74" text-anchor="middle">600 W</text>
                  <text class="rk-solar-chart-label" x="160" y="294" text-anchor="middle">STRATY</text>
                  <text class="rk-solar-chart-label" x="310" y="294" text-anchor="middle">SŁOŃCE</text>
                  <text class="rk-solar-chart-label" x="460" y="294" text-anchor="middle">BYTOWE</text>
                  <text class="rk-solar-chart-label" x="610" y="294" text-anchor="middle">PODŁOGA</text>
                </svg>
              </div>
            </div>
          </div>

          <div class="rk-solar-inline-cta">
            <h3>Dwa pomieszczenia w tym samym domu mogą w tej samej chwili potrzebować zupełnie innej mocy</h3>
            <p>Kalkulator pokazuje chwilowy bilans. Projekt musi natomiast określić straty każdego pomieszczenia, moc podłogi bez zakładania stałego słońca, rozstaw i długość pętli, przepływy oraz sensowny podział na strefy. Dopiero te dane pozwalają przewidzieć reakcję salonu południowego bez pozbawiania mocy pokoi północnych.</p>
            <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami dla każdego pomieszczenia</a>
            <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-physics">
        <span class="rk-solar-kicker">Fizyka zamiast prostych sloganów</span>
        <h2>Jak obliczyć pasywne zyski ciepła i dlaczego podłoga częściowo reguluje się sama?</h2>
        <p class="rk-solar-lead">Do wstępnej analizy można zestawić moc promieniowania przechodzącego przez przeszklenie z chwilowymi stratami pomieszczenia. Wynik pokazuje kierunek zmian, ale nie określa temperatury za dwie lub cztery godziny. Taką odpowiedź daje dopiero obliczenie dynamiczne uwzględniające pojemność cieplną, czas, położenie słońca i sterowanie.</p>

        <div class="rk-solar-formulas">
          <article class="rk-solar-formula">
            <span>Uproszczony zysk słoneczny</span>
            <code>Φ<sub>sol</sub> = A<sub>gl</sub> × g × I × F<sub>sh</sub></code>
            <p>A<sub>gl</sub> — czynna powierzchnia szyb, `g` — przepuszczalność energii całkowitej, `I` — chwilowe promieniowanie na płaszczyznę szyby, F<sub>sh</sub> — udział pozostający po zacienieniu.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Przybliżenie aktualnych strat</span>
            <code>Φ<sub>loss,now</sub> ≈ Φ<sub>design</sub> × (T<sub>i</sub> − T<sub>e,now</sub>) / (T<sub>i</sub> − T<sub>e,design</sub>)</code>
            <p>Proporcjonalne skalowanie względem różnicy temperatur jest narzędziem edukacyjnym. Nie odtwarza osobno wentylacji, infiltracji, zmiennych współczynników ani zysków magazynowanych.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Chwilowa moc aktywna</span>
            <code>Φ<sub>heat,now</sub> = max[0; Φ<sub>loss,now</sub> − Φ<sub>sol</sub> − Φ<sub>int</sub>]</code>
            <p>Jeżeli zyski przekraczają straty, chwilowe zapotrzebowanie aktywne spada do zera. Nie oznacza to, że można trwale zmniejszyć moc projektową pętli.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Energia magazynowana w masie</span>
            <code>E = m × c × ΔT</code>
            <p>Masa `m`, ciepło właściwe `c` i zmiana temperatury określają teoretyczną ilość energii przejętej przez materiał. Rzeczywisty udział zależy od rozkładu temperatury oraz warunków brzegowych.</p>
          </article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>To ważne dla interpretacji:</strong> współczynnik `g` nie jest współczynnikiem przenikania ciepła `U`. `U` opisuje straty przez przegrodę przy różnicy temperatur, a `g` udział energii słonecznej przechodzącej przez oszklenie. Dobre okno może mieć niskie `U`, a jednocześnie stosunkowo wysokie albo niskie `g`.</p>
        </div>

        <div class="rk-solar-selfreg">
          <div class="rk-solar-selfreg-visual">
            <span class="rk-solar-kicker" style="color:#79f1ff">Przykład powierzchni 25°C</span>
            <h3>Wzrost temperatury wnętrza zmniejsza oddawanie ciepła</h3>
            <p>Przy niezmienionej temperaturze powierzchni wielkość emisji jest w przybliżeniu związana z różnicą między podłogą a temperaturą operacyjną pomieszczenia.</p>
            <div class="rk-solar-selfreg-scale" aria-label="Względna emisja podłogi przy różnych temperaturach pomieszczenia">
              <div class="rk-solar-selfreg-row"><span>Pokój 20°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:100%"></span></span><strong style="color:#fff">100%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 21°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:80%"></span></span><strong style="color:#fff">80%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 22°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:60%"></span></span><strong style="color:#fff">60%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 23°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:40%"></span></span><strong style="color:#fff">40%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 24°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:20%"></span></span><strong style="color:#fff">20%</strong></div>
            </div>
          </div>
          <div class="rk-solar-selfreg-copy">
            <h3>Na czym polega samoregulacja ogrzewania podłogowego?</h3>
            <p>Jeżeli powierzchnia ma 25°C, a temperatura operacyjna wnętrza 20°C, różnica wynosi 5 K. Gdy słońce podniesie temperaturę wnętrza do 23°C, różnica spada do 2 K. Przy podobnym współczynniku wymiany ciepła emisja może spaść do około 40% wartości początkowej.</p>
            <p>To efekt fizyczny, bez termostatu i siłownika. Jest szczególnie zauważalny w systemach niskotemperaturowych, w których powierzchnia podłogi znajduje się tylko kilka kelwinów powyżej temperatury pomieszczenia.</p>
            <p><strong>Nie jest to jednak pełne zabezpieczenie.</strong> Temperatura powierzchni również zmienia się w czasie, a jastrych może zawierać energię zgromadzoną przed pojawieniem się słońca. Powyższe procenty pokazują zasadę, a nie prognozę konkretnego budynku.</p>
          </div>
        </div>

        <h3 style="margin-top:38px">Ile energii może przejąć jastrych?</h3>
        <p>Dla salonu o powierzchni 30 m², warstwy jastrychu 6,5 cm, gęstości 2100 kg/m³ i ciepła właściwego około 0,88 kJ/(kg·K) teoretyczna pojemność tej masy wynosi około <strong>1 kWh na każdy 1 K</strong> zmiany średniej temperatury. Nie oznacza to, że cała warstwa nagrzeje się równomiernie ani że cała energia będzie użyteczna, ale pokazuje skalę akumulacji.</p>

        <div class="rk-solar-grid-3" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">1</span><h3>Krótki impuls słońca</h3><p>Ciężka podłoga może pochłonąć część energii i ograniczyć szybki wzrost temperatury powietrza.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">2</span><h3>Długi słoneczny okres</h3><p>Po wypełnieniu zdolności do dalszego magazynowania rośnie temperatura powierzchni i zwiększa się ryzyko przegrzania.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">3</span><h3>Po zachodzie</h3><p>Nagrzane powierzchnie oddają energię do wnętrza. Czas i intensywność zależą od konstrukcji oraz strat budynku.</p></article>
        </div>

        <p style="margin-top:24px">Szersze omówienie tego zjawiska znajduje się w artykule <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-design">
        <span class="rk-solar-kicker">Dwa obliczenia o różnych celach</span>
        <h2>Jak projektować podłogówkę przy dużych przeszkleniach?</h2>
        <p class="rk-solar-lead">Najpierw należy zapewnić wymaganą moc w warunkach projektowych. Dopiero później sprawdza się, jak zmienne zyski słoneczne wpływają na regulację, temperaturę operacyjną i ryzyko przegrzewania. Pominięcie pierwszego etapu grozi niedogrzaniem w pochmurny mróz, a pominięcie drugiego — dyskomfortem w słoneczne dni.</p>

        <div class="rk-solar-table-wrap">
          <table aria-label="Porównanie obliczenia projektowego i chwilowego bilansu zysków">
            <thead><tr><th>Element analizy</th><th>Obciążenie projektowe</th><th>Bilans chwilowy lub godzinowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Cel</strong></td><td data-label="Obciążenie projektowe">Dobór mocy ogrzewania dla obliczeniowych warunków zewnętrznych.</td><td data-label="Bilans chwilowy">Ocena reakcji wnętrza na zmienne słońce, ludzi, urządzenia i sterowanie.</td></tr>
              <tr><td data-label="Element"><strong>Warunki pogodowe</strong></td><td data-label="Obciążenie projektowe">Projektowa temperatura zewnętrzna i przyjęte warunki normowe.</td><td data-label="Bilans chwilowy">Temperatura, promieniowanie, zachmurzenie i zacienienie zmienne w czasie.</td></tr>
              <tr><td data-label="Element"><strong>Zyski słoneczne</strong></td><td data-label="Obciążenie projektowe">Nie mogą stanowić gwarantowanego źródła mocy dla każdej godziny mrozu.</td><td data-label="Bilans chwilowy">Są bezpośrednim składnikiem aktualnego bilansu i mogą chwilowo wyłączyć potrzebę grzania.</td></tr>
              <tr><td data-label="Element"><strong>Wynik</strong></td><td data-label="Obciążenie projektowe">Moc pomieszczenia, rozstaw, temperatura zasilania, długość i przepływ pętli.</td><td data-label="Bilans chwilowy">Wymagana redukcja mocy, ryzyko nadwyżki, potrzeba zacienienia i strategia sterowania.</td></tr>
              <tr><td data-label="Element"><strong>Metoda</strong></td><td data-label="Obciążenie projektowe">Obliczenia strat pomieszczenie po pomieszczeniu.</td><td data-label="Bilans chwilowy">Od uproszczonego modelu edukacyjnego do pełnej symulacji godzinowej.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-solar-danger">
          <p><strong>Nie zmniejszaj zagęszczenia rur wyłącznie ze względu na południowe okna.</strong> Jeżeli projektowana pętla nie pokryje strat bez słońca, automatyka nie odzyska brakującej mocy. Rozstaw rur powinien wynikać z obciążenia, temperatury zasilania, oporu okładziny i dopuszczalnej temperatury powierzchni.</p>
        </div>

        <h3 style="margin-top:38px">Co trzeba przeanalizować przy przeszkleniach południowych i zachodnich?</h3>
        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">01</span><h3>Geometria i orientacja</h3><p>Powierzchnia szyby, azymut, wysokość nadproża, głębokość pomieszczenia oraz kąt padania słońca decydują o miejscu i czasie wystąpienia zysków.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">02</span><h3>Parametry oszklenia</h3><p>Do strat wykorzystuje się `U`, a do zysków `g`. Należy uwzględnić również udział ram, rzeczywistą powierzchnię szkła i dane producenta okna.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">03</span><h3>Zacienienie zewnętrzne</h3><p>Okap może dobrze działać dla wysokiego słońca letniego, ale przepuszczać niskie słońce zimowe. Żaluzja zewnętrzna reaguje elastycznie i zatrzymuje energię przed szybą.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">04</span><h3>Opór posadzki</h3><p>Płytki, drewno, winyl i dywan zmieniają moc powierzchniową oraz temperaturę wody potrzebną do pokrycia strat.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">05</span><h3>Podział hydrauliczny</h3><p>Strefy południowe i północne powinny mieć pętle pozwalające na niezależną reakcję. Jedna długa pętla przechodząca przez oba obszary utrudnia sterowanie.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">06</span><h3>Temperatura zasilania</h3><p>Im mniejsza nadwyżka temperatury podłogi nad wnętrzem, tym wyraźniejszy efekt samoregulacji i mniejsza energia zgromadzona ponad potrzebę.</p></article>
        </div>

        <p style="margin-top:24px">Szczegółowy dobór opisują również poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur przy pompie ciepła</a>, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefie brzegowej ogrzewania podłogowego</a> i <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>

        <h3 style="margin-top:38px">Cztery typowe pomieszczenia — cztery strategie</h3>
        <div class="rk-solar-table-wrap">
          <table aria-label="Strategie projektowe dla pomieszczeń o różnych zyskach słonecznych">
            <thead><tr><th>Pomieszczenie</th><th>Najważniejsze ryzyko</th><th>Decyzja projektowa</th><th>Sterowanie i ochrona</th></tr></thead>
            <tbody>
              <tr><td data-label="Pomieszczenie"><strong>Salon południowy</strong></td><td data-label="Ryzyko">Duży szczyt w środku dnia i energia pozostająca w jastrychu.</td><td data-label="Projekt">Osobne pętle strefy dziennej, moc pełna na dzień bez słońca, możliwie niska Tz.</td><td data-label="Sterowanie">Wpływ pomieszczenia, ograniczenie przegrzewania i skuteczne zacienienie zewnętrzne.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Strefa zachodnia</strong></td><td data-label="Ryzyko">Późny zysk w chwili, gdy podłoga zawiera energię z całego dnia.</td><td data-label="Projekt">Oddzielenie od pomieszczeń północnych i analiza popołudniowego użytkowania.</td><td data-label="Sterowanie">Reakcja wyprzedzająca oraz żaluzje ograniczające niski kąt słońca.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Sypialnia północna</strong></td><td data-label="Ryzyko">Niedogrzanie po zamknięciu całej instalacji przez czujnik w słonecznym salonie.</td><td data-label="Projekt">Własna pętla i przepływ wynikający z jej strat, bez uzależniania od salonu.</td><td data-label="Sterowanie">Czujnik reprezentatywny dla sypialni albo pozostawienie poprawnie zrównoważonego obwodu.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Łazienka</strong></td><td data-label="Ryzyko">Inna temperatura zadana i potrzeba komfortu w określonych godzinach.</td><td data-label="Projekt">Osobna pętla, sprawdzenie mocy i temperatury powierzchni; ewentualne źródło uzupełniające.</td><td data-label="Sterowanie">Harmonogram dopasowany do użytkowania, bez przypadkowego uzależniania od salonu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-control">
        <span class="rk-solar-kicker">Automatyka ma współpracować z fizyką</span>
        <h2>Jak sterować ogrzewaniem podłogowym przy zyskach słonecznych?</h2>
        <p class="rk-solar-lead">Najlepszy efekt zwykle daje połączenie poprawnie ustawionej niskiej temperatury zasilania, równoważenia hydraulicznego, rozsądnego wpływu temperatury pomieszczeń oraz zacienienia. Sam termostat działający dopiero po przekroczeniu zadanej temperatury może zareagować zbyt późno, ale rozbudowana automatyka również nie naprawi źle podzielonych pętli.</p>

        <div class="rk-solar-strategy-grid">
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">1. Sterowanie pogodowe jako baza</div><div class="rk-solar-strategy-body"><p><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Regulator pogodowy</a> dopasowuje temperaturę zasilania do temperatury zewnętrznej. Ogranicza nadmierne ładowanie jastrychu, lecz sam czujnik zewnętrzny nie widzi słońca wpadającego przez konkretne okno.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">2. Wpływ pomieszczenia lub sterowanie strefowe</div><div class="rk-solar-strategy-body"><p>Czujnik powietrza albo temperatury operacyjnej może skorygować pracę strefy południowej. Siłownik zamyka przepływ w odpowiednich pętlach, ale nie usuwa ciepła już zawartego w podłodze.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">3. Zacienienie ogranicza problem u źródła</div><div class="rk-solar-strategy-body"><p>Osłona zewnętrzna zatrzymuje część promieniowania przed wejściem do wnętrza. W sezonie letnim często ma większe znaczenie niż jakakolwiek korekta instalacji grzewczej.</p></div></article>
        </div>

        <div class="rk-solar-note">
          <p><strong>Gdzie umieścić czujnik?</strong> Nie w bezpośrednim słońcu, nad rozgrzanym sprzętem ani przy drzwiach. Powinien mierzyć warunki reprezentatywne dla strefy. Jeden centralny termostat w nasłonecznionym salonie nie powinien odcinać ciepła sypialni znajdujących się po północnej stronie.</p>
        </div>

        <h3 style="margin-top:38px">Czy każda pętla musi mieć siłownik?</h3>
        <p>Nie. W budynku o małych, podobnych obciążeniach i dobrze ustawionej krzywej grzewczej część instalacji może pracować stabilnie bez ciągłego zamykania obwodów. Automatyka ma sens tam, gdzie występują rzeczywiście różne profile zysków, temperatur zadanych albo użytkowania. Szerzej omawia to poradnik <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</p>

        <ul class="rk-solar-checklist">
          <li>Najpierw ustaw przepływy projektowe, dopiero później obserwuj reakcję stref.</li>
          <li>Nie stosuj głębokich, krótkich obniżeń temperatury dla ciężkiej podłogi.</li>
          <li>Ogranicz temperaturę zasilania do wartości wynikającej z obliczeń.</li>
          <li>Nie zamykaj wszystkich pętli bez sprawdzenia wymagań źródła ciepła.</li>
          <li>Zapisuj temperaturę wewnętrzną, zewnętrzną i nasłonecznienie przez kilka dni.</li>
          <li>Oddziel problem zimowych zysków od letniej ochrony przed przegrzewaniem.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-heatpump">
        <span class="rk-solar-kicker">Hydraulika przy zamykaniu stref</span>
        <h2>Pompa ciepła, pasywne zyski ciepła i minimalny przepływ</h2>
        <p class="rk-solar-lead">Gdy słońce ogrzewa salon, siłowniki mogą zamknąć kilka dużych pętli. Pozostałe pokoje nadal potrzebują energii, ale całkowity przepływ przez instalację spada. To moment, w którym strategia pokojowa spotyka się z wymaganiami pompy ciepła.</p>

        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">V̇<sub>min</sub></span><h3>Minimalny przepływ urządzenia</h3><p>Trzeba zapewnić przepływ wymagany podczas grzania i odszraniania. Wartość pochodzi z dokumentacji konkretnej pompy ciepła.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">V</span><h3>Pojemność wodna</h3><p>Zbyt mała pojemność czynna po zamknięciu stref może skrócić cykle sprężarki i utrudnić odbiór energii.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">Δp</span><h3>Zmiana oporów</h3><p>Zamykanie obwodów zmienia charakterystykę instalacji. Pompa obiegowa i zawory muszą zachować bezpieczny punkt pracy.</p></article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>Bufor dobiera się do funkcji, a nie z przyzwyczajenia.</strong> Może stabilizować objętość i rozdzielić przepływy, ale może też zwiększyć straty postojowe lub pogorszyć temperaturę zasilania, jeżeli zostanie źle włączony. Najpierw sprawdza się układ bezpośredni, minimalny przepływ, aktywną pojemność i logikę odszraniania, a dopiero potem podejmuje decyzję. Zobacz również: <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a>.</p>
        </div>

        <p>Równie ważna jest modulacja źródła. Gdy większość zysków pokrywa salon, chwilowe zapotrzebowanie domu może spaść poniżej minimalnej mocy urządzenia. Sama automatyka pokojowa nie rozwiąże tego problemu — potrzebna jest koordynacja z krzywą grzewczą, przepływem i pojemnością instalacji. Więcej zależności opisuje techniczne opracowanie <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła i ogrzewanie niskotemperaturowe</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-howto">
        <span class="rk-solar-kicker">Procedura projektowa krok po kroku</span>
        <h2>Jak uwzględnić pasywne zyski ciepła w projekcie ogrzewania podłogowego?</h2>
        <p class="rk-solar-lead">Prawidłowa kolejność chroni przed dwiema skrajnościami: niedowymiarowaniem ogrzewania z powodu optymistycznego założenia o słońcu oraz przegrzewaniem wynikającym z braku podziału i regulacji stref.</p>

        <div class="rk-solar-steps">
          <article class="rk-solar-step"><h3>Oblicz straty każdego pomieszczenia</h3><p>Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź orientację i przeszklenia</h3><p>Zapisz powierzchnię czynną szyb, azymut, współczynnik `g`, elementy zacieniające i sąsiednie przeszkody.</p></article>
          <article class="rk-solar-step"><h3>Dobierz podłogę bez gwarantowanego słońca</h3><p>Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.</p></article>
          <article class="rk-solar-step"><h3>Podziel niezależne strefy</h3><p>Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.</p></article>
          <article class="rk-solar-step"><h3>Zaprojektuj reakcję sterowania</h3><p>Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź źródło przy zamykaniu pętli</h3><p>Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.</p></article>
        </div>

        <h3 style="margin-top:38px">Najczęstsze błędy w domu z dużymi oknami</h3>
        <ul class="rk-solar-checklist">
          <li>Odejmowanie zysków słonecznych od mocy pętli tak, jakby występowały w każdą mroźną godzinę.</li>
          <li>Łączenie salonu południowego i pokoju północnego jedną pętlą grzewczą.</li>
          <li>Ustawianie wysokiej temperatury zasilania, a następnie ratowanie komfortu częstym zamykaniem pętli.</li>
          <li>Montowanie termostatu w miejscu bezpośrednio nasłonecznionym.</li>
          <li>Mylenie wartości `U` okna ze współczynnikiem całkowitej przepuszczalności energii `g`.</li>
          <li>Traktowanie masy jastrychu wyłącznie jako problemu, bez oceny jej zdolności do tłumienia krótkich szczytów.</li>
          <li>Dodawanie bufora bez sprawdzenia minimalnego przepływu i funkcji, którą ma pełnić.</li>
          <li>Oczekiwanie, że termostat natychmiast zatrzyma ciepło zgromadzone wcześniej w podłodze.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-faq">
        <span class="rk-solar-kicker">Pytania inwestorów</span>
        <h2>FAQ: ogrzewanie podłogowe a pasywne zyski ciepła</h2>
        <div class="rk-solar-faq">
          <details>
            <summary>Czy ogrzewanie podłogowe może przegrzewać dom od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref.</p></div>
          </details>
          <details>
            <summary>Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?</summary>
            <div class="rk-solar-faq-answer"><p>Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania.</p></div>
          </details>
          <details>
            <summary>Na czym polega samoregulacja ogrzewania podłogowego?</summary>
            <div class="rk-solar-faq-answer"><p>Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu.</p></div>
          </details>
          <details>
            <summary>Czy przy dużych oknach trzeba zwiększyć rozstaw rur?</summary>
            <div class="rk-solar-faq-answer"><p>Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni.</p></div>
          </details>
          <details>
            <summary>Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?</summary>
            <div class="rk-solar-faq-answer"><p>Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie.</p></div>
          </details>
          <details>
            <summary>Czy każdy pokój powinien mieć osobny termostat i siłownik?</summary>
            <div class="rk-solar-faq-answer"><p>Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła.</p></div>
          </details>
          <details>
            <summary>Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?</summary>
            <div class="rk-solar-faq-answer"><p>Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem.</p></div>
          </details>
          <details>
            <summary>Jak najlepiej ograniczyć przegrzewanie od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-solar-section" aria-label="Źródła techniczne">
        <div class="rk-solar-sources">
          <strong>Podstawa techniczna i źródła opracowania</strong>
          <p>Projektowe obciążenie cieplne: <a href="https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html" target="_blank" rel="noopener nofollow">PN-EN 12831-1:2017-08 — Polski Komitet Normalizacyjny</a>. Obliczenia godzinowe energii, temperatur i obciążeń: <a href="https://www.iso.org/standard/65696.html" target="_blank" rel="noopener nofollow">ISO 52016-1:2017 — International Organization for Standardization</a>. Projektowanie i sterowanie systemami płaszczyznowymi oraz efekt samoregulacji: <a href="https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems" target="_blank" rel="noopener nofollow">opracowanie ISO 11855 — REHVA</a>. Wpływ masy termicznej na zmienne zyski słoneczne: <a href="https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques" target="_blank" rel="noopener nofollow">Passive Design Techniques — U.S. Department of Energy</a>. Graniczne temperatury powierzchni systemów podłogowych: <a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="noopener nofollow">PN-EN 1264-2:2021-10 — PKN</a>. Dostęp do źródeł: 26 sierpnia 2026 r.</p>
          <p>Laboratorium przedstawia uproszczony bilans chwilowy i nie modeluje położenia słońca, udziału ram, wielokrotnych odbić, szczegółowej dynamiki przegród, wymiany między strefami ani działania konkretnego sterownika.</p>
        </div>
      </section>

      <section class="rk-solar-author" id="rk-solar-author" aria-label="Autor opracowania">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-about" checked="">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-exp">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-sites">

        <div class="rk-solar-author-head">
          <div><h2>Autor opracowania</h2><p>Praktyka projektowa, fizyka budynku i parametry instalacji przedstawione bez skrótów myślowych.</p></div>
          <span class="rk-solar-author-mark">E‑E‑A‑T • HVAC</span>
        </div>

        <div class="rk-solar-author-layout">
          <aside class="rk-solar-author-side">
            <div class="rk-solar-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji ogrzewania podłogowego" width="360" height="360" loading="lazy" decoding="async"></div>
            <div class="rk-solar-author-name">Robert Kucharski</div>
            <div class="rk-solar-author-role">CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</div>
          </aside>

          <div class="rk-solar-author-main">
            <blockquote class="rk-solar-author-quote"><p>„Słońce nie powinno zastępować mocy projektowej pętli. Powinno natomiast wpływać na sposób podziału stref, temperaturę zasilania i sterowanie, bo to one decydują, czy darmowa energia poprawi bilans, czy przegrzeje salon.”</p></blockquote>

            <div class="rk-solar-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-solar-author-tab" for="rk-solar-author-about" role="tab">O autorze</label>
              <label class="rk-solar-author-tab" for="rk-solar-author-exp" role="tab">Doświadczenie</label>
              <label class="rk-solar-author-tab" for="rk-solar-author-sites" role="tab">Portale</label>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-about">
              <p>Robert Kucharski projektuje wodne instalacje ogrzewania podłogowego i przygotowuje techniczne publikacje dotyczące hydrauliki, źródeł ciepła, automatyki, fizyki budynku oraz świadomego prowadzenia inwestycji. W opracowaniach rozdziela parametry służące do doboru instalacji od zmiennych warunków eksploatacyjnych.</p>
              <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz profil i pozostałe opracowania autora</a>.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-exp">
              <p>Doświadczenie autora obejmuje obliczenia obciążenia cieplnego pomieszczeń, dobór temperatury zasilania, rozstawu i długości pętli, przepływów oraz oporów hydraulicznych. Szczególną uwagę poświęca współpracy podłogówki z pompami ciepła, podziałowi na strefy i warunkom, które mogą prowadzić do przegrzewania albo taktowania źródła.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-sites">
              <p>Autor jest właścicielem trzech serwisów poświęconych projektowaniu instalacji, budowie i remontom. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo oraz kontekst linkowania.</p>
              <div class="rk-solar-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>

      <section class="rk-solar-final-cta" aria-label="Projekt ogrzewania podłogowego dla domu z dużymi przeszkleniami">
        <div class="rk-solar-final-cta-content">
          <span class="rk-solar-kicker" style="color:#79f1ff">Projekt przed wykonaniem wylewki</span>
          <h2>Masz duże przeszklenia? Nie każ jednej pętli ogrzewać dwóch różnych światów</h2>
          <p>Projekt ogrzewania podłogowego określa straty każdego pomieszczenia, moc powierzchniową bez zakładania stałego słońca, rozstaw i długość pętli, przepływy, opory oraz podział stref. Dzięki temu salon może ograniczyć grzanie od nasłonecznienia, a północne pokoje nadal otrzymują potrzebną moc.</p>
          <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
          <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>
    </div>
  </div>
</article>

<!-- RK_SOLAR_SCHEMA -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "headline": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "reviewedBy": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "accountablePerson": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Fizyka budynku",
        "Sterowanie ogrzewaniem"
      ],
      "keywords": [
        "ogrzewanie podłogowe a pasywne zyski ciepła",
        "zyski słoneczne a ogrzewanie podłogowe",
        "przegrzewanie domu od słońca",
        "duże przeszklenia a podłogówka",
        "samoregulacja ogrzewania podłogowego",
        "bezwładność cieplna podłogówki",
        "sterowanie podłogówką w nasłonecznionym salonie",
        "pompa ciepła a zamykanie pętli"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Pasywne zyski ciepła"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Zyski słoneczne przez przeszklenia"
        },
        {
          "@type": "Thing",
          "name": "Sterowanie strefowe"
        }
      ],
      "citation": [
        "https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html",
        "https://www.iso.org/standard/65696.html",
        "https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems",
        "https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "name": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#breadcrumb"
      },
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq"
        }
      ],
      "about": {
        "@type": "Thing",
        "name": "Wpływ pasywnych zysków ciepła na ogrzewanie podłogowe"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Ogrzewanie podłogowe a pasywne zyski ciepła",
          "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium",
      "name": "Laboratorium chwilowego bilansu zysków słonecznych",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-lab",
      "description": "Edukacyjny model porównujący przybliżone chwilowe straty pomieszczenia, zyski słoneczne, zyski wewnętrzne i moc nadal oddawaną przez ogrzewanie podłogowe.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Building energy balance simulator",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript oraz obsługa SVG",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "about": {
        "@type": "Thing",
        "name": "Chwilowy bilans cieplny nasłonecznionego pomieszczenia"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#howto",
      "name": "Jak zaprojektować ogrzewanie podłogowe w domu z dużymi przeszkleniami",
      "description": "Sześć etapów projektowania instalacji, która pokrywa straty w dzień bez słońca i reaguje na zmienne zyski w nasłonecznionych pomieszczeniach.",
      "inLanguage": "pl-PL",
      "totalTime": "P1D",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz straty każdego pomieszczenia",
          "text": "Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Sprawdź orientację i przeszklenia",
          "text": "Zapisz powierzchnię czynną szyb, azymut, współczynnik g, elementy zacieniające i sąsiednie przeszkody.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dobierz podłogę bez gwarantowanego słońca",
          "text": "Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Podziel niezależne strefy",
          "text": "Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zaprojektuj reakcję sterowania",
          "text": "Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź źródło przy zamykaniu pętli",
          "text": "Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe może przegrzewać dom od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref."
          }
        },
        {
          "@type": "Question",
          "name": "Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania."
          }
        },
        {
          "@type": "Question",
          "name": "Na czym polega samoregulacja ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy dużych oknach trzeba zwiększyć rozstaw rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni."
          }
        },
        {
          "@type": "Question",
          "name": "Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie."
          }
        },
        {
          "@type": "Question",
          "name": "Czy każdy pokój powinien mieć osobny termostat i siłownik?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem."
          }
        },
        {
          "@type": "Question",
          "name": "Jak najlepiej ograniczyć przegrzewanie od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą."
          }
        }
      ]
    },
    {
      "@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",
        "width": 360,
        "height": 360
      },
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "description": "Projektant wodnych instalacji ogrzewania podłogowego i autor opracowań technicznych dotyczących hydrauliki, źródeł ciepła, automatyki oraz fizyki budynku. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "projektowanie ogrzewania podłogowego",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "pompy ciepła",
        "sterowanie pogodowe",
        "fizyka budynku",
        "pasywne zyski ciepła"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ],
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "description": "Serwis poświęcony projektowaniu wodnego ogrzewania podłogowego, należący do Roberta Kucharskiego.",
      "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"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "description": "Serwis budowlano-remontowy należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "description": "Portal o budowie, instalacjach i technologii domu należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Projektowanie ogrzewania podłogowego i techniczna wiedza o instalacjach grzewczych.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram",
      "name": "Schemat chwilowego bilansu zysków słonecznych, strat i ogrzewania podłogowego",
      "caption": "Autorski schemat przepływu energii w nasłonecznionym pomieszczeniu z ogrzewaniem podłogowym.",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "creditText": "Robert Kucharski, Projekt-Ogrzewania.pl",
      "copyrightNotice": "Robert Kucharski"
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  function initializeSolarGuide() {
    var root = document.getElementById("rk-solar-guide");
    if (!root) {
      return false;
    }
    if (root.getAttribute("data-rk-solar-ready") === "1") {
      return true;
    }
    root.setAttribute("data-rk-solar-ready", "1");

    function byId(id) {
      return document.getElementById(id);
    }

    function clamp(value, minimum, maximum) {
      return Math.min(maximum, Math.max(minimum, value));
    }

    function numberFrom(id, fallback) {
      var element = byId(id);
      if (!element) {
        return fallback;
      }
      var parsed = Number(element.value);
      return Number.isFinite(parsed) ? parsed : fallback;
    }

    function formatNumber(value, digits) {
      return new Intl.NumberFormat("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      }).format(value);
    }

    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, String(value));
      }
    }

    function watts(value) {
      return formatNumber(Math.round(value), 0) + " W";
    }

    function signedWatts(value) {
      var rounded = Math.round(value);
      if (rounded > 0) {
        return "+" + formatNumber(rounded, 0) + " W";
      }
      if (rounded < 0) {
        return "−" + formatNumber(Math.abs(rounded), 0) + " W";
      }
      return "0 W";
    }

    function updateBar(id, valueId, value, maximum) {
      var baseline = 265;
      var chartHeight = 220;
      var height = maximum > 0 ? value / maximum * chartHeight : 0;
      height = clamp(height, 0, chartHeight);
      var y = baseline - height;
      setAttribute(id, "y", y.toFixed(2));
      setAttribute(id, "height", height.toFixed(2));
      setAttribute(valueId, "y", Math.max(35, y - 8).toFixed(2));
      setText(valueId, watts(value));
    }

    function updateChart(loss, solarGain, internalGain, activePower) {
      var largest = Math.max(loss, solarGain, internalGain, activePower, 100);
      var maximum = Math.ceil(largest * 1.15 / 100) * 100;
      setText("rk-solar-ymax", formatNumber(maximum, 0));
      setText("rk-solar-y75", formatNumber(maximum * 0.75, 0));
      setText("rk-solar-y50", formatNumber(maximum * 0.5, 0));
      setText("rk-solar-y25", formatNumber(maximum * 0.25, 0));
      updateBar("rk-solar-bar-loss", "rk-solar-bar-loss-value", loss, maximum);
      updateBar("rk-solar-bar-sun", "rk-solar-bar-sun-value", solarGain, maximum);
      updateBar("rk-solar-bar-internal", "rk-solar-bar-internal-value", internalGain, maximum);
      updateBar("rk-solar-bar-floor", "rk-solar-bar-floor-value", activePower, maximum);
    }

    function updateStatus(currentOutside, indoor, currentLoss, gains, activePower, balance) {
      var status = byId("rk-solar-status");
      if (!status) {
        return;
      }

      var statusClass = "is-success";
      var title = "Bilans chwilowy jest zbliżony do równowagi";
      var copy = "Zyski i moc podłogi w przybliżeniu odpowiadają aktualnym stratom. To nadal fotografia jednej chwili, a nie prognoza temperatury po kilku godzinach.";
      var strongThreshold = Math.max(150, currentLoss * 0.25);
      var mildThreshold = Math.max(50, currentLoss * 0.08);

      if (currentOutside >= indoor) {
        if (activePower > 0) {
          statusClass = "is-danger";
          title = "Model nie wykazuje potrzeby grzania, a podłoga nadal oddaje energię";
          copy = "Temperatura zewnętrzna nie jest niższa od wewnętrznej, więc uproszczone straty wynoszą zero. Aktywne grzanie i zyski tworzą nadwyżkę, której termostat nie usunie z rozgrzanego jastrychu.";
        } else {
          statusClass = "is-warning";
          title = "Brak potrzeby aktywnego grzania w uproszczonym modelu";
          copy = "Przy tej temperaturze zewnętrznej model nie wyznacza strat przez różnicę temperatur. Zyski słoneczne i bytowe mogą nadal podnosić temperaturę wnętrza.";
        }
      } else if (balance > strongThreshold) {
        statusClass = "is-danger";
        title = "Wyraźna chwilowa nadwyżka energii";
        copy = "Zyski wynoszą " + watts(gains) + ", a podłoga nadal oddaje " + watts(activePower) + ". Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.";
      } else if (balance > mildThreshold) {
        statusClass = "is-warning";
        title = "Pojawia się umiarkowana chwilowa nadwyżka";
        copy = "Bilans wskazuje nadmiar około " + watts(balance) + ". Warto ograniczyć dalsze ładowanie podłogi i obserwować wpływ masy cieplnej oraz zacienienia.";
      } else if (balance < -strongThreshold) {
        statusClass = "is-warning";
        title = "Chwilowa moc jest wyraźnie niższa od przybliżonych strat";
        copy = "W tej chwili brakuje około " + watts(Math.abs(balance)) + ". Model nie rozstrzyga, czy różnicę pokrywa energia zgromadzona w przegrodach ani jak szybko zmieni się temperatura.";
      } else if (balance < -mildThreshold) {
        statusClass = "is-warning";
        title = "Niewielki chwilowy deficyt energii";
        copy = "Dopływy są nieco niższe od przybliżonych strat. Rzeczywista reakcja zależy od bezwładności budynku, sterowania i wcześniejszego przebiegu temperatur.";
      }

      status.className = "rk-solar-status " + statusClass;
      setText("rk-solar-status-title", title);
      setText("rk-solar-status-copy", copy);
    }

    function calculate() {
      var designLoad = numberFrom("rk-solar-design-load", 1200);
      var designOutside = numberFrom("rk-solar-design-out", -20);
      var currentOutside = numberFrom("rk-solar-current-out", 0);
      var indoor = numberFrom("rk-solar-indoor", 21);
      var glassArea = numberFrom("rk-solar-glass", 8);
      var gValue = numberFrom("rk-solar-gvalue", 0.5);
      var irradiance = numberFrom("rk-solar-irradiance", 140);
      var shading = numberFrom("rk-solar-shading", 85);
      var internalGain = numberFrom("rk-solar-internal", 120);
      var activePower = numberFrom("rk-solar-active", 600);

      var designDelta = Math.max(0.1, indoor - designOutside);
      var currentDelta = Math.max(0, indoor - currentOutside);
      var currentLoss = designLoad * currentDelta / designDelta;
      currentLoss = clamp(currentLoss, 0, designLoad * 1.5);

      var solarGain = glassArea * gValue * irradiance * shading / 100;
      var totalGains = solarGain + internalGain;
      var requiredActive = Math.max(0, currentLoss - totalGains);
      var balance = activePower + totalGains - currentLoss;
      var coverage = 0;
      if (currentLoss > 0.01) {
        coverage = totalGains / currentLoss * 100;
      } else if (totalGains > 0) {
        coverage = 999;
      }
      coverage = Math.min(999, coverage);

      setText("rk-solar-design-load-output", watts(designLoad));
      setText("rk-solar-design-out-output", formatNumber(designOutside, 0) + "°C");
      setText("rk-solar-current-out-output", formatNumber(currentOutside, 0) + "°C");
      setText("rk-solar-indoor-output", formatNumber(indoor, indoor % 1 === 0 ? 0 : 1) + "°C");
      setText("rk-solar-glass-output", formatNumber(glassArea, 1) + " m²");
      setText("rk-solar-gvalue-output", formatNumber(gValue, 2));
      setText("rk-solar-irradiance-output", formatNumber(irradiance, 0) + " W/m²");
      setText("rk-solar-shading-output", formatNumber(shading, 0) + "%");
      setText("rk-solar-internal-output", watts(internalGain));
      setText("rk-solar-active-output", watts(activePower));

      setText("rk-solar-result-loss", watts(currentLoss));
      setText("rk-solar-result-sun", watts(solarGain));
      setText("rk-solar-result-gains", watts(totalGains));
      setText("rk-solar-result-required", watts(requiredActive));
      setText("rk-solar-result-coverage", formatNumber(Math.round(coverage), 0) + "%");
      setText("rk-solar-result-balance", signedWatts(balance));

      updateStatus(currentOutside, indoor, currentLoss, totalGains, activePower, balance);
      updateChart(currentLoss, solarGain, internalGain, activePower);
    }

    var form = byId("rk-solar-form");
    if (form) {
      form.addEventListener("submit", function (event) {
        event.preventDefault();
      });
      var controls = form.querySelectorAll("input[type='range']");
      controls.forEach(function (control) {
        control.addEventListener("input", calculate);
        control.addEventListener("change", calculate);
      });
    }

    var navigationLinks = root.querySelectorAll(".rk-solar-nav a[href^='#']");
    navigationLinks.forEach(function (link) {
      link.addEventListener("click", function (event) {
        var targetId = link.getAttribute("href");
        if (!targetId) {
          return;
        }
        var target = root.querySelector(targetId);
        if (!target) {
          return;
        }
        event.preventDefault();
        var reducedMotion = false;
        if (window.matchMedia) {
          reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
        }
        target.scrollIntoView({
          behavior: reducedMotion ? "auto" : "smooth",
          block: "start"
        });
        if (window.history) {
          if (window.history.replaceState) {
            window.history.replaceState(null, "", targetId);
          }
        }
      });
    });

    var progress = root.querySelector(".rk-solar-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var rectangle = root.getBoundingClientRect();
      var available = root.offsetHeight - window.innerHeight;
      var passed = -rectangle.top;
      var ratio = available > 0 ? clamp(passed / available, 0, 1) : 0;
      progress.style.width = formatNumber(ratio * 100, 2).replace(",", ".") + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    calculate();
    updateProgress();
    return true;
  }

  function attemptInitialization() {
    initializeSolarGuide();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", attemptInitialization);
  } else {
    attemptInitialization();
  }

  window.addEventListener("load", attemptInitialization);
  window.setTimeout(attemptInitialization, 250);
  window.setTimeout(attemptInitialization, 1200);
  window.setTimeout(attemptInitialization, 3000);

  if (window.MutationObserver) {
    var observer = new MutationObserver(function () {
      var root = document.getElementById("rk-solar-guide");
      if (root) {
        initializeSolarGuide();
        if (root.getAttribute("data-rk-solar-ready") === "1") {
          observer.disconnect();
        }
      }
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sterowanie strefowe ogrzewaniem – czy warto? Fakty i błędy.</title>
		<link>https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 11:58:52 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędny dom]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[inteligentny dom]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[siłowniki na rozdzielacz]]></category>
		<category><![CDATA[sterowanie strefowe ogrzewaniem]]></category>
		<category><![CDATA[termostaty pokojowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2994</guid>

					<description><![CDATA[<p>Komfort pomieszczeń · hydraulika całego układu Każdy pokój osobno — cały układ razem Sterowanie strefowe może ograniczać przegrzewanie i pozwalać na różne nastawy w pomieszczeniach, ale nie gwarantuje oszczędności samo z siebie. W podłogówce trzeba uwzględnić bezwładność posadzki, przepływy po zamknięciu pętli oraz wymagania pompy ciepła lub innego źródła. podłogówka i pompa ciepła termostaty pokojowe&#8230;&#160;<a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/" rel="bookmark">Dowiedz się więcej &#187;<span class="screen-reader-text">Sterowanie strefowe ogrzewaniem – czy warto? Fakty i błędy.</span></a></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe ogrzewaniem – czy warto? Fakty i błędy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-zone-guide {
    --rk-zone-navy: #123247;
    --rk-zone-navy-deep: #0b2536;
    --rk-zone-teal: #0e7787;
    --rk-zone-cyan: #5fdef0;
    --rk-zone-orange: #ff7a21;
    --rk-zone-green: #248c68;
    --rk-zone-red: #c64b48;
    --rk-zone-amber: #b77812;
    --rk-zone-ink: #173246;
    --rk-zone-muted: #5d7180;
    --rk-zone-line: #d7e1e7;
    --rk-zone-soft: #f3f7f9;
    --rk-zone-white: #ffffff;
    --rk-zone-shadow: 0 18px 48px rgba(13, 43, 60, 0.12);
    color: var(--rk-zone-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    overflow-x: hidden;
  }

  #rk-zone-guide,
  #rk-zone-guide *,
  #rk-zone-guide *::before,
  #rk-zone-guide *::after {
    box-sizing: border-box;
  }

  #rk-zone-guide .rk-zone-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
  }

  #rk-zone-guide a {
    color: #087a9f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
  }

  #rk-zone-guide a:hover {
    color: #055d79;
  }

  #rk-zone-guide p,
  #rk-zone-guide ul,
  #rk-zone-guide ol {
    margin: 0 0 1.1rem;
  }

  #rk-zone-guide strong {
    color: inherit;
  }

  #rk-zone-guide .rk-zone-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 78px);
    border-radius: 32px;
    background:
      radial-gradient(circle at 90% 112%, rgba(95, 222, 240, 0.16) 0 150px, transparent 151px),
      radial-gradient(circle at 90% 112%, transparent 0 205px, rgba(95, 222, 240, 0.09) 206px 275px, transparent 276px),
      linear-gradient(115deg, #122f43 0%, #123c4f 56%, #0d5b63 100%);
    color: #ffffff;
    box-shadow: var(--rk-zone-shadow);
  }

  #rk-zone-guide .rk-zone-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -120px;
    bottom: -180px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: rgba(255, 122, 33, 0.10);
    filter: blur(2px);
  }

  #rk-zone-guide .rk-zone-hero-inner {
    position: relative;
    z-index: 1;
  }

  #rk-zone-guide .rk-zone-kicker,
  #rk-zone-guide .rk-zone-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--rk-zone-orange);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-zone-guide .rk-zone-kicker::before,
  #rk-zone-guide .rk-zone-eyebrow::before {
    content: "";
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
  }

  #rk-zone-guide .rk-zone-hero-title {
    max-width: 1110px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.55rem, 6.1vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
  }

  #rk-zone-guide .rk-zone-hero-title span {
    color: var(--rk-zone-cyan);
  }

  #rk-zone-guide .rk-zone-hero-lead {
    max-width: 1050px;
    margin: 30px 0 0;
    color: #eef9fc;
    font-size: clamp(1.05rem, 2vw, 1.34rem);
    line-height: 1.62;
  }

  #rk-zone-guide .rk-zone-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 28px 0 0;
  }

  #rk-zone-guide .rk-zone-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 17px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-zone-guide .rk-zone-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 34px 0 0;
    color: #e5f0f4;
    font-size: 0.85rem;
    font-weight: 700;
  }

  #rk-zone-guide .rk-zone-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 38px;
  }

  #rk-zone-guide .rk-zone-hero-metric {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
    color: #eff9fb;
    backdrop-filter: blur(5px);
  }

  #rk-zone-guide .rk-zone-hero-metric b {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-size: 1.02rem;
    line-height: 1.3;
  }

  #rk-zone-guide .rk-zone-hero-metric span {
    display: block;
    color: #e2f1f5;
    font-size: 0.88rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
    padding: 22px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 50, 71, 0.07);
  }

  #rk-zone-guide .rk-zone-shortcuts-label {
    display: block;
    flex-basis: 100%;
    color: var(--rk-zone-navy);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-zone-guide .rk-zone-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #cbd9e1;
    border-radius: 999px;
    background: var(--rk-zone-soft);
    color: var(--rk-zone-navy);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-zone-guide .rk-zone-shortcuts a:hover {
    border-color: var(--rk-zone-teal);
    background: #e8f6f8;
    color: #075f6b;
  }

  #rk-zone-guide .rk-zone-section,
  #rk-zone-guide .rk-zone-author {
    margin: 24px 0;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid var(--rk-zone-line);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 42px rgba(18, 50, 71, 0.07);
    scroll-margin-top: 28px;
  }

  #rk-zone-guide .rk-zone-section-soft {
    background: var(--rk-zone-soft);
  }

  #rk-zone-guide .rk-zone-section-dark {
    border-color: #234c61;
    background:
      radial-gradient(circle at 105% 100%, rgba(95, 222, 240, 0.12) 0 190px, transparent 191px),
      linear-gradient(135deg, #102d40, #0e4854);
    color: #eff8fb;
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-section-title,
  #rk-zone-guide .rk-zone-section-dark h3,
  #rk-zone-guide .rk-zone-section-dark strong {
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-lead,
  #rk-zone-guide .rk-zone-section-dark p,
  #rk-zone-guide .rk-zone-section-dark li {
    color: #e3f0f4;
  }

  #rk-zone-guide .rk-zone-section-title,
  #rk-zone-guide .rk-zone-author-title {
    max-width: 1010px;
    margin: 0 0 18px;
    color: var(--rk-zone-navy);
    font-size: clamp(1.8rem, 3.7vw, 3.05rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-wrap: balance;
  }

  #rk-zone-guide .rk-zone-lead {
    max-width: 1040px;
    color: #314c5e;
    font-size: 1.08rem;
    line-height: 1.75;
  }

  #rk-zone-guide .rk-zone-answer {
    margin: 24px 0;
    padding: 26px 28px;
    border-left: 6px solid var(--rk-zone-cyan);
    border-radius: 8px 20px 20px 8px;
    background: var(--rk-zone-navy);
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-answer-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-zone-cyan);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-zone-guide .rk-zone-answer p {
    margin: 0;
    color: #ffffff;
    font-size: 1.06rem;
  }

  #rk-zone-guide .rk-zone-grid-2,
  #rk-zone-guide .rk-zone-grid-3,
  #rk-zone-guide .rk-zone-grid-4 {
    display: grid;
    gap: 18px;
    margin: 24px 0;
  }

  #rk-zone-guide .rk-zone-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-zone-guide .rk-zone-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-zone-guide .rk-zone-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-zone-guide .rk-zone-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-zone-ink);
  }

  #rk-zone-guide .rk-zone-card h3 {
    margin: 0 0 10px;
    color: var(--rk-zone-navy);
    font-size: 1.06rem;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-card p,
  #rk-zone-guide .rk-zone-card li {
    color: #3e5869;
    font-size: 0.92rem;
    line-height: 1.65;
  }

  #rk-zone-guide .rk-zone-card p:last-child,
  #rk-zone-guide .rk-zone-card ul:last-child {
    margin-bottom: 0;
  }

  #rk-zone-guide .rk-zone-card-number {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: #dff8fb;
    color: #086678;
    font-size: 0.85rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-callout,
  #rk-zone-guide .rk-zone-note,
  #rk-zone-guide .rk-zone-warning {
    margin: 24px 0 0;
    padding: 20px 22px;
    border-radius: 16px;
    color: #274657;
    font-size: 0.94rem;
    line-height: 1.68;
  }

  #rk-zone-guide .rk-zone-callout {
    border: 1px solid #b9e7ed;
    background: #eaf9fb;
  }

  #rk-zone-guide .rk-zone-note {
    border: 1px solid #d7e1e7;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-warning {
    border: 1px solid #efd0a1;
    background: #fff6e9;
  }

  #rk-zone-guide .rk-zone-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #aacbd2;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 66, 78, 0.12);
  }

  #rk-zone-guide .rk-zone-tool-head {
    padding: 28px clamp(22px, 4vw, 40px);
    background: linear-gradient(125deg, var(--rk-zone-navy), #0d5962);
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-tool-head .rk-zone-eyebrow {
    color: #ffad73;
  }

  #rk-zone-guide .rk-zone-tool-head h3 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2.05rem);
    line-height: 1.2;
  }

  #rk-zone-guide .rk-zone-tool-head p {
    max-width: 920px;
    margin: 0;
    color: #e9f7fa;
    font-size: 0.94rem;
  }

  #rk-zone-guide .rk-zone-tool-body {
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-zone-guide .rk-zone-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
  }

  #rk-zone-guide .rk-zone-control {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 18px;
    background: var(--rk-zone-soft);
  }

  #rk-zone-guide .rk-zone-control-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-zone-navy);
    font-size: 0.84rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-segmented {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #rk-zone-guide .rk-zone-segmented button {
    min-width: 0;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #bfd0d9;
    border-radius: 13px;
    background: #ffffff;
    color: var(--rk-zone-navy);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }

  #rk-zone-guide .rk-zone-segmented button:hover {
    transform: translateY(-1px);
    border-color: var(--rk-zone-teal);
  }

  #rk-zone-guide .rk-zone-segmented button[aria-pressed="true"] {
    border-color: var(--rk-zone-navy);
    background: var(--rk-zone-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-zone-guide .rk-zone-state-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #b9e7ed;
    border-radius: 18px;
    background: #eaf9fb;
  }

  #rk-zone-guide .rk-zone-state-dot {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--rk-zone-green);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-state-summary[data-flow="closed"] {
    border-color: #e5c4c2;
    background: #fff1f0;
  }

  #rk-zone-guide .rk-zone-state-summary[data-flow="closed"] .rk-zone-state-dot {
    background: var(--rk-zone-red);
  }

  #rk-zone-guide .rk-zone-state-summary strong {
    display: block;
    margin-bottom: 2px;
    color: var(--rk-zone-navy);
    font-size: 1.05rem;
  }

  #rk-zone-guide .rk-zone-state-summary p {
    margin: 0;
    color: #405c6d;
    font-size: 0.91rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-flow-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  #rk-zone-guide .rk-zone-flow-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-zone-ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }

  #rk-zone-guide .rk-zone-flow-step.is-active {
    border-color: #64c7d2;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-zone-guide .rk-zone-flow-step.is-rest {
    background: #f7f9fa;
  }

  #rk-zone-guide .rk-zone-flow-top {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
  }

  #rk-zone-guide .rk-zone-flow-icon {
    display: grid;
    flex: 0 0 52px;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #e6f7f9;
    color: #087083;
  }

  #rk-zone-guide .rk-zone-flow-icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }

  #rk-zone-guide .rk-zone-flow-number {
    display: block;
    color: var(--rk-zone-orange);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-zone-guide .rk-zone-flow-step h4 {
    margin: 2px 0 0;
    color: var(--rk-zone-navy);
    font-size: 1rem;
    line-height: 1.25;
  }

  #rk-zone-guide .rk-zone-flow-value {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dff6e9;
    color: #176a4e;
    font-size: 0.77rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-zone-guide .rk-zone-flow-value.is-off {
    background: #eef1f3;
    color: #5c6e79;
  }

  #rk-zone-guide .rk-zone-flow-value.is-closed {
    background: #fde7e6;
    color: #9c3936;
  }

  #rk-zone-guide .rk-zone-flow-copy {
    margin: 0;
    color: #405b6c;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-zone-guide .rk-zone-tool-disclaimer {
    margin: 22px 0 0;
    padding: 17px 19px;
    border: 1px solid #efd0a1;
    border-radius: 15px;
    background: #fff6e9;
    color: #5f4a2c;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-zone-guide .rk-zone-compare-table,
  #rk-zone-guide .rk-zone-diagnostic-table {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-zone-line);
    border-radius: 20px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-table-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rk-zone-line);
  }

  #rk-zone-guide .rk-zone-table-row:first-child {
    border-top: 0;
  }

  #rk-zone-guide .rk-zone-table-row > div {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--rk-zone-line);
    color: #3b5667;
    font-size: 0.89rem;
    line-height: 1.58;
  }

  #rk-zone-guide .rk-zone-table-row > div:first-child {
    border-left: 0;
  }

  #rk-zone-guide .rk-zone-table-head {
    background: var(--rk-zone-navy);
  }

  #rk-zone-guide .rk-zone-table-head > div {
    color: #ffffff;
    font-weight: 850;
  }

  #rk-zone-guide .rk-zone-table-label {
    background: #f2f6f8;
    color: var(--rk-zone-navy) !important;
    font-weight: 850;
  }

  #rk-zone-guide .rk-zone-diagnostic-table .rk-zone-table-row {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) minmax(0, 1.15fr);
  }

  #rk-zone-guide .rk-zone-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-zone-guide .rk-zone-spec {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-spec-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #daf4f7;
    color: #0b7180;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-spec strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-zone-navy);
    font-size: 0.94rem;
  }

  #rk-zone-guide .rk-zone-spec span {
    display: block;
    color: #4b6474;
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-chain {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin: 26px 0;
  }

  #rk-zone-guide .rk-zone-chain-item {
    position: relative;
    min-width: 0;
    padding: 19px 15px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 17px;
    background: #ffffff;
    color: var(--rk-zone-ink);
    text-align: center;
  }

  #rk-zone-guide .rk-zone-chain-item::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 18px;
    color: var(--rk-zone-orange);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

  #rk-zone-guide .rk-zone-chain-item:last-child::after {
    display: none;
  }

  #rk-zone-guide .rk-zone-chain-item strong {
    display: block;
    color: var(--rk-zone-navy);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-chain-item span {
    display: block;
    margin-top: 5px;
    color: #56707f;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-zone-guide .rk-zone-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    counter-reset: rk-zone-step;
  }

  #rk-zone-guide .rk-zone-step {
    position: relative;
    min-width: 0;
    padding: 21px 21px 21px 67px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 19px;
    background: #ffffff;
    color: var(--rk-zone-ink);
    counter-increment: rk-zone-step;
  }

  #rk-zone-guide .rk-zone-step::before {
    content: counter(rk-zone-step);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-zone-navy);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-step h3 {
    margin: 0 0 7px;
    color: var(--rk-zone-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-step p {
    margin: 0;
    color: #435e6f;
    font-size: 0.88rem;
    line-height: 1.6;
  }

  #rk-zone-guide .rk-zone-mistakes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-zone-guide .rk-zone-mistake {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    min-width: 0;
    padding: 19px;
    border: 1px solid #ead4d2;
    border-radius: 17px;
    background: #fff7f6;
  }

  #rk-zone-guide .rk-zone-mistake-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-zone-red);
    color: #ffffff;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-mistake strong {
    color: #7e302e;
    font-size: 0.94rem;
  }

  #rk-zone-guide .rk-zone-mistake p {
    margin: 4px 0 0;
    color: #5f4d4c;
    font-size: 0.85rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-zone-guide .rk-zone-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 17px;
    background: #ffffff;
    color: #425d6e;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-checklist-item > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: #dff6e9;
    color: var(--rk-zone-green);
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-checklist-item strong {
    color: var(--rk-zone-navy);
    font-size: 0.92rem;
  }

  #rk-zone-guide .rk-zone-formula {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-zone-guide .rk-zone-formula-box {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 24px;
    border-radius: 20px;
    background: var(--rk-zone-navy);
    color: #ffffff;
    text-align: center;
  }

  #rk-zone-guide .rk-zone-formula-box strong {
    display: block;
    color: var(--rk-zone-cyan);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.25;
  }

  #rk-zone-guide .rk-zone-formula-box span {
    display: block;
    margin-top: 8px;
    color: #dcecf2;
    font-size: 0.82rem;
  }

  #rk-zone-guide .rk-zone-formula-copy {
    padding: 23px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 20px;
    background: #ffffff;
    color: #3f596a;
  }

  #rk-zone-guide .rk-zone-formula-copy h3 {
    margin: 0 0 9px;
    color: var(--rk-zone-navy);
    font-size: 1.08rem;
  }

  #rk-zone-guide .rk-zone-formula-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-zone-guide .rk-zone-cta {
    margin: 32px 0 0;
    padding: clamp(27px, 4vw, 42px);
    border-radius: 24px;
    background:
      radial-gradient(circle at 100% 110%, rgba(95, 222, 240, 0.14) 0 130px, transparent 131px),
      linear-gradient(125deg, var(--rk-zone-navy), #0b5761);
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(11, 45, 62, 0.18);
  }

  #rk-zone-guide .rk-zone-cta-title {
    max-width: 930px;
    margin: 0 0 12px;
    color: #ffffff;
    font-size: clamp(1.45rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.16;
  }

  #rk-zone-guide .rk-zone-cta p {
    max-width: 980px;
    margin-bottom: 20px;
    color: #e7f3f6;
  }

  #rk-zone-guide .rk-zone-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border: 2px solid var(--rk-zone-orange);
    border-radius: 12px;
    background: var(--rk-zone-orange);
    color: #ffffff !important;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(255, 122, 33, 0.22);
  }

  #rk-zone-guide .rk-zone-cta-button:hover {
    border-color: #ff9652;
    background: #ff9652;
    color: #ffffff !important;
  }

  #rk-zone-guide .rk-zone-link-disclosure {
    display: block;
    margin-top: 13px;
    color: #cfe1e6;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-zone-guide .rk-zone-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
  }

  #rk-zone-guide .rk-zone-source-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-source-card a {
    display: inline-block;
    color: var(--rk-zone-navy);
    font-size: 0.93rem;
    font-weight: 900;
    line-height: 1.45;
  }

  #rk-zone-guide .rk-zone-source-card p {
    margin: 8px 0 0;
    color: #516a79;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-responsibility {
    margin-top: 20px;
    padding: 21px;
    border: 1px solid #d7e1e7;
    border-radius: 18px;
    background: #ffffff;
    color: #405a6b;
    font-size: 0.87rem;
    line-height: 1.62;
  }

  #rk-zone-guide .rk-zone-responsibility p:last-child {
    margin-bottom: 0;
  }

  #rk-zone-guide .rk-zone-faq details {
    overflow: hidden;
    margin: 12px 0;
    border: 1px solid var(--rk-zone-line);
    border-radius: 16px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-zone-navy);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-zone-guide .rk-zone-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-zone-guide .rk-zone-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-zone-teal);
    font-size: 1.4rem;
    font-weight: 700;
    transform: translateY(-50%);
  }

  #rk-zone-guide .rk-zone-faq details[open] summary::after {
    content: "−";
  }

  #rk-zone-guide .rk-zone-faq-answer {
    padding: 0 20px 18px;
    color: #415c6d;
    font-size: 0.9rem;
    line-height: 1.65;
  }

  #rk-zone-guide .rk-zone-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-zone-guide .rk-zone-author {
    background:
      radial-gradient(circle at 98% 100%, rgba(95, 222, 240, 0.12) 0 150px, transparent 151px),
      linear-gradient(130deg, #102d40, #113f4e);
    color: #eaf4f7;
  }

  #rk-zone-guide .rk-zone-author .rk-zone-eyebrow {
    color: #ff9a57;
  }

  #rk-zone-guide .rk-zone-author-title {
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-author-layout {
    display: grid;
    grid-template-columns: minmax(210px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 25px;
  }

  #rk-zone-guide .rk-zone-author-side {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.07);
    text-align: center;
  }

  #rk-zone-guide .rk-zone-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 16px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-zone-guide .rk-zone-author-name a {
    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-author-role {
    margin: 7px 0 13px;
    color: #dbeaf0;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-zone-guide .rk-zone-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
  }

  #rk-zone-guide .rk-zone-author-social a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-zone-guide .rk-zone-author-main p {
    color: #dcecf1;
    font-size: 0.92rem;
  }

  #rk-zone-guide .rk-zone-author-main a {
    color: var(--rk-zone-cyan);
  }

  #rk-zone-guide .rk-zone-author-quote {
    margin-bottom: 21px;
    padding: 22px;
    border-left: 5px solid var(--rk-zone-cyan);
    border-radius: 7px 17px 17px 7px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.6;
  }

  #rk-zone-guide .rk-zone-author-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 20px;
  }

  #rk-zone-guide .rk-zone-author-fact {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.06);
    color: #d7e8ed;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-zone-guide .rk-zone-author-fact strong {
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 0.8rem;
  }

  #rk-zone-guide .rk-zone-tool-tabs,
  #rk-zone-guide .rk-zone-graphic-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 22px;
  }

  #rk-zone-guide .rk-zone-tool-tabs button,
  #rk-zone-guide .rk-zone-graphic-controls button {
    min-height: 44px;
    padding: 9px 15px;
    border: 1px solid #bdd0d8;
    border-radius: 999px;
    background: #ffffff;
    color: var(--rk-zone-navy);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
  }

  #rk-zone-guide .rk-zone-tool-tabs button[aria-selected="true"],
  #rk-zone-guide .rk-zone-graphic-controls button[aria-pressed="true"] {
    border-color: var(--rk-zone-navy);
    background: var(--rk-zone-navy);
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(18, 50, 71, 0.18);
  }

  #rk-zone-guide .rk-zone-panel[hidden],
  #rk-zone-guide .rk-zone-is-hidden {
    display: none !important;
  }

  #rk-zone-guide .rk-zone-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
  }

  #rk-zone-guide .rk-zone-field-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-zone-guide .rk-zone-field {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 16px;
    background: var(--rk-zone-soft);
  }

  #rk-zone-guide .rk-zone-field label,
  #rk-zone-guide .rk-zone-field-label {
    display: block;
    margin: 0 0 7px;
    color: var(--rk-zone-navy);
    font-size: 0.79rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-zone-guide .rk-zone-field input,
  #rk-zone-guide .rk-zone-field select,
  #rk-zone-guide .rk-zone-loop-row input,
  #rk-zone-guide .rk-zone-curve-row input {
    width: 100%;
    min-height: 47px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cbd4;
    border-radius: 11px;
    background: #ffffff;
    color: #173246;
    font: inherit;
    font-size: 0.91rem;
    line-height: 1.2;
  }

  #rk-zone-guide .rk-zone-field input:focus,
  #rk-zone-guide .rk-zone-field select:focus,
  #rk-zone-guide .rk-zone-loop-row input:focus,
  #rk-zone-guide .rk-zone-curve-row input:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    border-color: var(--rk-zone-teal);
  }

  #rk-zone-guide .rk-zone-field-help {
    display: block;
    margin-top: 7px;
    color: #5c7180;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-zone-guide .rk-zone-tool-subtitle {
    margin: 26px 0 10px;
    color: var(--rk-zone-navy);
    font-size: 1.12rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-loop-editor,
  #rk-zone-guide .rk-zone-curve-editor {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 18px;
    background: var(--rk-zone-soft);
  }

  #rk-zone-guide .rk-zone-loop-row,
  #rk-zone-guide .rk-zone-curve-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.46fr) auto;
    gap: 9px;
    align-items: end;
    margin-top: 10px;
  }

  #rk-zone-guide .rk-zone-curve-row {
    grid-template-columns: 42px repeat(2, minmax(110px, 1fr));
  }

  #rk-zone-guide .rk-zone-loop-row:first-child,
  #rk-zone-guide .rk-zone-curve-row:first-child {
    margin-top: 0;
  }

  #rk-zone-guide .rk-zone-loop-cell label,
  #rk-zone-guide .rk-zone-curve-cell label {
    display: block;
    margin-bottom: 5px;
    color: #496371;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-remove-loop,
  #rk-zone-guide .rk-zone-add-loop {
    min-height: 45px;
    padding: 9px 13px;
    border: 1px solid #c7d5dc;
    border-radius: 11px;
    background: #ffffff;
    color: var(--rk-zone-navy);
    font: inherit;
    font-size: 0.77rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-zone-guide .rk-zone-remove-loop {
    width: 45px;
    padding: 8px;
    color: #9b3b38;
  }

  #rk-zone-guide .rk-zone-add-loop {
    margin-top: 13px;
    border-color: #86cdd5;
    background: #eaf9fb;
    color: #075f6b;
  }

  #rk-zone-guide .rk-zone-calc-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 20px;
    align-items: start;
  }

  #rk-zone-guide .rk-zone-results {
    min-width: 0;
  }

  #rk-zone-guide .rk-zone-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin: 0 0 16px;
  }

  #rk-zone-guide .rk-zone-result {
    min-width: 0;
    padding: 17px;
    border: 1px solid #b8dce1;
    border-radius: 16px;
    background: #effbfc;
  }

  #rk-zone-guide .rk-zone-result span {
    display: block;
    color: #4c6876;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-result strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-zone-navy);
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    line-height: 1.2;
  }

  #rk-zone-guide .rk-zone-breakdown {
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-breakdown-title {
    display: block;
    margin-bottom: 12px;
    color: var(--rk-zone-navy);
    font-size: 0.86rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-break-row {
    display: grid;
    grid-template-columns: minmax(104px, 0.62fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 9px 0;
    color: #496371;
    font-size: 0.73rem;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-break-row strong,
  #rk-zone-guide .rk-zone-curve-row > strong {
    color: var(--rk-zone-navy);
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-callout strong {
    color: var(--rk-zone-navy);
  }

  #rk-zone-guide .rk-zone-break-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef1;
  }

  #rk-zone-guide .rk-zone-break-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-zone-teal), var(--rk-zone-cyan));
  }

  #rk-zone-guide .rk-zone-chart-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-zone-guide .rk-zone-chart-title {
    margin: 0 0 11px;
    color: var(--rk-zone-navy);
    font-size: 0.95rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-chart-wrap {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: 13px;
    background: #f8fbfc;
  }

  #rk-zone-guide .rk-zone-chart-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 310px;
  }

  #rk-zone-guide .rk-zone-chart-grid-line {
    stroke: #dbe5ea;
    stroke-width: 1;
  }

  #rk-zone-guide .rk-zone-chart-axis {
    stroke: #6f8592;
    stroke-width: 1.4;
  }

  #rk-zone-guide .rk-zone-system-path {
    fill: none;
    stroke: var(--rk-zone-teal);
    stroke-width: 4;
  }

  #rk-zone-guide .rk-zone-device-path {
    fill: none;
    stroke: var(--rk-zone-orange);
    stroke-width: 4;
  }

  #rk-zone-guide .rk-zone-design-point {
    fill: var(--rk-zone-navy);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-zone-guide .rk-zone-operating-point {
    fill: var(--rk-zone-orange);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-zone-guide .rk-zone-chart-tick,
  #rk-zone-guide .rk-zone-chart-label {
    fill: #55707f;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
  }

  #rk-zone-guide .rk-zone-chart-label {
    fill: var(--rk-zone-navy);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-zone-guide .rk-zone-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-top: 12px;
    color: #536d7b;
    font-size: 0.69rem;
    font-weight: 800;
  }

  #rk-zone-guide .rk-zone-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-zone-guide .rk-zone-legend i {
    display: inline-block;
    width: 25px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-zone-teal);
  }

  #rk-zone-guide .rk-zone-legend .is-pump i {
    background: var(--rk-zone-orange);
  }

  #rk-zone-guide .rk-zone-legend .is-point i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-zone-navy);
  }

  #rk-zone-guide .rk-zone-status {
    margin: 15px 0 0;
    padding: 15px 17px;
    border: 1px solid #b8dce1;
    border-radius: 14px;
    background: #effbfc;
    color: #315261;
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-zone-guide .rk-zone-status.is-warning {
    border-color: #efd0a1;
    background: #fff6e9;
    color: #664d2b;
  }

  #rk-zone-guide .rk-zone-status.is-bad {
    border-color: #e6c2c0;
    background: #fff2f1;
    color: #743b38;
  }

  #rk-zone-guide .rk-zone-status.is-good {
    border-color: #b8ddce;
    background: #eefaf5;
    color: #245d48;
  }

  #rk-zone-guide .rk-zone-hydraulic-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
  }

  #rk-zone-guide .rk-zone-hydraulic-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-zone-line);
    border-radius: 18px;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
  }

  #rk-zone-guide .rk-zone-hydraulic-card.is-active {
    border-color: #5fc6d1;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-zone-guide .rk-zone-hydraulic-card.is-muted {
    opacity: 0.58;
    background: #f3f6f7;
  }

  #rk-zone-guide .rk-zone-hydraulic-number {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: #ddf6f8;
    color: #086878;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-hydraulic-card h3 {
    margin: 0 0 8px;
    color: var(--rk-zone-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-zone-guide .rk-zone-hydraulic-value {
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    margin: 0 0 9px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eef4f6;
    color: #3f5e6d;
    font-size: 0.71rem;
    font-weight: 900;
  }

  #rk-zone-guide .rk-zone-hydraulic-card.is-active .rk-zone-hydraulic-value {
    background: #dff6e9;
    color: #21664e;
  }

  #rk-zone-guide .rk-zone-hydraulic-card p {
    margin: 0;
    color: #466171;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-zone-guide .rk-zone-graphic-result {
    margin-top: 16px;
    padding: 20px;
    border-left: 5px solid var(--rk-zone-cyan);
    border-radius: 8px 16px 16px 8px;
    background: var(--rk-zone-navy);
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-graphic-result strong {
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
  }

  #rk-zone-guide .rk-zone-graphic-result p {
    margin: 0;
    color: #e8f5f8;
    font-size: 0.87rem;
  }

  #rk-zone-guide .rk-zone-equation {
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

  #rk-zone-guide .rk-zone-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  @media (max-width: 1040px) {
    #rk-zone-guide .rk-zone-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-zone-guide .rk-zone-flow-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-zone-guide .rk-zone-chain {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-zone-guide .rk-zone-chain-item::after {
      display: none;
    }

    #rk-zone-guide .rk-zone-calc-layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 820px) {
    #rk-zone-guide {
      font-size: 17px;
    }

    #rk-zone-guide .rk-zone-hero {
      border-radius: 24px;
    }

    #rk-zone-guide .rk-zone-hero-metrics,
    #rk-zone-guide .rk-zone-grid-3,
    #rk-zone-guide .rk-zone-source-grid,
    #rk-zone-guide .rk-zone-author-facts {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-control-grid,
    #rk-zone-guide .rk-zone-formula,
    #rk-zone-guide .rk-zone-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-author-side {
      max-width: 430px;
    }

    #rk-zone-guide .rk-zone-field-grid-3,
    #rk-zone-guide .rk-zone-hydraulic-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    #rk-zone-guide .rk-zone-section,
    #rk-zone-guide .rk-zone-author {
      border-radius: 22px;
    }

    #rk-zone-guide .rk-zone-grid-2,
    #rk-zone-guide .rk-zone-grid-4,
    #rk-zone-guide .rk-zone-flow-grid,
    #rk-zone-guide .rk-zone-spec-grid,
    #rk-zone-guide .rk-zone-steps,
    #rk-zone-guide .rk-zone-mistakes,
    #rk-zone-guide .rk-zone-checklist,
    #rk-zone-guide .rk-zone-chain {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-field-grid,
    #rk-zone-guide .rk-zone-result-grid {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-table-row,
    #rk-zone-guide .rk-zone-diagnostic-table .rk-zone-table-row {
      display: block;
      padding: 8px 0;
      border-top: 8px solid var(--rk-zone-soft);
    }

    #rk-zone-guide .rk-zone-table-row:first-child {
      display: none;
    }

    #rk-zone-guide .rk-zone-table-row > div {
      display: grid;
      grid-template-columns: minmax(104px, 0.42fr) minmax(0, 1fr);
      gap: 10px;
      padding: 12px 15px;
      border: 0;
    }

    #rk-zone-guide .rk-zone-table-row > div::before {
      content: attr(data-label);
      color: var(--rk-zone-navy);
      font-size: 0.76rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-zone-guide .rk-zone-table-label {
      background: #eef4f6;
    }

    #rk-zone-guide .rk-zone-loop-row {
      grid-template-columns: minmax(0, 1fr) minmax(100px, 0.6fr) auto;
    }
  }

  @media (max-width: 520px) {
    #rk-zone-guide {
      font-size: 16px;
    }

    #rk-zone-guide .rk-zone-hero {
      padding: 34px 22px;
      border-radius: 20px;
    }

    #rk-zone-guide .rk-zone-hero-title {
      font-size: clamp(2.25rem, 12vw, 3.5rem);
      letter-spacing: -0.05em;
    }

    #rk-zone-guide .rk-zone-hero-lead {
      margin-top: 23px;
    }

    #rk-zone-guide .rk-zone-hero-tag {
      min-height: 38px;
      padding: 7px 12px;
      font-size: 0.75rem;
    }

    #rk-zone-guide .rk-zone-byline {
      display: grid;
      gap: 7px;
    }

    #rk-zone-guide .rk-zone-hero-metric {
      padding: 19px;
    }

    #rk-zone-guide .rk-zone-shortcuts {
      padding: 17px;
      border-radius: 18px;
    }

    #rk-zone-guide .rk-zone-shortcuts a {
      font-size: 0.72rem;
    }

    #rk-zone-guide .rk-zone-section,
    #rk-zone-guide .rk-zone-author {
      padding: 28px 19px;
    }

    #rk-zone-guide .rk-zone-answer,
    #rk-zone-guide .rk-zone-card,
    #rk-zone-guide .rk-zone-flow-step {
      padding: 20px;
    }

    #rk-zone-guide .rk-zone-tool-head,
    #rk-zone-guide .rk-zone-tool-body {
      padding: 22px 17px;
    }

    #rk-zone-guide .rk-zone-segmented {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-state-summary {
      grid-template-columns: 1fr;
    }

    #rk-zone-guide .rk-zone-state-dot {
      width: 44px;
      height: 44px;
    }

    #rk-zone-guide .rk-zone-step {
      padding: 66px 19px 19px;
    }

    #rk-zone-guide .rk-zone-step::before {
      top: 19px;
      left: 19px;
    }

    #rk-zone-guide .rk-zone-cta-button {
      width: 100%;
    }

    #rk-zone-guide .rk-zone-table-row > div {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-zone-guide .rk-zone-loop-row,
    #rk-zone-guide .rk-zone-curve-row {
      grid-template-columns: 1fr;
      padding: 13px;
      border: 1px solid var(--rk-zone-line);
      border-radius: 14px;
      background: #ffffff;
    }

    #rk-zone-guide .rk-zone-remove-loop {
      width: 100%;
    }

    #rk-zone-guide .rk-zone-chart-wrap svg {
      min-height: 260px;
    }

    #rk-zone-guide .rk-zone-break-row {
      grid-template-columns: 1fr auto;
    }

    #rk-zone-guide .rk-zone-break-track {
      grid-column: 1 / -1;
      grid-row: 2;
    }
  }

  @media print {
    #rk-zone-guide .rk-zone-shortcuts,
    #rk-zone-guide .rk-zone-control-grid {
      display: none !important;
    }

    #rk-zone-guide .rk-zone-section,
    #rk-zone-guide .rk-zone-author,
    #rk-zone-guide .rk-zone-hero {
      break-inside: avoid;
      box-shadow: none;
    }

    #rk-zone-guide .rk-zone-faq details {
      break-inside: avoid;
    }

    #rk-zone-guide .rk-zone-faq details:not([open]) .rk-zone-faq-answer {
      display: block;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-zone-guide *,
    #rk-zone-guide *::before,
    #rk-zone-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }


  /* Drobne uzupełnienia dla modułów sterowania strefowego. */
  #rk-zone-guide .rk-zone-flow-icon {
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.04em;
  }

  #rk-zone-guide button:focus-visible,
  #rk-zone-guide a:focus-visible,
  #rk-zone-guide summary:focus-visible {
    outline: 3px solid rgba(255, 122, 33, 0.58);
    outline-offset: 3px;
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-card,
  #rk-zone-guide .rk-zone-section-dark .rk-zone-spec {
    color: var(--rk-zone-ink);
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-card h3,
  #rk-zone-guide .rk-zone-section-dark .rk-zone-spec strong {
    color: var(--rk-zone-navy);
  }

  #rk-zone-guide .rk-zone-section-dark .rk-zone-card p,
  #rk-zone-guide .rk-zone-section-dark .rk-zone-spec span {
    color: #3e5869;
  }

</style>

<article id="rk-zone-guide" aria-labelledby="rk-zone-visual-title">
  <div class="rk-zone-shell">
    <header class="rk-zone-hero">
      <div class="rk-zone-hero-inner">
        <span class="rk-zone-kicker">Komfort pomieszczeń · hydraulika całego układu</span>
        <div class="rk-zone-hero-title" id="rk-zone-visual-title">Każdy pokój osobno — <span>cały układ razem</span></div>
        <p class="rk-zone-hero-lead">Sterowanie strefowe może ograniczać przegrzewanie i pozwalać na różne nastawy w pomieszczeniach, ale nie gwarantuje oszczędności samo z siebie. W podłogówce trzeba uwzględnić bezwładność posadzki, przepływy po zamknięciu pętli oraz wymagania pompy ciepła lub innego źródła.</p>

        <div class="rk-zone-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-zone-hero-tag">podłogówka i pompa ciepła</span>
          <span class="rk-zone-hero-tag">termostaty pokojowe</span>
          <span class="rk-zone-hero-tag">siłowniki NC i NO</span>
          <span class="rk-zone-hero-tag">minimalny przepływ</span>
          <span class="rk-zone-hero-tag">bezwładność posadzki</span>
        </div>

        <div class="rk-zone-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 29 minut</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-zone-hero-metrics" aria-label="Trzy warunki poprawnego sterowania strefowego">
          <div class="rk-zone-hero-metric">
            <b>Komfort pomieszczeń</b>
            <span>Termostat może zgłaszać zapotrzebowanie i sterować przypisaną strefą, lecz efekt zależy od zysków ciepła i bezwładności podłogi.</span>
          </div>
          <div class="rk-zone-hero-metric">
            <b>Hydraulika instalacji</b>
            <span>Zamknięcie pętli zmienia czynny przepływ i punkt pracy pompy. Rozdzielacz nadal wymaga projektowych nastaw i równoważenia.</span>
          </div>
          <div class="rk-zone-hero-metric">
            <b>Praca źródła ciepła</b>
            <span>Automatyka musi respektować wymagany przepływ, objętość wody, wybieg pompy i logikę konkretnego urządzenia.</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-zone-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-zone-shortcuts-label">Na skróty</span>
      <a href="#rk-zone-answer">Czy warto?</a>
      <a href="#rk-zone-capabilities">Co potrafi?</a>
      <a href="#rk-zone-graphic">Jak działa układ?</a>
      <a href="#rk-zone-inertia">Bezwładność</a>
      <a href="#rk-zone-best-use">Kiedy ma sens?</a>
      <a href="#rk-zone-weather">Kiedy wystarczy pogodówka?</a>
      <a href="#rk-zone-count">Ile termostatów?</a>
      <a href="#rk-zone-heat-pump">Pompa ciepła</a>
      <a href="#rk-zone-hydraulics">Hydraulika pętli</a>
      <a href="#rk-zone-components">Dobór elementów</a>
      <a href="#rk-zone-wiring">Przewodowo czy radiowo?</a>
      <a href="#rk-zone-loop-design">Projekt pętli</a>
      <a href="#rk-zone-commissioning">Uruchomienie</a>
      <a href="#rk-zone-cost">Koszt i oszczędności</a>
      <a href="#rk-zone-errors">Błędy</a>
      <a href="#rk-zone-checklist">Lista kontrolna</a>
      <a href="#rk-zone-conclusions">Wnioski</a>
      <a href="#rk-zone-sources">Źródła</a>
      <a href="#rk-zone-faq">FAQ</a>
      <a href="#rk-zone-author">Autor</a>
    </nav>

    <section class="rk-zone-section" id="rk-zone-answer">
      <span class="rk-zone-eyebrow">Odpowiedź bez marketingowych obietnic</span>
      <h2 class="rk-zone-section-title">Czy sterowanie strefowe ogrzewaniem podłogowym jest warte swojej ceny?</h2>
      <div class="rk-zone-answer">
        <span class="rk-zone-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Warto je rozważyć, gdy pomieszczenia mają różny sposób użytkowania, harmonogram, nastawy albo zyski słoneczne i wewnętrzne. Nie jest jednak obowiązkowym dodatkiem do każdej podłogówki. W otwartym, dobrze zrównoważonym domu o podobnych temperaturach większą wartość może dać poprawna krzywa grzewcza i regulacja źródła.</strong></p>
      </div>

      <div class="rk-zone-grid-4">
        <article class="rk-zone-card">
          <span class="rk-zone-card-number">1</span>
          <h3>Najpierw potrzeby budynku</h3>
          <p>Podział stref powinien wynikać z funkcji pomieszczeń i <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowych obciążeń cieplnych OZC</a>, a nie z samej liczby pokoi.</p>
        </article>
        <article class="rk-zone-card">
          <span class="rk-zone-card-number">2</span>
          <h3>Potem sposób regulacji</h3>
          <p>Temperaturą wody zwykle zarządza automatyka źródła, często poprzez <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe</a>. Termostat nie powinien udawać regulatora całej instalacji.</p>
        </article>
        <article class="rk-zone-card">
          <span class="rk-zone-card-number">3</span>
          <h3>Następnie hydraulika</h3>
          <p>Trzeba sprawdzić stany z wieloma i z niewieloma otwartymi pętlami, zachowanie pompy obiegowej oraz wymagania źródła.</p>
        </article>
        <article class="rk-zone-card">
          <span class="rk-zone-card-number">4</span>
          <h3>Na końcu ekonomia</h3>
          <p>Oszczędności zależą od tego, czy sterowanie rzeczywiście obniża temperaturę lub ogranicza przegrzewanie. Sam montaż siłowników nie tworzy stałego procentu oszczędności.</p>
        </article>
      </div>

      <div class="rk-zone-callout"><strong>Najczęściej największą wartością jest komfort, nie gwarantowany zwrot.</strong> Strefowanie pomaga wykorzystać odmienne profile pomieszczeń, lecz w źle zaprojektowanej instalacji może jedynie maskować objawy i zwiększać liczbę cykli pracy. Uzupełnieniem jest poradnik odpowiadający szerzej, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-capabilities">
      <span class="rk-zone-eyebrow">Trzy warstwy regulacji</span>
      <h2 class="rk-zone-section-title">Co sterowanie strefowe potrafi, a czego nie potrafi?</h2>
      <p class="rk-zone-lead">W jednej instalacji działają różne regulatory. Najwięcej błędów powstaje wtedy, gdy termostat pokojowy otrzymuje zadania należące do źródła ciepła, pompy obiegowej albo regulacji hydraulicznej.</p>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card">
          <h3>Temperatura wody</h3>
          <p>Powinna wynikać z potrzeb budynku, parametrów podłogi i sposobu regulacji źródła. Ustawia ją regulator źródła, zawór mieszający albo układ nadrzędny — zależnie od schematu.</p>
        </article>
        <article class="rk-zone-card">
          <h3>Zapotrzebowanie strefy</h3>
          <p><a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">Termostat pokojowy do podłogówki</a> porównuje pomiar z nastawą i przekazuje sygnał. Listwa przypisuje go do jednego lub kilku siłowników.</p>
        </article>
        <article class="rk-zone-card">
          <h3>Limit temperatury podłogi</h3>
          <p>Czujnik podłogowy może ograniczać temperaturę okładziny w urządzeniach, które obsługują taką funkcję. Nie naprawia błędnej geometrii pętli ani niewłaściwej temperatury wody.</p>
        </article>
      </div>

      <div class="rk-zone-compare-table" role="table" aria-label="Możliwości i ograniczenia sterowania strefowego">
        <div class="rk-zone-table-row rk-zone-table-head" role="row">
          <div role="columnheader">Funkcja</div>
          <div role="columnheader">Co może zrobić</div>
          <div role="columnheader">Czego nie zastępuje</div>
        </div>
        <div class="rk-zone-table-row" role="row">
          <div class="rk-zone-table-label" data-label="Funkcja" role="cell">Kontrola temperatury pokoju</div>
          <div data-label="Może" role="cell">Ograniczyć dalsze dostarczanie ciepła do przypisanej strefy po spełnieniu warunku regulatora.</div>
          <div data-label="Nie zastępuje" role="cell">Doboru temperatury zasilania, OZC ani reakcji na energię już zgromadzoną w podłodze.</div>
        </div>
        <div class="rk-zone-table-row" role="row">
          <div class="rk-zone-table-label" data-label="Funkcja" role="cell">Różne harmonogramy</div>
          <div data-label="Może" role="cell">Rozdzielić profile użytkowania stref, jeśli bezwładność konstrukcji pozwala uzyskać praktyczny efekt.</div>
          <div data-label="Nie zastępuje" role="cell">Oceny, czy krótkie obniżenie ma sens dla konkretnej posadzki i budynku.</div>
        </div>
        <div class="rk-zone-table-row" role="row">
          <div class="rk-zone-table-label" data-label="Funkcja" role="cell">Reakcja na zyski ciepła</div>
          <div data-label="Może" role="cell">Zamknąć pętlę w nasłonecznionym pokoju i nie dokładać kolejnej porcji energii.</div>
          <div data-label="Nie zastępuje" role="cell">Osłon przeciwsłonecznych ani projektu dla pomieszczeń z dużymi przeszkleniami.</div>
        </div>
        <div class="rk-zone-table-row" role="row">
          <div class="rk-zone-table-label" data-label="Funkcja" role="cell">Zamykanie pętli</div>
          <div data-label="Może" role="cell">Fizycznie ograniczyć przepływ przez zawór obsługiwany przez siłownik.</div>
          <div data-label="Nie zastępuje" role="cell">Nastaw rotametrów, doboru pompy, minimalnego przepływu i logiki źródła.</div>
        </div>
      </div>
    </section>

    <section class="rk-zone-section" id="rk-zone-graphic">
      <span class="rk-zone-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-zone-section-title">Jak termostat, listwa i siłownik sterują przepływem?</h2>
      <p class="rk-zone-lead">Wybierz stan instalacji. Sześć osobnych modułów pokaże drogę sygnału od pomieszczenia do źródła oraz granicę odpowiedzialności każdego elementu. Układ nie zakłada konkretnego producenta ani napięcia zasilania.</p>

      <div class="rk-zone-tool" id="rk-zone-system-tool">
        <div class="rk-zone-tool-head">
          <span class="rk-zone-eyebrow">Od pomiaru do reakcji całego układu</span>
          <h3>Sprawdź, co dzieje się po zmianie zapotrzebowania stref</h3>
          <p>Ten moduł wyjaśnia logikę sterowania. Rzeczywiste opóźnienia, styki, priorytety i sekwencje zawsze wynikają z dokumentacji użytych urządzeń.</p>
        </div>
        <div class="rk-zone-tool-body">
          <div class="rk-zone-graphic-controls" role="group" aria-label="Wybierz stan instalacji">
            <button type="button" data-rk-zone-system="demand" aria-pressed="true">Pokój żąda ciepła</button>
            <button type="button" data-rk-zone-system="satisfied" aria-pressed="false">Pokój osiąga nastawę</button>
            <button type="button" data-rk-zone-system="few" aria-pressed="false">Większość stref zamknięta</button>
            <button type="button" data-rk-zone-system="all" aria-pressed="false">Wszystkie strefy zamknięte</button>
          </div>

          <div class="rk-zone-hydraulic-grid" aria-live="polite">
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="thermostat">
              <span class="rk-zone-hydraulic-number">1</span>
              <h3>Termostat pokojowy</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Zapotrzebowanie aktywne</span>
              <p data-rk-zone-component-copy="">Porównuje pomiar z nastawą i wysyła sygnał zgodnie z własnym algorytmem. Nie ustala przepływu pętli.</p>
            </article>
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="controller">
              <span class="rk-zone-hydraulic-number">2</span>
              <h3>Listwa sterująca</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Wyjście strefy aktywne</span>
              <p data-rk-zone-component-copy="">Przekazuje sygnał do przypisanego siłownika lub grupy siłowników i może obsługiwać styki pompy oraz źródła.</p>
            </article>
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="actuator">
              <span class="rk-zone-hydraulic-number">3</span>
              <h3>Siłownik</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Rozpoczyna otwieranie</span>
              <p data-rk-zone-component-copy="">Zmienia położenie zaworu w czasie podanym w karcie produktu. Sygnał elektryczny nie oznacza natychmiast pełnego przepływu.</p>
            </article>
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="loop">
              <span class="rk-zone-hydraulic-number">4</span>
              <h3>Pętla i rozdzielacz</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Przepływ według nastawy</span>
              <p data-rk-zone-component-copy="">Po otwarciu zaworu wartość przepływu zależy od nastawy, oporów instalacji i dostępnej różnicy ciśnień.</p>
            </article>
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="pump">
              <span class="rk-zone-hydraulic-number">5</span>
              <h3>Pompa obiegowa</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Zapewnia obieg</span>
              <p data-rk-zone-component-copy="">Jej punkt pracy wynika z charakterystyki pompy, trybu regulacji i aktualnego oporu czynnych gałęzi.</p>
            </article>
            <article class="rk-zone-hydraulic-card is-active" data-rk-zone-component="source">
              <span class="rk-zone-hydraulic-number">6</span>
              <h3>Źródło ciepła</h3>
              <span class="rk-zone-hydraulic-value" data-rk-zone-component-value="">Reaguje według własnej logiki</span>
              <p data-rk-zone-component-copy="">Start, modulacja i temperatura wody zależą od sterownika źródła, blokad i konfiguracji systemowej.</p>
            </article>
          </div>

          <div class="rk-zone-graphic-result" id="rk-zone-system-result" role="status" aria-live="polite">
            <strong>Żądanie strefy jest początkiem sekwencji, nie komendą „grzej natychmiast”.</strong>
            <p>Najpierw reaguje termostat i listwa, potem siłownik zmienia zawór. Dopiero dostępny przepływ, temperatura wody i energia posadzki decydują o efekcie w pokoju.</p>
          </div>

          <div class="rk-zone-tool-disclaimer"><strong>Ważne:</strong> układ 24 V lub 230 V, typ NC albo NO, czas otwierania, opóźnienie pompy i sposób wywołania źródła trzeba potwierdzić w aktualnych instrukcjach. Grafika nie jest schematem elektrycznym.</div>
        </div>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-inertia">
      <span class="rk-zone-eyebrow">Interaktywny przebieg zdarzeń</span>
      <h2 class="rk-zone-section-title">Dlaczego podłogówka reaguje z opóźnieniem?</h2>
      <p class="rk-zone-lead">Elektronika może przełączyć sygnał szybko, ale temperatura pomieszczenia nie kopiuje go w tej samej chwili. Wybierz scenariusz i zobacz oddzielnie reakcję sterownika, zaworu, przepływu, posadzki, pokoju oraz źródła.</p>

      <div class="rk-zone-tool" id="rk-zone-inertia-tool">
        <div class="rk-zone-tool-head">
          <span class="rk-zone-eyebrow">Sygnał jest szybki, budynek ma pamięć cieplną</span>
          <h3>Prześledź sześć warstw jednej reakcji</h3>
          <p>Nie podajemy uniwersalnych godzin ani stopni. Dynamika zależy między innymi od konstrukcji podłogi, okładziny, rozstawu rur, temperatury wody, obciążenia i zysków ciepła.</p>
        </div>
        <div class="rk-zone-tool-body">
          <div class="rk-zone-graphic-controls" role="group" aria-label="Wybierz scenariusz cieplny">
            <button type="button" data-rk-zone-scenario="sun" aria-pressed="true">Słońce w salonie</button>
            <button type="button" data-rk-zone-scenario="night" aria-pressed="false">Obniżenie nocne</button>
            <button type="button" data-rk-zone-scenario="closing" aria-pressed="false">Zamyka się większość pętli</button>
            <button type="button" data-rk-zone-scenario="return" aria-pressed="false">Powrót po przerwie</button>
          </div>

          <div class="rk-zone-state-summary" id="rk-zone-scenario-summary" data-flow="open" aria-live="polite">
            <span class="rk-zone-state-dot" aria-hidden="true">1</span>
            <div>
              <strong>Zysk słoneczny podnosi temperaturę pokoju</strong>
              <p>Termostat może wycofać żądanie, ale podłoga nadal oddaje energię zgromadzoną wcześniej. Sterowanie ogranicza dokładanie ciepła; nie usuwa energii z jastrychu.</p>
            </div>
          </div>

          <div class="rk-zone-flow-grid" aria-live="polite">
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="signal">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">01</span><div><span class="rk-zone-flow-number">Sygnał</span><h4>Termostat</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Wycofuje żądanie</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Pomiar przekracza warunek regulacji wskutek zysków słonecznych.</p>
            </article>
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="actuator">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">02</span><div><span class="rk-zone-flow-number">Zawór</span><h4>Siłownik</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Rozpoczyna zamykanie</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Pełna zmiana położenia następuje w czasie określonym przez producenta.</p>
            </article>
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="flow">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">03</span><div><span class="rk-zone-flow-number">Hydraulika</span><h4>Przepływ pętli</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Maleje</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Do strefy trafia mniej nowej energii, a punkt pracy instalacji może się zmienić.</p>
            </article>
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="floor">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">04</span><div><span class="rk-zone-flow-number">Akumulacja</span><h4>Posadzka</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Nadal oddaje ciepło</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Energia zgromadzona przed zamknięciem nie znika wraz z sygnałem termostatu.</p>
            </article>
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="room">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">05</span><div><span class="rk-zone-flow-number">Efekt</span><h4>Pomieszczenie</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Może jeszcze się dogrzewać</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Temperatura zależy jednocześnie od słońca, strat i ciepła oddawanego przez podłogę.</p>
            </article>
            <article class="rk-zone-flow-step is-active" data-rk-zone-phase="source">
              <div class="rk-zone-flow-top"><span class="rk-zone-flow-icon" aria-hidden="true">06</span><div><span class="rk-zone-flow-number">System</span><h4>Pompa i źródło</h4></div></div>
              <span class="rk-zone-flow-value" data-rk-zone-phase-value="">Sprawdzają inne strefy</span>
              <p class="rk-zone-flow-copy" data-rk-zone-phase-copy="">Ich praca zależy od pozostałych żądań i konfiguracji całego układu.</p>
            </article>
          </div>

          <div class="rk-zone-tool-disclaimer"><strong>Jak czytać moduł:</strong> „natychmiast” dotyczy sygnału logicznego, nie temperatury pokoju. Czas ruchu siłownika sprawdza się w jego karcie, a opóźnienie podłogi zależy od konkretnej przegrody. Więcej wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej ogrzewania podłogowego</a>.</div>
        </div>
      </div>

      <div class="rk-zone-callout"><strong>TPI i PWM nie są jedną, zawsze samouczącą się technologią.</strong> Nazwy oraz sposób działania zależą od producenta. Sprawdź długość cyklu, przeznaczenie regulatora do ogrzewania płaszczyznowego i możliwość ograniczenia temperatury podłogi — nie zakładaj gwarancji dokładności lub braku przegrzewania.</div>
    </section>

    <section class="rk-zone-section" id="rk-zone-best-use">
      <span class="rk-zone-eyebrow">Gdzie rośnie realna wartość stref</span>
      <h2 class="rk-zone-section-title">Kiedy sterowanie strefowe ma największy sens?</h2>
      <p class="rk-zone-lead">Nie istnieje uniwersalna granica 70 albo 80 m². Ważniejsze są różnice między strefami i możliwość ich wykorzystania bez destabilizowania instalacji.</p>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card"><h3>Różne profile użytkowania</h3><p>Sypialnie, gabinet, część gościnna lub pomieszczenia używane okresowo mogą wymagać innych nastaw i harmonogramów. Efekt zależy od długości przerw oraz bezwładności.</p></article>
        <article class="rk-zone-card"><h3>Silne zyski słoneczne</h3><p>Strefa z przeszkleniami może przestać potrzebować ciepła wcześniej niż pokoje po drugiej stronie domu. Przy projektowaniu warto uwzględnić <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówkę przy dużych przeszkleniach</a>.</p></article>
        <article class="rk-zone-card"><h3>Odmienne zyski wewnętrzne</h3><p>Kuchnia, pokój z wieloma osobami albo pomieszczenie z urządzeniami może potrzebować szybszego ograniczenia dopływu ciepła niż sąsiednie strefy.</p></article>
        <article class="rk-zone-card"><h3>Oddzielne części budynku</h3><p>Kondygnacje, skrzydła domu lub lokal usługowy mogą mieć inną ekspozycję, harmonogram i sposób użytkowania. Podział wymaga jednak przemyślanej hydrauliki.</p></article>
        <article class="rk-zone-card"><h3>Modernizacja z nierównym komfortem</h3><p>Automatyka może pomóc ograniczać przegrzewanie, ale przed zakupem trzeba sprawdzić temperaturę wody, przepływy, przypisanie pętli i błędy konstrukcyjne.</p></article>
        <article class="rk-zone-card"><h3>Świadoma integracja</h3><p>Najwięcej zyskuje układ, w którym termostaty, listwa, pompa i źródło wymieniają właściwe sygnały, a użytkownik rozumie ograniczenia posadzki. Na bilans pomieszczeń wpływa również współpraca <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacji z ogrzewaniem podłogowym</a>.</p></article>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-weather">
      <span class="rk-zone-eyebrow">Mniej elementów może działać lepiej</span>
      <h2 class="rk-zone-section-title">Kiedy wystarczy pogodówka i równoważenie instalacji?</h2>
      <p class="rk-zone-lead">Jeżeli dom ma spójny profil temperatury, otwarty układ pomieszczeń, małe różnice zysków oraz poprawnie dobraną podłogówkę, stały przepływ i dobrze ustawiona <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza</a> mogą zapewnić bardzo stabilny komfort. Osobno warto sprawdzić, jak działa <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulator pogodowy instalacji</a>.</p>

      <div class="rk-zone-grid-2">
        <article class="rk-zone-card">
          <h3>Strefowanie może wnieść mało</h3>
          <ul>
            <li>większość domu ma tę samą nastawę i podobne godziny użytkowania,</li>
            <li>otwarty parter tworzy jedną wspólną strefę cieplną,</li>
            <li>podłoga ma dużą bezwładność, a harmonogramy są krótkie,</li>
            <li>źródło dobrze moduluje przy stabilnym, niskotemperaturowym obiegu.</li>
          </ul>
        </article>
        <article class="rk-zone-card">
          <h3>Najpierw dopracuj podstawy</h3>
          <ul>
            <li>ustaw przepływy zgodnie z projektem,</li>
            <li>obniż krzywą do najniższego poziomu zapewniającego komfort,</li>
            <li>sprawdź wpływ słońca i wentylacji,</li>
            <li>oddziel problem regulacji od problemu niedowymiarowania.</li>
          </ul>
        </article>
      </div>

      <div class="rk-zone-note"><strong>Jeden regulator nie jest z definicji błędem.</strong> Może być poprawnym elementem strategii nadrzędnej, zwłaszcza gdy nie zamyka przypadkowo całej instalacji, a źródło pracuje pogodowo. O wyniku nie decyduje liczba termostatów, lecz dopasowanie logiki do budynku.</div>
    </section>

    <section class="rk-zone-section" id="rk-zone-count">
      <span class="rk-zone-eyebrow">Podział funkcjonalny zamiast „jeden pokój = jeden sterownik”</span>
      <h2 class="rk-zone-section-title">Jeden termostat czy oddzielny termostat w każdym pokoju?</h2>
      <p class="rk-zone-lead">Liczba termostatów powinna odpowiadać rzeczywistym strefom cieplnym. Kilka pętli może należeć do jednego dużego pomieszczenia, a dwa małe pomieszczenia o identycznym profilu mogą czasem działać jako jedna strefa — jeżeli projekt i system sterowania to przewidują.</p>

      <div class="rk-zone-compare-table" role="table" aria-label="Porównanie liczby termostatów">
        <div class="rk-zone-table-row rk-zone-table-head" role="row"><div role="columnheader">Wariant</div><div role="columnheader">Kiedy ma sens</div><div role="columnheader">Co sprawdzić</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Wariant" role="cell">Jeden termostat nadrzędny</div><div data-label="Kiedy" role="cell">Dom ma spójne warunki, podobne nastawy i stabilną pracę pogodową.</div><div data-label="Sprawdź" role="cell">Lokalizację reprezentatywną, wpływ słońca oraz to, czy sygnał nie odcina całego obiegu zbyt wcześnie.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Wariant" role="cell">Strefa grupowa</div><div data-label="Kiedy" role="cell">Kilka pomieszczeń ma ten sam profil i podobne zyski, a podział nie wymaga niezależnych nastaw.</div><div data-label="Sprawdź" role="cell">Czy pomiar jednego miejsca opisuje wszystkie pomieszczenia oraz ile siłowników może obsłużyć wyjście.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Wariant" role="cell">Termostat w każdym pokoju</div><div data-label="Kiedy" role="cell">Pomieszczenia mają odmienne harmonogramy, ekspozycję lub wymagania komfortu.</div><div data-label="Sprawdź" role="cell">Minimalną liczbę otwartych pętli, logikę źródła oraz sens rozdzielania bardzo małych stref.</div></div>
      </div>

      <div class="rk-zone-callout"><strong>Jedna strefa może obsługiwać kilka pętli.</strong> Trzeba jednak sprawdzić obciążalność wyjścia listwy, pobór prądu siłowników, sposób ich łączenia i poprawne przypisanie pętli do pomieszczenia.</div>
    </section>

    <section class="rk-zone-section rk-zone-section-dark" id="rk-zone-heat-pump">
      <span class="rk-zone-eyebrow">Najważniejsze połączenie systemowe</span>
      <h2 class="rk-zone-section-title">Sterowanie strefowe ogrzewaniem podłogowym z pompą ciepła</h2>
      <p class="rk-zone-lead">Pompa ciepła zwykle korzysta na niskiej temperaturze wody, długiej pracy i stabilnym odbiorze energii. Strefowanie może z nią współpracować, ale <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt podłogówki z pompą ciepła</a> musi przewidzieć stan, w którym czynna zostaje tylko część instalacji.</p>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card"><h3>Minimalny przepływ</h3><p>Wartość i sposób kontroli są cechą konkretnego modelu oraz konfiguracji. Nie należy przypisywać jednej liczby wszystkim pompom ciepła.</p></article>
        <article class="rk-zone-card"><h3>Minimalna objętość wody</h3><p>Może być istotna dla stabilności, cykli pracy i odszraniania. Wymagana objętość czynna wynika z dokumentacji — nie z uniwersalnej reguły „bufor zawsze”.</p></article>
        <article class="rk-zone-card"><h3>Najmniejszy odbiór mocy</h3><p>Gdy otwarta pozostaje mała strefa, jej odbiór może być niższy niż minimalna moc urządzenia w danych warunkach. Wtedy rośnie ryzyko krótkich cykli.</p></article>
      </div>

      <div class="rk-zone-spec-grid">
        <div class="rk-zone-spec"><span class="rk-zone-spec-mark">1</span><div><strong>Sprawdź instrukcję dokładnego modelu</strong><span>Minimalny przepływ, objętość zładu, wymagania odszraniania, alarm przepływu i dozwolone schematy hydrauliczne.</span></div></div>
        <div class="rk-zone-spec"><span class="rk-zone-spec-mark">2</span><div><strong>Ustal logikę żądania ciepła</strong><span>Czy źródło pracuje pogodowo stale, czy otrzymuje sygnał ze stref, i jak reaguje na brak zapotrzebowania.</span></div></div>
        <div class="rk-zone-spec"><span class="rk-zone-spec-mark">3</span><div><strong>Sprawdź wybieg pompy</strong><span>Siłowniki nie mogą odciąć wymaganej drogi przepływu wbrew sekwencji zapisanej w instrukcji źródła.</span></div></div>
        <div class="rk-zone-spec"><span class="rk-zone-spec-mark">4</span><div><strong>Przetestuj stan skrajny</strong><span>Zweryfikuj pracę przy minimalnej przewidzianej liczbie otwartych pętli, a nie tylko przy wszystkich strefach aktywnych.</span></div></div>
      </div>

      <div class="rk-zone-callout"><strong>Bufor lub sprzęgło nie są automatyczną odpowiedzią.</strong> Mogą rozwiązać określony problem hydrauliczny albo pojemnościowy, ale wprowadzają kolejną pompę, straty postojowe i wymagają własnego doboru. Zobacz osobno, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">kiedy bufor współpracuje z podłogówką</a> oraz jak działa <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a>.</div>
    </section>

    <section class="rk-zone-section" id="rk-zone-hydraulics">
      <span class="rk-zone-eyebrow">Co widzi pompa po zmianie liczby stref</span>
      <h2 class="rk-zone-section-title">Co dzieje się z hydrauliką po zamknięciu pętli?</h2>
      <p class="rk-zone-lead">Zamknięcie kilku gałęzi zwiększa opór widziany przez pompę i przesuwa punkt pracy. Nie oznacza to automatycznie, że cały wcześniejszy przepływ zostaje wtłoczony do pozostałych pętli. Wynik zależy od charakterystyki pompy, trybu regulacji, zaworów i nastaw.</p>

      <div class="rk-zone-chain" aria-label="Zmiana stanu hydraulicznego po zamknięciu stref">
        <div class="rk-zone-chain-item"><strong>Termostat wycofuje żądanie</strong><span>sygnał logiczny</span></div>
        <div class="rk-zone-chain-item"><strong>Siłownik zamyka zawór</strong><span>czas z dokumentacji</span></div>
        <div class="rk-zone-chain-item"><strong>Rośnie opór układu</strong><span>mniej czynnych gałęzi</span></div>
        <div class="rk-zone-chain-item"><strong>Przesuwa się punkt pracy</strong><span>reakcja pompy</span></div>
        <div class="rk-zone-chain-item"><strong>Zmienia się praca źródła</strong><span>przepływ i odbiór energii</span></div>
      </div>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card"><h3>Rotametr nadal ma znaczenie</h3><p>Po otwarciu strefy przepływ powinien odpowiadać wartości projektowej. <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametry na rozdzielaczu</a> służą do równoważenia, nie do zastępowania obliczeń.</p></article>
        <article class="rk-zone-card"><h3>Tryb pompy nie jest obojętny</h3><p>Stała różnica ciśnień, proporcjonalna różnica ciśnień, stała krzywa lub tryb automatyczny reagują inaczej. Dobór opisuje poradnik o <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompie obiegowej w podłogówce</a>.</p></article>
        <article class="rk-zone-card"><h3>Bypass tylko z uzasadnieniem</h3><p>Zawór różnicy ciśnień może zapewnić drogę przepływu w określonych układach, ale może też zawracać ciepłą wodę. Jego potrzebę i nastawę wyznacza schemat oraz dokumentacja.</p></article>
      </div>

      <div class="rk-zone-warning"><strong>Szum nie ma jednej przyczyny, a rury z tworzywa nie „erozują” od uniwersalnego progu 0,6 m/s.</strong> Hałas może wynikać z nadmiernej różnicy ciśnień, zdławienia, powietrza, zabrudzenia lub złej nastawy. Diagnoza wymaga pomiaru i odniesienia do projektu.</div>

      <div class="rk-zone-cta">
        <div class="rk-zone-cta-title">Automatyka zamknie pętlę. Projekt musi przewidzieć, co stanie się dalej.</div>
        <p>Podział pomieszczeń na strefy trzeba skoordynować z długościami pętli, przepływami, nastawami rozdzielacza, pompą obiegową i minimalnymi wymaganiami źródła. Najbezpieczniej sprawdzić te zależności przed wykonaniem wylewki i zakupem automatyki.</p>
        <a class="rk-zone-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki przygotowany pod sterowanie strefowe</a>
        <small class="rk-zone-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-components">
      <span class="rk-zone-eyebrow">Zgodność ważniejsza niż liczba funkcji</span>
      <h2 class="rk-zone-section-title">Termostaty, listwy i siłowniki — jak dobrać elementy?</h2>
      <p class="rk-zone-lead">Przed zakupem trzeba potraktować automatykę jako jeden system elektryczny i logiczny. Sam pasujący gwint siłownika nie potwierdza zgodności całego zestawu.</p>

      <div class="rk-zone-diagnostic-table" role="table" aria-label="Parametry doboru automatyki strefowej">
        <div class="rk-zone-table-row rk-zone-table-head" role="row"><div role="columnheader">Parametr</div><div role="columnheader">Co ustalić</div><div role="columnheader">Dlaczego to ważne</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">NC czy NO</div><div data-label="Ustal" role="cell">Stan zaworu bez napięcia i logikę wyjść listwy.</div><div data-label="Znaczenie" role="cell">Pomylenie typu odwraca zachowanie strefy. NC i NO opisuje stan bez zasilania, a nie jakość siłownika.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">24 V czy 230 V</div><div data-label="Ustal" role="cell">Napięcie listwy, siłowników, termostatów i wymagania ochrony.</div><div data-label="Znaczenie" role="cell">Elementów o różnych napięciach nie wolno łączyć na podstawie podobnej wtyczki lub oznaczenia strefy.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">Gwint i skok</div><div data-label="Ustal" role="cell">Przyłącze, adapter, skok roboczy i siłę dla wkładki zaworowej.</div><div data-label="Znaczenie" role="cell">Mechaniczny montaż nie zawsze oznacza pełne otwarcie albo pewne zamknięcie zaworu.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">Obciążalność wyjścia</div><div data-label="Ustal" role="cell">Maksymalną liczbę i prąd rozruchowy siłowników na kanał.</div><div data-label="Znaczenie" role="cell">Kilka pętli jednej strefy może przekroczyć możliwości wyjścia mimo małego poboru w stanie ustalonym.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">Styki pompy i źródła</div><div data-label="Ustal" role="cell">Typ styku, dopuszczalne obciążenie, opóźnienia i separację.</div><div data-label="Znaczenie" role="cell">Styk beznapięciowy nie jest tym samym co wyjście zasilające, a pompa może wymagać przekaźnika pośredniego.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Parametr" role="cell">Algorytm regulatora</div><div data-label="Ustal" role="cell">Histerezę, długość cyklu, TPI/PWM, czujnik podłogowy i blokady.</div><div data-label="Znaczenie" role="cell">Funkcje o podobnej nazwie mogą działać inaczej i nie każdy algorytm jest właściwy dla ciężkiej podłogi.</div></div>
      </div>

      <p>Szczegółową mechanikę i dobór omawia osobny poradnik o <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownikach termoelektrycznych na rozdzielaczu</a>. Znaczenie wkładek, belek i osprzętu wyjaśnia także omówienie <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza do podłogówki</a>. Prace przy napięciu sieciowym powinny wykonywać osoby z odpowiednimi kwalifikacjami.</p>
    </section>

    <section class="rk-zone-section" id="rk-zone-wiring">
      <span class="rk-zone-eyebrow">Sposób komunikacji nie zmienia fizyki podłogi</span>
      <h2 class="rk-zone-section-title">Sterowanie przewodowe czy bezprzewodowe?</h2>
      <p class="rk-zone-lead">Oba warianty mogą działać poprawnie. W nowym domu przewody dają przewidywalną infrastrukturę, a w modernizacji komunikacja radiowa często ogranicza zakres prac budowlanych. Decyzję trzeba podjąć również pod kątem zasilania, serwisu i kompatybilności.</p>

      <div class="rk-zone-grid-2">
        <article class="rk-zone-card">
          <h3>System przewodowy</h3>
          <ul>
            <li>warto zaplanować przewody przed tynkami i wylewkami,</li>
            <li>trzeba rozdzielić obwody zgodnie z projektem elektrycznym,</li>
            <li>należy zostawić oznaczenia oraz zapas miejsca w szafce,</li>
            <li>awaria sieci domowej nie musi wpływać na podstawową regulację.</li>
          </ul>
        </article>
        <article class="rk-zone-card">
          <h3>System bezprzewodowy</h3>
          <ul>
            <li>ogranicza kucie ścian przy modernizacji,</li>
            <li>wymaga sprawdzenia zasięgu w gotowym budynku,</li>
            <li>może wymagać baterii, bramki lub dostępu do chmury,</li>
            <li>trzeba znać zachowanie po utracie komunikacji i zasilania.</li>
          </ul>
        </article>
      </div>

      <div class="rk-zone-note"><strong>Wi‑Fi, Zigbee, 868 MHz i magistrala przewodowa nie są zamiennymi etykietami jakości.</strong> Sprawdź topologię, sposób aktualizacji, działanie lokalne bez internetu, dostępność części oraz politykę wsparcia konkretnego systemu.</div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-loop-design">
      <span class="rk-zone-eyebrow">Strefowanie zaczyna się na rzucie</span>
      <h2 class="rk-zone-section-title">Jak zaprojektować pętle pod przyszłe strefowanie?</h2>
      <p class="rk-zone-lead">Najprostsza zasada brzmi: pętla powinna mieć jednoznaczną funkcję i dać się przypisać do regulatora bez sterowania fragmentem sąsiedniego pomieszczenia. Nie jest to jednak „bezwzględny zakaz” każdej sytuacji granicznej — projektant rozstrzyga ją na podstawie układu i obciążeń.</p>

      <div class="rk-zone-steps">
        <article class="rk-zone-step"><h3>Wyznacz strefy funkcjonalne</h3><p>Zbierz wymagane temperatury, harmonogramy, ekspozycję słoneczną i sposób użytkowania. Nie rozdzielaj stref wyłącznie ścianą na rzucie.</p></article>
        <article class="rk-zone-step"><h3>Oblicz obciążenia pomieszczeń</h3><p>Określ moc potrzebną przy warunkach projektowych. Dopiero potem dobieraj powierzchnię czynną, rozstaw i temperaturę wody.</p></article>
        <article class="rk-zone-step"><h3>Rozmieść pętle i dylatacje</h3><p>Przemyśl przejścia przez przegrody, układ jastrychu, <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolację brzegową i dylatacje</a> oraz <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">rozmieszczenie pętli grzewczych</a>.</p></article>
        <article class="rk-zone-step"><h3>Przypisz pętle do stref</h3><p>Jedna strefa może sterować kilkoma pętlami. Każda pętla powinna mieć czytelną etykietę i zgodne wyjście na listwie.</p></article>
        <article class="rk-zone-step"><h3>Policz przepływy i opory</h3><p>Długość <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a>, średnica, przepływ i armatura określają hydraulikę zarówno przed, jak i po zamykaniu stref.</p></article>
        <article class="rk-zone-step"><h3>Sprawdź stany częściowe</h3><p>Ustal najmniejszą przewidzianą czynną strefę, wymagania źródła i zachowanie pompy. Dopiero wtedy wybierz ewentualny bypass, bufor lub separację.</p></article>
      </div>

      <div class="rk-zone-callout"><strong>Rozstaw 10 lub 15 cm i rodzaj jastrychu nie są automatyczną receptą na sterowanie.</strong> Geometria wynika z wymaganej mocy, temperatur granicznych, oporu okładziny, powierzchni czynnej i hydrauliki. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa podłogówki</a> również wymaga obliczeń, a nie jednego rozstawu dla każdego domu.</div>
    </section>

    <section class="rk-zone-section" id="rk-zone-commissioning">
      <span class="rk-zone-eyebrow">Odbiór automatyki i hydrauliki</span>
      <h2 class="rk-zone-section-title">Jak uruchomić i sprawdzić automatykę?</h2>
      <p class="rk-zone-lead">Test powinien potwierdzić nie tylko zmianę ikony na termostacie, lecz cały łańcuch: właściwy kanał, ruch zaworu, przepływ, pompę, sygnał źródła oraz zachowanie w stanach skrajnych.</p>

      <div class="rk-zone-steps">
        <article class="rk-zone-step"><h3>Sprawdź zgodność elektryczną</h3><p>Zweryfikuj napięcia, zabezpieczenia, schemat producenta, wyjścia listwy, typy styków i przewody. Nie podawaj napięcia na styk beznapięciowy.</p></article>
        <article class="rk-zone-step"><h3>Potwierdź mechanikę zaworów</h3><p>Sprawdź adaptery, skok, pozycję montażową oraz to, czy wkładki zaworowe pracują swobodnie.</p></article>
        <article class="rk-zone-step"><h3>Testuj każdą strefę osobno</h3><p>Zmień żądanie i potwierdź właściwy kanał, właściwy siłownik oraz wszystkie pętle przypisane do pomieszczenia.</p></article>
        <article class="rk-zone-step"><h3>Poczekaj na pełny ruch</h3><p>Nie oceniaj przepływu natychmiast po sygnale. Czas otwarcia i zamknięcia odczytaj z dokumentacji siłownika.</p></article>
        <article class="rk-zone-step"><h3>Zrównoważ otwarte pętle</h3><p>Ustaw projektowe przepływy przy warunkach przewidzianych w procedurze. Zapisz nastawy i tryb pompy.</p></article>
        <article class="rk-zone-step"><h3>Sprawdź sygnał pompy i źródła</h3><p>Potwierdź opóźnienie startu, wybieg, blokady, pracę pogodową oraz zachowanie, gdy żąda jedna lub kilka stref.</p></article>
        <article class="rk-zone-step"><h3>Zasymuluj zamykanie stref</h3><p>Obserwuj przepływ, odgłosy, alarmy i cykle źródła przy minimalnej przewidzianej liczbie otwartych pętli.</p></article>
        <article class="rk-zone-step"><h3>Przekaż ustawienia użytkownikowi</h3><p>Zapisz nazwy stref, nastawy, harmonogramy, procedurę awaryjną i dane serwisowe. Zbyt agresywne zmiany mogą pogorszyć komfort.</p></article>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-cost">
      <span class="rk-zone-eyebrow">Koszt systemu to więcej niż cena termostatów</span>
      <h2 class="rk-zone-section-title">Ile kosztuje sterowanie strefowe i od czego zależą oszczędności?</h2>
      <p class="rk-zone-lead">Cena zależy od liczby stref i pętli, napięcia, komunikacji, funkcji listwy, integracji ze źródłem, okablowania, prac elektrycznych, uruchomienia i późniejszego serwisu. Podawanie jednego kosztu „dla domu” bez tych danych byłoby pozorną precyzją.</p>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card"><h3>Elementy strefowe</h3><p>Termostaty, czujniki podłogowe, listwy, moduły rozszerzeń, siłowniki, adaptery i ewentualna bramka komunikacyjna.</p></article>
        <article class="rk-zone-card"><h3>Prace instalacyjne</h3><p>Przewody, zabezpieczenia, miejsce w szafce, montaż, opis obwodów, pomiary elektryczne i połączenie ze źródłem.</p></article>
        <article class="rk-zone-card"><h3>Uruchomienie i serwis</h3><p>Konfiguracja, równoważenie, testy stanów częściowych, instruktaż, baterie, dostępność części i ewentualne usługi chmurowe.</p></article>
      </div>

      <div class="rk-zone-compare-table" role="table" aria-label="Czynniki wpływające na oszczędności sterowania strefowego">
        <div class="rk-zone-table-row rk-zone-table-head" role="row"><div role="columnheader">Czynnik</div><div role="columnheader">Wartość może rosnąć</div><div role="columnheader">Wartość może być mała</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Czynnik" role="cell">Różnice temperatur</div><div data-label="Rośnie" role="cell">Strefy rzeczywiście pracują przy odmiennych, sensownych nastawach przez wystarczająco długi czas.</div><div data-label="Maleje" role="cell">Wszędzie utrzymywana jest ta sama temperatura, a termostaty niemal stale pozostają otwarte.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Czynnik" role="cell">Zyski ciepła</div><div data-label="Rośnie" role="cell">Słońce lub urządzenia przegrzewają wybrane pokoje niezależnie od reszty domu.</div><div data-label="Maleje" role="cell">Zyski są podobne, a pogodówka dobrze kompensuje warunki zewnętrzne.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Czynnik" role="cell">Bezwładność</div><div data-label="Rośnie" role="cell">Harmonogram jest dopasowany do realnej dynamiki i przewidywalnego sposobu użytkowania.</div><div data-label="Maleje" role="cell">Krótkie obniżenia kończą się dogrzewaniem wtedy, gdy strefa znów jest używana.</div></div>
        <div class="rk-zone-table-row" role="row"><div class="rk-zone-table-label" data-label="Czynnik" role="cell">Źródło ciepła</div><div data-label="Rośnie" role="cell">Układ zachowuje wymagany przepływ, stabilny odbiór i rozsądne czasy pracy.</div><div data-label="Maleje" role="cell">Zamykanie pętli zwiększa taktowanie albo wymusza wyższą temperaturę i straty pomocnicze.</div></div>
      </div>

      <div class="rk-zone-answer"><span class="rk-zone-answer-label">Dlaczego nie ma kalkulatora ROI?</span><p><strong>Nie istnieje uczciwa stała „18–23%” ani „20%” dla każdego budynku. Rzetelne oszacowanie wymaga modelu użytkowania, temperatur, charakterystyki budynku, źródła i danych przed oraz po zmianie. Prosty kalkulator mnożący rachunek przez z góry przyjęty procent dawałby pozornie dokładny, lecz niewiarygodny wynik.</strong></p></div>
    </section>

    <section class="rk-zone-section" id="rk-zone-errors">
      <span class="rk-zone-eyebrow">Błędy, których nie naprawi aplikacja</span>
      <h2 class="rk-zone-section-title">Najczęstsze błędy wykonawcze</h2>
      <div class="rk-zone-mistakes">
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Termostat w złym miejscu</strong><p>Słońce, kominek, nawiew, przeciąg, urządzenia lub ściana zewnętrzna fałszują reprezentatywność pomiaru.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Pomylone pętle i wyjścia</strong><p>Termostat sypialni otwiera łazienkę albo tylko jedną z kilku pętli salonu, bo rozdzielacz nie został opisany.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Niezgodne NC/NO lub napięcie</strong><p>Strefa zachowuje się odwrotnie, elementy nie pracują albo powstaje ryzyko uszkodzenia i porażenia.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Brak czasu na otwarcie</strong><p>Pompa i źródło startują, zanim zawory utworzą wymaganą drogę przepływu.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Brak równoważenia</strong><p>Automatyka cyklicznie przykrywa nierówny rozdział wody zamiast zapewnić projektowe przepływy.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Ignorowanie minimum źródła</strong><p>Najmniejsza otwarta strefa nie zapewnia przepływu, objętości lub odbioru mocy wymaganego przez urządzenie.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Agresywne harmonogramy</strong><p>Użytkownik oczekuje natychmiastowej reakcji ciężkiej posadzki i zwiększa nastawy, gdy efekt jeszcze nie dotarł do pokoju.</p></div></div>
        <div class="rk-zone-mistake"><span class="rk-zone-mistake-icon">!</span><div><strong>Bypass lub bufor „na wszelki wypadek”</strong><p>Element zostaje dodany bez obliczenia przepływów, objętości, temperatur i wpływu na sprawność całego układu.</p></div></div>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-checklist">
      <span class="rk-zone-eyebrow">Przed zamówieniem systemu</span>
      <h2 class="rk-zone-section-title">Lista kontrolna przed zakupem automatyki</h2>
      <p class="rk-zone-lead">Jeśli na kilka pytań nie ma odpowiedzi, warto najpierw uzupełnić projekt lub dokumentację. To tańsze niż przerabianie szafki rozdzielacza po uruchomieniu.</p>
      <div class="rk-zone-checklist">
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Strefy funkcjonalne</strong><br>Czy podział wynika z użytkowania, zysków i wymaganych temperatur?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Mapa pętli</strong><br>Czy każda pętla jest opisana i przypisana do właściwego termostatu?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Przepływy projektowe</strong><br>Czy znane są wymagane nastawy wszystkich pętli?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Minimalny stan czynny</strong><br>Ile pętli może pozostać otwartych w najtrudniejszym wariancie?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Wymagania źródła</strong><br>Czy sprawdzono przepływ, objętość, wybieg i logikę dokładnego modelu?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Pompa obiegowa</strong><br>Czy jej charakterystyka i tryb pasują do pełnego i częściowego obciążenia?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>NC lub NO</strong><br>Czy stan beznapięciowy odpowiada listwie i strategii bezpieczeństwa?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>24 V lub 230 V</strong><br>Czy wszystkie elementy i zabezpieczenia są elektrycznie zgodne?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Mechanika zaworu</strong><br>Czy gwint, adapter, skok i siła siłownika są właściwe?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Obciążalność listwy</strong><br>Czy kanały obsłużą liczbę i prąd wszystkich siłowników?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Komunikacja ze źródłem</strong><br>Czy znany jest typ styku, interfejs i wymagane opóźnienia?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Lokalizacja czujników</strong><br>Czy pomiar nie będzie zaburzany przez słońce, nawiew i źródła ciepła?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Tryb awaryjny</strong><br>Co stanie się po utracie łączności, baterii lub zasilania?</div></div>
        <div class="rk-zone-checklist-item"><span>✓</span><div><strong>Protokół uruchomienia</strong><br>Czy wykonawca zapisze nastawy, wyniki testów i instrukcję dla użytkownika?</div></div>
      </div>
    </section>

    <section class="rk-zone-section" id="rk-zone-conclusions">
      <span class="rk-zone-eyebrow">Wnioski projektanta</span>
      <h2 class="rk-zone-section-title">Sterowanie strefowe podłogówki — kiedy pomaga, a kiedy przeszkadza?</h2>
      <p class="rk-zone-lead">Dobre sterowanie strefowe nie zaczyna się od aplikacji. Zaczyna się od poprawnego obciążenia cieplnego, geometrii pętli, równoważenia i strategii pracy źródła. Dopiero na tej podstawie termostaty mogą ograniczać dopływ ciepła tam, gdzie faktycznie nie jest potrzebny.</p>

      <div class="rk-zone-grid-3">
        <article class="rk-zone-card"><h3>Pomaga</h3><p>Gdy strefy mają realnie różne potrzeby, termostaty mierzą reprezentatywnie, a zamykanie pętli jest przewidziane w hydraulice.</p></article>
        <article class="rk-zone-card"><h3>Wnosi niewiele</h3><p>Gdy cały dom ma tę samą nastawę, podobne zyski i stabilną pracę pogodową, a wszystkie siłowniki niemal stale pozostają otwarte.</p></article>
        <article class="rk-zone-card"><h3>Może przeszkadzać</h3><p>Gdy ma maskować złą krzywą, brak równoważenia albo niedopasowane pętle oraz gdy narusza minimalne warunki pracy źródła.</p></article>
      </div>

      <div class="rk-zone-answer">
        <span class="rk-zone-answer-label">Reguła końcowa</span>
        <p><strong>Nie pytaj wyłącznie „ile termostatów kupić?”. Najpierw ustal, które pomieszczenia rzeczywiście potrzebują oddzielnej reakcji i czy po zamknięciu każdej kombinacji stref instalacja nadal zapewni poprawny przepływ, odbiór energii oraz spokojną pracę źródła.</strong></p>
      </div>

      <div class="rk-zone-cta">
        <div class="rk-zone-cta-title">Zaprojektuj pętle, przepływy i sterowanie jako jeden układ</div>
        <p>Kompletny projekt łączy OZC pomieszczeń, powierzchnie czynne, rozstaw rur, długości pętli, przepływy, opory, nastawy rozdzielacza oraz sposób współpracy z pompą ciepła lub innym źródłem. Dzięki temu automatyka realizuje plan, zamiast ratować gotową instalację.</p>
        <a class="rk-zone-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
        <small class="rk-zone-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-zone-section" id="rk-zone-sources">
      <span class="rk-zone-eyebrow">Podstawa techniczna i granice poradnika</span>
      <h2 class="rk-zone-section-title">Źródła i zakres odpowiedzialności</h2>
      <p class="rk-zone-lead">Normy opisują funkcje automatyki budynkowej oraz projektowanie systemów płaszczyznowych, ale nie ustanawiają jednej liczby termostatów, procentu oszczędności, objętości bufora ani minimalnego przepływu dla każdego domu i urządzenia.</p>

      <div class="rk-zone-source-grid">
        <article class="rk-zone-source-card">
          <a href="https://www.iso.org/standard/65883.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52120-1:2021 — wpływ automatyki i zarządzania budynkiem na efektywność energetyczną</a>
          <p>Oficjalna karta normy porządkującej funkcje sterowania i metody oceny ich wpływu. Status dokumentu należy sprawdzać przy każdym zastosowaniu projektowym.</p>
        </article>
        <article class="rk-zone-source-card">
          <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie systemów płaszczyznowych</a>
          <p>Oficjalna karta normy dotyczącej projektowania i wymiarowania wbudowanych wodnych systemów ogrzewania i chłodzenia.</p>
        </article>
        <article class="rk-zone-source-card">
          <a href="https://strathprints.strath.ac.uk/78355/" target="_blank" rel="nofollow noopener noreferrer">University of Strathclyde — przegląd badań nad sterowaniem strefowym ogrzewaniem</a>
          <p>Przegląd systematyczny wskazujący, że wynik zależy między innymi od sposobu użytkowania, standardu budynku, klimatu i jakości uruchomienia; nie potwierdza jednego uniwersalnego procentu oszczędności.</p>
        </article>
        <article class="rk-zone-source-card">
          <a href="https://library.mitsubishielectric.co.uk/pdf/search?scope=current&amp;search_query=ftc6" target="_blank" rel="nofollow noopener noreferrer">Mitsubishi Electric — biblioteka dokumentacji sterowników FTC6</a>
          <p>Przykład oficjalnej dokumentacji producenta, w której należy weryfikować minimalne przepływy, objętości, sekwencje pomp i dopuszczalne schematy dla konkretnego modelu.</p>
        </article>
      </div>

      <div class="rk-zone-responsibility">
        <p><strong>Zakres odpowiedzialności:</strong> artykuł oraz dwa moduły interaktywne mają charakter edukacyjny. Nie są projektem wykonawczym, schematem elektrycznym, konfiguracją producenta, protokołem uruchomienia ani ekspertyzą działającej instalacji.</p>
        <p><strong>Dokumentacja nadrzędna:</strong> wymagania źródła ciepła, pompy, termostatów, listwy, siłowników i zaworów trzeba każdorazowo potwierdzić w aktualnych instrukcjach dokładnych modeli. Projektowanie, montaż elektryczny i uruchomienie należy powierzyć osobom o właściwych kwalifikacjach.</p>
        <p><strong>Stan opracowania:</strong> weryfikacja techniczna wykonana 10 września 2026 r. Status norm, instrukcje urządzeń i funkcje systemów sterowania mogą się zmieniać.</p>
      </div>
    </section>

    <section class="rk-zone-section rk-zone-section-soft" id="rk-zone-faq">
      <span class="rk-zone-eyebrow">Najczęstsze pytania inwestorów</span>
      <h2 class="rk-zone-section-title">FAQ — sterowanie strefowe ogrzewaniem podłogowym</h2>
      <div class="rk-zone-faq">
        <details>
          <summary>Czy sterowanie strefowe ogrzewaniem podłogowym ma sens?</summary>
          <div class="rk-zone-faq-answer"><p>Tak, gdy pomieszczenia różnią się harmonogramem, wymaganymi temperaturami lub zyskami ciepła. Może wnieść mało w otwartym, dobrze zrównoważonym domu o podobnych nastawach. Decyzja nie powinna zależeć wyłącznie od metrażu.</p></div>
        </details>
        <details>
          <summary>Czy przy pompie ciepła potrzebne są termostaty pokojowe?</summary>
          <div class="rk-zone-faq-answer"><p>Nie są obowiązkowe w każdej instalacji. Pompa ciepła może pracować stabilnie z automatyką pogodową i zrównoważonym przepływem. Termostaty są przydatne do ograniczania przegrzewania lub rozdzielania rzeczywiście różnych stref, jeśli zachowano wymagania urządzenia.</p></div>
        </details>
        <details>
          <summary>Czy pompa ciepła może pracować, gdy siłowniki zamykają pętle?</summary>
          <div class="rk-zone-faq-answer"><p>Może, jeśli w każdym przewidzianym stanie zapewniono minimalny przepływ, objętość wody, odbiór energii i poprawną sekwencję sterowania dokładnego modelu. Nie wolno opierać się na jednej wartości dla wszystkich urządzeń.</p></div>
        </details>
        <details>
          <summary>Czy bufor jest zawsze potrzebny przy sterowaniu strefowym?</summary>
          <div class="rk-zone-faq-answer"><p>Nie. Bufor może być potrzebny ze względu na minimalną objętość, separację hydrauliczną, stabilizację pracy lub inne wymaganie konkretnego układu. Jego pojemność i sposób włączenia wynikają z obliczeń oraz dokumentacji źródła.</p></div>
        </details>
        <details>
          <summary>Siłowniki NC czy NO — które wybrać do podłogówki?</summary>
          <div class="rk-zone-faq-answer"><p>Wybór zależy od listwy, logiki bezpieczeństwa i pożądanego stanu bez zasilania. NC jest zamknięty bez napięcia, a NO otwarty bez napięcia. Trzeba również sprawdzić napięcie, gwint, skok, siłę i obciążalność wyjścia.</p></div>
        </details>
        <details>
          <summary>Sterowanie podłogówką 24 V czy 230 V?</summary>
          <div class="rk-zone-faq-answer"><p>Oba napięcia mogą być poprawne w zgodnie zaprojektowanym systemie. Decyduje kompletna kompatybilność termostatów, listwy, siłowników, zabezpieczeń i okablowania, a nie przewaga jednej wartości w każdej instalacji.</p></div>
        </details>
        <details>
          <summary>Jeden termostat czy osobny w każdym pokoju?</summary>
          <div class="rk-zone-faq-answer"><p>Liczba regulatorów powinna odpowiadać strefom funkcjonalnym. Jeden może wystarczyć w spójnym układzie, kilka jest uzasadnionych przy odmiennych profilach. Duży pokój z kilkoma pętlami zwykle pozostaje jedną strefą obsługiwaną przez jeden reprezentatywny pomiar.</p></div>
        </details>
        <details>
          <summary>Czy nocne obniżenie temperatury ma sens przy podłogówce?</summary>
          <div class="rk-zone-faq-answer"><p>Może mieć sens przy odpowiednio długim okresie i przewidywalnej dynamice, ale krótka przerwa w ciężkiej podłodze może nie dać oczekiwanego efektu. Harmonogram trzeba dostroić do konstrukcji i sposobu użytkowania bez obietnicy stałej oszczędności.</p></div>
        </details>
        <details>
          <summary>TPI czy histereza — co jest lepsze?</summary>
          <div class="rk-zone-faq-answer"><p>Nie da się odpowiedzieć samą nazwą. Trzeba sprawdzić implementację producenta, długość cyklu, przeznaczenie do ogrzewania płaszczyznowego, zachowanie siłowników i bezwładność podłogi. Nie każdy regulator TPI się uczy i nie każdy prosty regulator działa źle.</p></div>
        </details>
        <details>
          <summary>Czy sterowanie strefowe można dodać do istniejącej podłogówki?</summary>
          <div class="rk-zone-faq-answer"><p>Często tak, jeżeli rozdzielacz ma odpowiednie wkładki zaworowe, pętle są rozpoznane, możliwe jest doprowadzenie zasilania lub łączności, a hydraulika i źródło tolerują zamykanie stref. Najpierw warto zdiagnozować przepływy i przyczynę problemu z komfortem.</p></div>
        </details>
      </div>
    </section>

    <section class="rk-zone-author" id="rk-zone-author">
      <span class="rk-zone-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-zone-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-zone-author-layout">
        <aside class="rk-zone-author-side">
          <div class="rk-zone-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 HVAC" width="400" height="400" loading="lazy" decoding="async">
          </div>
          <div class="rk-zone-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-zone-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-zone-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>

        <div class="rk-zone-author-main">
          <div class="rk-zone-author-quote">„Termostat może zamknąć strefę, ale to projekt odpowiada za to, czy po tej zmianie pompa, rozdzielacz i źródło nadal pracują w poprawnych warunkach.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W pracy projektowej łączy obciążenia pomieszczeń, temperaturę wody, rozstaw rur, długości pętli, przepływy, opory i wymagania źródła ciepła.</p>
          <p>W tej aktualizacji oddzielono funkcję termostatu pokojowego od regulacji temperatury wody i hydrauliki. Usunięto arbitralne progi powierzchni, gwarantowane oszczędności, stałe wartości bufora i przepływu oraz twierdzenia, że jeden typ algorytmu zawsze eliminuje bezwładność.</p>
          <p>Dwa moduły interaktywne pokazują kolejność sygnałów i skutki cieplne bez udawania symulacji konkretnego budynku. Każda wartość czasowa, elektryczna i hydrauliczna pozostaje do sprawdzenia w projekcie oraz dokumentacji urządzeń.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>

          <div class="rk-zone-author-facts">
            <div class="rk-zone-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, automatyka i hydraulika instalacji</div>
            <div class="rk-zone-author-fact"><strong>Metoda pracy</strong>OZC, przepływy, opory, sekwencje sterowania i instrukcje urządzeń</div>
            <div class="rk-zone-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-zone-guide");
  if (!root) {
    return;
  }

  var systemStates = {
    demand: {
      resultTitle: "Żądanie strefy jest początkiem sekwencji, nie komendą „grzej natychmiast”.",
      resultCopy: "Najpierw reaguje termostat i listwa, potem siłownik zmienia zawór. Dopiero dostępny przepływ, temperatura wody i energia posadzki decydują o efekcie w pokoju.",
      components: {
        thermostat: { value: "Zapotrzebowanie aktywne", copy: "Porównuje pomiar z nastawą i wysyła sygnał zgodnie z własnym algorytmem. Nie ustala przepływu pętli.", active: true },
        controller: { value: "Wyjście strefy aktywne", copy: "Przekazuje sygnał do przypisanego siłownika lub grupy siłowników i może obsługiwać styki pompy oraz źródła.", active: true },
        actuator: { value: "Rozpoczyna otwieranie", copy: "Zmienia położenie zaworu w czasie podanym w karcie produktu. Sygnał elektryczny nie oznacza natychmiast pełnego przepływu.", active: true },
        loop: { value: "Przepływ według nastawy", copy: "Po otwarciu zaworu wartość przepływu zależy od nastawy, oporów instalacji i dostępnej różnicy ciśnień.", active: true },
        pump: { value: "Zapewnia obieg", copy: "Jej punkt pracy wynika z charakterystyki pompy, trybu regulacji i aktualnego oporu czynnych gałęzi.", active: true },
        source: { value: "Reaguje według własnej logiki", copy: "Start, modulacja i temperatura wody zależą od sterownika źródła, blokad i konfiguracji systemowej.", active: true }
      }
    },
    satisfied: {
      resultTitle: "Osiągnięcie nastawy ogranicza dopływ nowej energii, ale nie zatrzymuje bezwładności.",
      resultCopy: "Siłownik potrzebuje czasu na zamknięcie, a posadzka nadal oddaje wcześniej zgromadzone ciepło. Dlatego temperatura pokoju może zmieniać się jeszcze po wycofaniu żądania.",
      components: {
        thermostat: { value: "Żądanie wycofane", copy: "Regulator rozpoznaje spełnienie warunku zgodnie z histerezą, cyklem lub innym algorytmem urządzenia.", active: true },
        controller: { value: "Wyjście strefy wyłączone", copy: "Listwa zmienia stan wyjścia, ale może nadal obsługiwać inne aktywne pomieszczenia.", active: true },
        actuator: { value: "Rozpoczyna zamykanie", copy: "Zawór osiąga pozycję końcową dopiero po czasie określonym w dokumentacji siłownika.", active: true },
        loop: { value: "Przepływ maleje", copy: "Dopływ nowej energii do pętli jest ograniczany, lecz podłoga nadal ma własną temperaturę i pojemność cieplną.", active: true },
        pump: { value: "Reaguje na nowy opór", copy: "Jeśli inne pętle są otwarte, pompa nadal pracuje, a jej punkt pracy przesuwa się zgodnie z charakterystyką.", active: true },
        source: { value: "Sprawdza pozostałe żądania", copy: "Źródło nie musi się wyłączyć, jeżeli pozostałe strefy lub jego własna regulacja nadal wymagają pracy.", active: true }
      }
    },
    few: {
      resultTitle: "Mała liczba otwartych pętli jest stanem projektowym, a nie wyjątkiem do zignorowania.",
      resultCopy: "Trzeba potwierdzić minimalny przepływ i objętość wody, najmniejszy możliwy odbiór mocy, reakcję pompy oraz liczbę cykli źródła. Jedna uniwersalna wartość nie opisze każdego urządzenia.",
      components: {
        thermostat: { value: "Tylko część stref żąda", copy: "Kilka regulatorów wycofało zapotrzebowanie, a jedna lub nieliczne strefy nadal chcą ciepła.", active: true },
        controller: { value: "Niewiele wyjść aktywnych", copy: "Listwa podtrzymuje tylko przypisane kanały i przekazuje żądanie do systemu zgodnie z konfiguracją.", active: true },
        actuator: { value: "Większość zaworów zamknięta", copy: "Czynny przekrój hydrauliczny instalacji jest mniejszy. Stan zaworów musi odpowiadać mapie pętli.", active: true },
        loop: { value: "Mały przepływ całkowity", copy: "Przepływ pozostałych pętli nie jest automatycznie równy wcześniejszej sumie. Zależy od pompy, zaworów i oporów.", active: true },
        pump: { value: "Nowy punkt pracy", copy: "Tryb regulacji może zmniejszyć wydajność, utrzymać różnicę ciśnień lub zareagować inaczej według własnego algorytmu.", active: true },
        source: { value: "Ryzyko małego odbioru", copy: "Najmniejsza strefa może odbierać mniej energii niż minimalna moc źródła w danych warunkach, co wymaga sprawdzenia cykli.", active: true }
      }
    },
    all: {
      resultTitle: "Wszystkie pętle zamknięte: system musi mieć zaplanowaną bezpieczną odpowiedź.",
      resultCopy: "Źródło i pompa nie powinny pracować przeciw zamkniętym zaworom. Kolejność wyłączenia, wybieg, droga przepływu i ewentualna separacja wynikają ze schematu oraz instrukcji dokładnych urządzeń.",
      components: {
        thermostat: { value: "Brak żądań stref", copy: "Każdy regulator wycofał zapotrzebowanie albo system znajduje się poza harmonogramem.", active: true },
        controller: { value: "Wyjścia stref nieaktywne", copy: "Listwa powinna wykonać skonfigurowaną sekwencję dla pompy i źródła, z uwzględnieniem opóźnień.", active: true },
        actuator: { value: "Zawory zamykają się", copy: "Pełne odcięcie następuje zgodnie z czasem ruchu. Typ NC lub NO określa również stan po zaniku zasilania.", active: true },
        loop: { value: "Brak czynnego odbioru", copy: "Jeżeli nie przewidziano otwartej drogi, rozdzielacz nie odbiera przepływu. Bypass nie jest automatycznie poprawną odpowiedzią.", active: false },
        pump: { value: "Wyłączenie lub wybieg", copy: "Zachowanie musi odpowiadać logice źródła. Pompa może potrzebować czasu pracy po wyłączeniu grzania.", active: false },
        source: { value: "Zatrzymanie według instrukcji", copy: "Sterownik kończy wytwarzanie ciepła zgodnie z własną sekwencją i zabezpieczeniami, nie na podstawie przypadkowego odcięcia przepływu.", active: false }
      }
    }
  };

  var scenarioStates = {
    sun: {
      dot: "1",
      flow: "open",
      title: "Zysk słoneczny podnosi temperaturę pokoju",
      copy: "Termostat może wycofać żądanie, ale podłoga nadal oddaje energię zgromadzoną wcześniej. Sterowanie ogranicza dokładanie ciepła; nie usuwa energii z jastrychu.",
      phases: {
        signal: { value: "Wycofuje żądanie", copy: "Pomiar przekracza warunek regulacji wskutek zysków słonecznych.", state: "active" },
        actuator: { value: "Rozpoczyna zamykanie", copy: "Pełna zmiana położenia następuje w czasie określonym przez producenta.", state: "active" },
        flow: { value: "Maleje", copy: "Do strefy trafia mniej nowej energii, a punkt pracy instalacji może się zmienić.", state: "active" },
        floor: { value: "Nadal oddaje ciepło", copy: "Energia zgromadzona przed zamknięciem nie znika wraz z sygnałem termostatu.", state: "active" },
        room: { value: "Może jeszcze się dogrzewać", copy: "Temperatura zależy jednocześnie od słońca, strat i ciepła oddawanego przez podłogę.", state: "active" },
        source: { value: "Sprawdza inne strefy", copy: "Praca pompy i źródła zależy od pozostałych żądań i konfiguracji całego układu.", state: "active" }
      }
    },
    night: {
      dot: "2",
      flow: "open",
      title: "Obniżenie nocne rozpoczyna się od harmonogramu, nie od natychmiastowego chłodu",
      copy: "Jeżeli przerwa jest krótka w stosunku do bezwładności budynku, temperatura może zmienić się niewiele. Zbyt głęboka nastawa może przenieść duży pobór ciepła na poranek.",
      phases: {
        signal: { value: "Nastawa zostaje obniżona", copy: "Regulator zmienia warunek zgodnie z programem użytkownika.", state: "active" },
        actuator: { value: "Zamyka lub ogranicza cykle", copy: "Sposób reakcji zależy od logiki on/off, TPI, PWM lub systemu nadrzędnego.", state: "active" },
        flow: { value: "Maleje okresowo", copy: "Przez pętlę przepływa mniej wody lub pojawiają się dłuższe przerwy.", state: "active" },
        floor: { value: "Powoli oddaje zapas", copy: "Masa podłogi ogranicza szybkość spadku temperatury jej powierzchni.", state: "active" },
        room: { value: "Reaguje z opóźnieniem", copy: "Tempo zależy od strat budynku, wentylacji, zysków i konstrukcji podłogi.", state: "active" },
        source: { value: "Może zmniejszyć obciążenie", copy: "Rzeczywisty efekt energetyczny zależy od długości obniżenia i późniejszego dogrzewania.", state: "active" }
      }
    },
    closing: {
      dot: "3",
      flow: "closed",
      title: "Większość pętli się zamyka — hydraulika zmienia się szybciej niż temperatura pomieszczeń",
      copy: "Pompa widzi inny opór, przepływ całkowity zwykle się zmniejsza, a mała aktywna strefa może nie zapewnić wymaganego odbioru. Ten stan trzeba zweryfikować projektowo i podczas uruchomienia.",
      phases: {
        signal: { value: "Niewiele żądań", copy: "Tylko jedna lub kilka stref przekazuje sygnał zapotrzebowania.", state: "active" },
        actuator: { value: "Większość zaworów zamknięta", copy: "Czynna pozostaje mała część rozdzielacza.", state: "active" },
        flow: { value: "Punkt pracy się przesuwa", copy: "Rzeczywista zmiana zależy od krzywej pompy, trybu i oporów otwartych gałęzi.", state: "closed" },
        floor: { value: "Różne strefy mają różny zapas", copy: "Zamknięte podłogi nadal oddają ciepło, a aktywna nadal pobiera energię.", state: "active" },
        room: { value: "Temperatury rozchodzą się powoli", copy: "Wymiana ciepła między pomieszczeniami może ograniczać oczekiwaną różnicę nastaw.", state: "active" },
        source: { value: "Mały odbiór do sprawdzenia", copy: "Trzeba potwierdzić minimalny przepływ, objętość, moc i liczbę cykli.", state: "closed" }
      }
    },
    return: {
      dot: "4",
      flow: "open",
      title: "Powrót po przerwie nie oznacza natychmiastowego odzyskania komfortu",
      copy: "Termostat może natychmiast zgłosić zapotrzebowanie, ale siłownik, woda, podłoga i pomieszczenie odpowiadają kolejno. Harmonogram powinien uwzględniać tę zwłokę bez sztucznego podnoszenia temperatury wody.",
      phases: {
        signal: { value: "Żądanie pojawia się od razu", copy: "Regulator rozpoznaje różnicę między pomiarem i nową nastawą.", state: "active" },
        actuator: { value: "Potrzebuje czasu na otwarcie", copy: "Przepływ nie osiąga pełnej wartości w chwili zmiany ikony na ekranie.", state: "active" },
        flow: { value: "Wraca po otwarciu", copy: "Wartość zależy od równoważenia, oporów i dostępnej różnicy ciśnień.", state: "active" },
        floor: { value: "Najpierw odbudowuje temperaturę", copy: "Część energii zwiększa temperaturę warstw podłogi, zanim wzrośnie emisja do pomieszczenia.", state: "active" },
        room: { value: "Komfort wraca później", copy: "Rzeczywista zwłoka jest cechą całego budynku, nie jedną wartością z poradnika.", state: "active" },
        source: { value: "Może pracować dłużej", copy: "Nie należy automatycznie kompensować opóźnienia zbyt wysoką krzywą lub maksymalną nastawą.", state: "active" }
      }
    }
  };

  function setPressed(buttons, activeButton) {
    buttons.forEach(function (button) {
      button.setAttribute("aria-pressed", button === activeButton ? "true" : "false");
    });
  }

  function renderSystem(key) {
    var state = systemStates[key];
    var result = document.getElementById("rk-zone-system-result");
    if (!state) {
      return;
    }

    Object.keys(state.components).forEach(function (componentKey) {
      var card = root.querySelector('[data-rk-zone-component="' + componentKey + '"]');
      var value;
      var copy;
      var item = state.components[componentKey];
      if (!card) {
        return;
      }
      value = card.querySelector("[data-rk-zone-component-value]");
      copy = card.querySelector("[data-rk-zone-component-copy]");
      if (value) {
        value.textContent = item.value;
      }
      if (copy) {
        copy.textContent = item.copy;
      }
      card.classList.remove("is-active");
      card.classList.remove("is-muted");
      if (item.active) {
        card.classList.add("is-active");
      } else {
        card.classList.add("is-muted");
      }
    });

    if (result) {
      result.innerHTML = "<strong>" + state.resultTitle + "</strong><p>" + state.resultCopy + "</p>";
    }
  }

  function setPhaseValueClass(element, phaseState) {
    element.classList.remove("is-off");
    element.classList.remove("is-closed");
    if (phaseState === "rest") {
      element.classList.add("is-off");
    }
    if (phaseState === "closed") {
      element.classList.add("is-closed");
    }
  }

  function renderScenario(key) {
    var state = scenarioStates[key];
    var summary = document.getElementById("rk-zone-scenario-summary");
    var dot;
    var title;
    var copy;
    if (!state) {
      return;
    }

    if (summary) {
      summary.setAttribute("data-flow", state.flow);
      dot = summary.querySelector(".rk-zone-state-dot");
      title = summary.querySelector("strong");
      copy = summary.querySelector("p");
      if (dot) {
        dot.textContent = state.dot;
      }
      if (title) {
        title.textContent = state.title;
      }
      if (copy) {
        copy.textContent = state.copy;
      }
    }

    Object.keys(state.phases).forEach(function (phaseKey) {
      var card = root.querySelector('[data-rk-zone-phase="' + phaseKey + '"]');
      var value;
      var copyElement;
      var item = state.phases[phaseKey];
      if (!card) {
        return;
      }
      value = card.querySelector("[data-rk-zone-phase-value]");
      copyElement = card.querySelector("[data-rk-zone-phase-copy]");
      if (value) {
        value.textContent = item.value;
        setPhaseValueClass(value, item.state);
      }
      if (copyElement) {
        copyElement.textContent = item.copy;
      }
      card.classList.remove("is-active");
      card.classList.remove("is-rest");
      if (item.state === "rest") {
        card.classList.add("is-rest");
      } else {
        card.classList.add("is-active");
      }
    });
  }

  var systemButtons = Array.prototype.slice.call(root.querySelectorAll("[data-rk-zone-system]"));
  systemButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      setPressed(systemButtons, button);
      renderSystem(button.getAttribute("data-rk-zone-system"));
    });
  });

  var scenarioButtons = Array.prototype.slice.call(root.querySelectorAll("[data-rk-zone-scenario]"));
  scenarioButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      setPressed(scenarioButtons, button);
      renderScenario(button.getAttribute("data-rk-zone-scenario"));
    });
  });

  renderSystem("demand");
  renderScenario("sun");
}());
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Profesjonalne projektowanie ogrzewania podłogowego i poradniki techniczne HVAC.",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": { "@id": "https://projekt-ogrzewania.pl/#logo" },
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "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",
      "width": 1024,
      "height": 1024,
      "caption": "Projekt Ogrzewania"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "sterowanie strefowe ogrzewaniem",
        "automatyka grzewcza",
        "pompy ciepła",
        "hydraulika instalacji",
        "projektowe obciążenie cieplne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Sterowanie-strefowe-ogrzewaniem-czy-warto.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Sterowanie-strefowe-ogrzewaniem-czy-warto.webp",
      "width": 945,
      "height": 945,
      "caption": "Sterowanie strefowe ogrzewaniem – czy warto?",
      "representativeOfPage": true,
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Sterowanie strefowe ogrzewaniem – czy warto?",
          "item": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webpage",
      "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/",
      "name": "Sterowanie strefowe ogrzewaniem podłogowym – kiedy warto, a kiedy może przeszkadzać?",
      "description": "Sterowanie strefowe ogrzewaniem podłogowym: sprawdź, kiedy poprawia komfort, jak współpracuje z pompą ciepła i kiedy może zaburzyć hydraulikę instalacji.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#primaryimage" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article" },
      "datePublished": "2025-12-29T11:58:52+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"]
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webpage" },
      "headline": "Sterowanie strefowe ogrzewaniem podłogowym – kiedy warto, a kiedy może przeszkadzać?",
      "alternativeHeadline": "Termostaty, siłowniki, bezwładność podłogówki i współpraca stref z pompą ciepła",
      "description": "Techniczny poradnik wyjaśniający sens sterowania strefowego, działanie termostatów, listew i siłowników, bezwładność podłogi, hydraulikę po zamknięciu pętli oraz wymagania źródła ciepła.",
      "image": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-12-29T11:58:52+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "timeRequired": "PT29M",
      "wordCount": 4380,
      "isAccessibleForFree": true,
      "copyrightYear": 2026,
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "articleSection": [
        "Czy sterowanie strefowe jest warte swojej ceny",
        "Termostaty, listwy i siłowniki",
        "Bezwładność ogrzewania podłogowego",
        "Sterowanie pogodowe",
        "Sterowanie strefowe z pompą ciepła",
        "Hydraulika po zamknięciu pętli",
        "Dobór automatyki 24 V i 230 V",
        "Projektowanie pętli pod strefowanie",
        "Uruchomienie automatyki",
        "Koszt i oszczędności",
        "FAQ"
      ],
      "keywords": [
        "sterowanie strefowe ogrzewaniem podłogowym czy warto",
        "sterowanie strefowe podłogówki",
        "termostaty pokojowe do ogrzewania podłogowego czy warto",
        "sterowanie strefowe ogrzewaniem podłogowym z pompą ciepła",
        "czy przy pompie ciepła potrzebne są termostaty pokojowe",
        "pompa ciepła a zamykanie pętli podłogówki",
        "minimalny przepływ pompy ciepła a siłowniki",
        "czy siłowniki na rozdzielaczu są potrzebne",
        "siłowniki NC czy NO do podłogówki",
        "sterowanie podłogówką 24 V czy 230 V",
        "sterowanie przewodowe czy bezprzewodowe",
        "sterowanie strefowe a bezwładność podłogówki",
        "TPI czy histereza",
        "nocne obniżenie temperatury podłogówki",
        "jeden termostat czy osobny w każdym pokoju",
        "bufor przy sterowaniu strefowym",
        "pompa obiegowa a zamykanie pętli",
        "równoważenie hydrauliczne podłogówki"
      ],
      "about": [
        { "@type": "Thing", "name": "Sterowanie strefowe ogrzewaniem podłogowym" },
        { "@type": "Thing", "name": "Automatyka grzewcza" },
        { "@type": "Thing", "name": "Pompa ciepła" }
      ],
      "mentions": [
        { "@type": "Thing", "name": "Termostat pokojowy" },
        { "@type": "Thing", "name": "Siłownik termoelektryczny" },
        { "@type": "Thing", "name": "Listwa sterująca" },
        { "@type": "Thing", "name": "Minimalny przepływ" },
        { "@type": "Thing", "name": "Bezwładność cieplna posadzki" },
        { "@type": "Thing", "name": "Równoważenie hydrauliczne" }
      ],
      "citation": [
        "https://www.iso.org/standard/65883.html",
        "https://www.iso.org/standard/74684.html",
        "https://strathprints.strath.ac.uk/78355/",
        "https://library.mitsubishielectric.co.uk/pdf/search?scope=current&search_query=ftc6"
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "#rk-zone-answer .rk-zone-answer",
          "#rk-zone-heat-pump .rk-zone-lead",
          "#rk-zone-conclusions .rk-zone-answer"
        ]
      },
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#system-graphic" },
        { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#inertia-timeline" },
        { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#checklist" },
        { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#faq" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#system-graphic",
      "name": "Od termostatu do źródła — interaktywna grafika sterowania strefowego",
      "description": "Modułowa grafika pokazująca logiczną drogę od termostatu przez listwę, siłownik, rozdzielacz i pompę do źródła w czterech stanach instalacji.",
      "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-graphic",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript",
      "softwareVersion": "1.0",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article" },
      "featureList": [
        "Stan zapotrzebowania pomieszczenia",
        "Stan po osiągnięciu nastawy",
        "Praca przy większości zamkniętych stref",
        "Stan wszystkich zamkniętych stref",
        "Oddzielne moduły termostatu, listwy, siłownika, pętli, pompy i źródła",
        "Responsywny układ bez nakładania elementów"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#inertia-timeline",
      "name": "Interaktywny przebieg reakcji ogrzewania podłogowego",
      "description": "Moduł edukacyjny pokazujący kolejność reakcji termostatu, siłownika, przepływu, posadzki, pomieszczenia i źródła bez narzucania uniwersalnych czasów.",
      "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-inertia",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Building physics and HVAC",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript",
      "softwareVersion": "1.0",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article" },
      "featureList": [
        "Scenariusz zysków słonecznych",
        "Scenariusz obniżenia nocnego",
        "Scenariusz zamknięcia większości pętli",
        "Scenariusz powrotu po przerwie",
        "Rozdzielenie czasu sygnału od bezwładności posadzki",
        "Brak arbitralnych uniwersalnych czasów i temperatur"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#howto",
      "name": "Jak uruchomić i sprawdzić sterowanie strefowe ogrzewaniem podłogowym",
      "description": "Kolejność weryfikacji elektrycznej, mechanicznej, hydraulicznej i funkcjonalnej automatyki strefowej.",
      "inLanguage": "pl-PL",
      "supply": [
        { "@type": "HowToSupply", "name": "Projekt pętli i przepływów" },
        { "@type": "HowToSupply", "name": "Mapa stref i oznaczenia rozdzielacza" },
        { "@type": "HowToSupply", "name": "Instrukcje termostatów, listwy, siłowników, pompy i źródła" }
      ],
      "tool": [
        { "@type": "HowToTool", "name": "Przyrządy pomiarowe wymagane przez zakres prac elektrycznych" },
        { "@type": "HowToTool", "name": "Rotametry lub przyrządy do kontroli przepływu" },
        { "@type": "HowToTool", "name": "Dokumentacja uruchomieniowa producentów" }
      ],
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Sprawdź zgodność elektryczną", "text": "Zweryfikuj napięcia, zabezpieczenia, typy styków, obciążalność wyjść i schemat producenta.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 2, "name": "Potwierdź mechanikę zaworów", "text": "Sprawdź adaptery, skok siłowników i swobodną pracę wkładek zaworowych.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 3, "name": "Przetestuj każdą strefę", "text": "Potwierdź zgodność termostatu, kanału listwy, siłowników i pętli rozdzielacza.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 4, "name": "Poczekaj na pełny ruch siłownika", "text": "Oceniaj przepływ dopiero po czasie otwarcia lub zamknięcia podanym w dokumentacji urządzenia.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 5, "name": "Zrównoważ pętle", "text": "Ustaw projektowe przepływy i zapisz końcowe nastawy rozdzielacza oraz pompy.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 6, "name": "Sprawdź pompę i źródło", "text": "Potwierdź sygnały, opóźnienia, wybieg, blokady i regulację pogodową.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 7, "name": "Zasymuluj stany częściowe", "text": "Sprawdź przepływ, hałas, alarmy i cykle przy minimalnej przewidzianej liczbie otwartych pętli.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" },
        { "@type": "HowToStep", "position": 8, "name": "Udokumentuj ustawienia", "text": "Przekaż użytkownikowi nazwy stref, nastawy, harmonogramy, procedurę awaryjną i dane serwisowe.", "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-commissioning" }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#checklist",
      "name": "Lista kontrolna przed zakupem automatyki strefowej",
      "numberOfItems": 14,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strefy funkcjonalne" },
        { "@type": "ListItem", "position": 2, "name": "Mapa i oznaczenia pętli" },
        { "@type": "ListItem", "position": 3, "name": "Projektowe przepływy pętli" },
        { "@type": "ListItem", "position": 4, "name": "Minimalny stan czynny instalacji" },
        { "@type": "ListItem", "position": 5, "name": "Minimalne wymagania źródła ciepła" },
        { "@type": "ListItem", "position": 6, "name": "Charakterystyka i tryb pompy obiegowej" },
        { "@type": "ListItem", "position": 7, "name": "Typ siłownika NC lub NO" },
        { "@type": "ListItem", "position": 8, "name": "Napięcie 24 V lub 230 V" },
        { "@type": "ListItem", "position": 9, "name": "Gwint, adapter, skok i siła siłownika" },
        { "@type": "ListItem", "position": 10, "name": "Obciążalność wyjść listwy" },
        { "@type": "ListItem", "position": 11, "name": "Komunikacja ze źródłem ciepła" },
        { "@type": "ListItem", "position": 12, "name": "Lokalizacja czujników temperatury" },
        { "@type": "ListItem", "position": 13, "name": "Zachowanie awaryjne po utracie zasilania lub łączności" },
        { "@type": "ListItem", "position": 14, "name": "Protokół uruchomienia i przekazanie ustawień" }
      ],
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article" }
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#faq",
      "url": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#rk-zone-faq",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webpage" },
      "mainEntity": [
        { "@type": "Question", "name": "Czy sterowanie strefowe ogrzewaniem podłogowym ma sens?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, gdy pomieszczenia różnią się harmonogramem, wymaganymi temperaturami lub zyskami ciepła. Może wnieść mało w otwartym, dobrze zrównoważonym domu o podobnych nastawach. Decyzja nie powinna zależeć wyłącznie od metrażu." } },
        { "@type": "Question", "name": "Czy przy pompie ciepła potrzebne są termostaty pokojowe?", "acceptedAnswer": { "@type": "Answer", "text": "Nie są obowiązkowe w każdej instalacji. Pompa ciepła może pracować stabilnie z automatyką pogodową i zrównoważonym przepływem. Termostaty są przydatne do ograniczania przegrzewania lub rozdzielania rzeczywiście różnych stref, jeśli zachowano wymagania urządzenia." } },
        { "@type": "Question", "name": "Czy pompa ciepła może pracować, gdy siłowniki zamykają pętle?", "acceptedAnswer": { "@type": "Answer", "text": "Może, jeśli w każdym przewidzianym stanie zapewniono minimalny przepływ, objętość wody, odbiór energii i poprawną sekwencję sterowania dokładnego modelu. Nie wolno opierać się na jednej wartości dla wszystkich urządzeń." } },
        { "@type": "Question", "name": "Czy bufor jest zawsze potrzebny przy sterowaniu strefowym?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Bufor może być potrzebny ze względu na minimalną objętość, separację hydrauliczną, stabilizację pracy lub inne wymaganie konkretnego układu. Jego pojemność i sposób włączenia wynikają z obliczeń oraz dokumentacji źródła." } },
        { "@type": "Question", "name": "Siłowniki NC czy NO — które wybrać do podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Wybór zależy od listwy, logiki bezpieczeństwa i pożądanego stanu bez zasilania. NC jest zamknięty bez napięcia, a NO otwarty bez napięcia. Trzeba również sprawdzić napięcie, gwint, skok, siłę i obciążalność wyjścia." } },
        { "@type": "Question", "name": "Sterowanie podłogówką 24 V czy 230 V?", "acceptedAnswer": { "@type": "Answer", "text": "Oba napięcia mogą być poprawne w zgodnie zaprojektowanym systemie. Decyduje kompletna kompatybilność termostatów, listwy, siłowników, zabezpieczeń i okablowania, a nie przewaga jednej wartości w każdej instalacji." } },
        { "@type": "Question", "name": "Jeden termostat czy osobny w każdym pokoju?", "acceptedAnswer": { "@type": "Answer", "text": "Liczba regulatorów powinna odpowiadać strefom funkcjonalnym. Jeden może wystarczyć w spójnym układzie, kilka jest uzasadnionych przy odmiennych profilach. Duży pokój z kilkoma pętlami zwykle pozostaje jedną strefą obsługiwaną przez jeden reprezentatywny pomiar." } },
        { "@type": "Question", "name": "Czy nocne obniżenie temperatury ma sens przy podłogówce?", "acceptedAnswer": { "@type": "Answer", "text": "Może mieć sens przy odpowiednio długim okresie i przewidywalnej dynamice, ale krótka przerwa w ciężkiej podłodze może nie dać oczekiwanego efektu. Harmonogram trzeba dostroić do konstrukcji i sposobu użytkowania bez obietnicy stałej oszczędności." } },
        { "@type": "Question", "name": "TPI czy histereza — co jest lepsze?", "acceptedAnswer": { "@type": "Answer", "text": "Nie da się odpowiedzieć samą nazwą. Trzeba sprawdzić implementację producenta, długość cyklu, przeznaczenie do ogrzewania płaszczyznowego, zachowanie siłowników i bezwładność podłogi. Nie każdy regulator TPI się uczy i nie każdy prosty regulator działa źle." } },
        { "@type": "Question", "name": "Czy sterowanie strefowe można dodać do istniejącej podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Często tak, jeżeli rozdzielacz ma odpowiednie wkładki zaworowe, pętle są rozpoznane, możliwe jest doprowadzenie zasilania lub łączności, a hydraulika i źródło tolerują zamykanie stref. Najpierw warto zdiagnozować przepływy i przyczynę problemu z komfortem." } }
      ]
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe ogrzewaniem – czy warto? Fakty i błędy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy warto montować sterowniki do ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 11 Dec 2025 10:36:22 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Smart home]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[smart home]]></category>
		<category><![CDATA[sterownik pogodowy]]></category>
		<category><![CDATA[sterownik pokojowy]]></category>
		<category><![CDATA[sterowniki do podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2934</guid>

					<description><![CDATA[<p>Czy warto montować sterowniki do ogrzewania podłogowego? To pytanie zadaje sobie dziś większość osób planujących nowoczesny system grzewczy w swoim domu. Podłogówka sama w sobie daje komfort, ale dopiero odpowiednia automatyka pozwala realnie oszczędzać, podnosić wygodę i wykorzystać pełen potencjał instalacji. W zajawce wyjaśniamy, dlaczego sterowniki stają się nieodłącznym elementem współczesnych systemów grzewczych i jak wpływają na ich efektywność, trwałość oraz codzienną eksploatację.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-controls-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e8fbff;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d89c19;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    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.75;
  }

  #rk-controls-guide,
  #rk-controls-guide * { box-sizing: border-box; }
  #rk-controls-guide img,
  #rk-controls-guide svg,
  #rk-controls-guide canvas { max-width: 100%; }
  #rk-controls-guide button,
  #rk-controls-guide input,
  #rk-controls-guide select,
  #rk-controls-guide label,
  #rk-controls-guide summary,
  #rk-controls-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-controls-guide button,
  #rk-controls-guide input,
  #rk-controls-guide select { max-width: 100%; }
  #rk-controls-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-controls-guide a:hover,
  #rk-controls-guide a:focus-visible { color: var(--rk-red); }
  #rk-controls-guide p,
  #rk-controls-guide ul,
  #rk-controls-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-controls-guide h2,
  #rk-controls-guide h3,
  #rk-controls-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-controls-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-controls-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-controls-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-controls-guide strong { color: var(--rk-dark); }

  #rk-controls-guide .rk-controls-progress {
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    width: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
    box-shadow: 0 0 12px rgba(37, 199, 216, .5);
    pointer-events: none;
  }

  #rk-controls-guide .rk-controls-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }

  #rk-controls-guide .rk-controls-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .3), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-controls-guide .rk-controls-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-controls-guide .rk-controls-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-controls-guide .rk-controls-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-controls-guide .rk-controls-hero-title {
    position: relative;
    z-index: 1;
    max-width: 970px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.35rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.01;
  }
  #rk-controls-guide .rk-controls-hero-title span { color: #78efff; }
  #rk-controls-guide .rk-controls-lead {
    position: relative;
    z-index: 1;
    max-width: 920px;
    margin-bottom: 25px;
    color: #d8e9ef;
    font-size: clamp(1.02rem, 2vw, 1.24rem);
    line-height: 1.68;
  }
  #rk-controls-guide .rk-controls-hero-tags {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 28px;
  }
  #rk-controls-guide .rk-controls-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: #eefcff;
    background: rgba(255, 255, 255, .075);
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.3;
  }
  #rk-controls-guide .rk-controls-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: #bad3dc;
    font-size: .72rem;
    font-weight: 720;
  }
  #rk-controls-guide .rk-controls-byline strong { color: var(--rk-white); }
  #rk-controls-guide .rk-controls-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
  }
  #rk-controls-guide .rk-controls-hero-metric {
    padding: 17px 18px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 16px;
    background: rgba(5, 24, 36, .28);
    backdrop-filter: blur(6px);
  }
  #rk-controls-guide .rk-controls-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #7af0ff;
    font-size: 1.04rem;
    font-weight: 950;
  }
  #rk-controls-guide .rk-controls-hero-metric span {
    display: block;
    color: #d5e7ec;
    font-size: .7rem;
    line-height: 1.45;
  }

  #rk-controls-guide .rk-controls-nav {
    position: relative;
    z-index: 5;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    padding: 11px clamp(14px, 3vw, 28px);
    border-bottom: 1px solid var(--rk-line);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 24px rgba(16, 37, 54, .07);
  }
  #rk-controls-guide .rk-controls-nav-label {
    padding-top: 9px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  #rk-controls-guide .rk-controls-nav-track {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    overflow: visible;
    padding: 2px;
  }
  #rk-controls-guide .rk-controls-nav-track a {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-soft);
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
  }
  #rk-controls-guide .rk-controls-nav-track a:hover,
  #rk-controls-guide .rk-controls-nav-track a:focus-visible { color: var(--rk-white); background: var(--rk-blue); }

  #rk-controls-guide .rk-controls-content { padding: clamp(26px, 5.5vw, 64px); }
  #rk-controls-guide .rk-controls-section {
    margin-bottom: clamp(48px, 8vw, 86px);
    scroll-margin-top: 24px;
  }
  #rk-controls-guide .rk-controls-section:last-child { margin-bottom: 0; }
  #rk-controls-guide .rk-controls-section-head { max-width: 930px; margin-bottom: 24px; }
  #rk-controls-guide .rk-controls-section-head > p:last-child { margin-bottom: 0; color: var(--rk-text); font-size: 1.02rem; }
  #rk-controls-guide .rk-controls-eyebrow {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-blue);
    font-size: .67rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-controls-guide .rk-controls-grid-2,
  #rk-controls-guide .rk-controls-grid-3,
  #rk-controls-guide .rk-controls-grid-4 { display: grid; gap: 18px; }
  #rk-controls-guide .rk-controls-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-controls-guide .rk-controls-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-controls-guide .rk-controls-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-controls-guide .rk-controls-card {
    padding: clamp(21px, 3.5vw, 31px);
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .065);
  }
  #rk-controls-guide .rk-controls-card p:last-child,
  #rk-controls-guide .rk-controls-card ul:last-child,
  #rk-controls-guide .rk-controls-card ol:last-child { margin-bottom: 0; }
  #rk-controls-guide .rk-controls-card-blue { border-top: 5px solid var(--rk-cyan); }
  #rk-controls-guide .rk-controls-card-orange { border-top: 5px solid var(--rk-orange); }
  #rk-controls-guide .rk-controls-card-green { border-top: 5px solid var(--rk-green); }
  #rk-controls-guide .rk-controls-card-purple { border-top: 5px solid var(--rk-purple); }
  #rk-controls-guide .rk-controls-number {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 15px;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: .85rem;
    font-weight: 950;
  }
  #rk-controls-guide .rk-controls-answer {
    position: relative;
    overflow: hidden;
    padding: clamp(27px, 5vw, 45px);
    border-radius: 22px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #18516a);
  }
  #rk-controls-guide .rk-controls-answer::after {
    position: absolute;
    right: -72px;
    bottom: -86px;
    width: 225px;
    height: 225px;
    border: 32px solid rgba(255,255,255,.05);
    border-radius: 50%;
    content: "";
  }
  #rk-controls-guide .rk-controls-answer h3 { position: relative; z-index: 1; color: var(--rk-white); }
  #rk-controls-guide .rk-controls-answer p { position: relative; z-index: 1; color: #d9ebf0; }
  #rk-controls-guide .rk-controls-answer strong { color: #8ef5ff; }
  #rk-controls-guide .rk-controls-answer p:last-child { margin-bottom: 0; }

  #rk-controls-guide .rk-controls-note,
  #rk-controls-guide .rk-controls-warning,
  #rk-controls-guide .rk-controls-good {
    padding: 20px 22px;
    border-left: 5px solid;
    border-radius: 14px;
  }
  #rk-controls-guide .rk-controls-note { border-color: var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-controls-guide .rk-controls-warning { border-color: var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-controls-guide .rk-controls-good { border-color: var(--rk-green); background: var(--rk-green-soft); }
  #rk-controls-guide .rk-controls-note p:last-child,
  #rk-controls-guide .rk-controls-warning p:last-child,
  #rk-controls-guide .rk-controls-good p:last-child { margin-bottom: 0; }

  #rk-controls-guide .rk-controls-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #rk-controls-guide .rk-controls-pill-list li {
    padding: 8px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    background: var(--rk-soft);
    color: var(--rk-navy);
    font-size: .77rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-controls-guide .rk-controls-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 38px;
    margin-top: 28px;
  }
  #rk-controls-guide .rk-controls-flow-item {
    position: relative;
    padding: 23px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }
  #rk-controls-guide .rk-controls-flow-item:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -31px;
    color: var(--rk-orange);
    content: "→";
    font-size: 1.7rem;
    font-weight: 950;
    transform: translateY(-50%);
  }
  #rk-controls-guide .rk-controls-flow-item p:last-child { margin-bottom: 0; }

  #rk-controls-guide .rk-controls-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-controls-guide .rk-controls-table { width: 100%; border-collapse: collapse; }
  #rk-controls-guide .rk-controls-table th,
  #rk-controls-guide .rk-controls-table td { padding: 16px 17px; border-bottom: 1px solid var(--rk-line); vertical-align: top; text-align: left; }
  #rk-controls-guide .rk-controls-table th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .035em;
    line-height: 1.35;
    text-transform: uppercase;
  }
  #rk-controls-guide .rk-controls-table td { color: var(--rk-text); font-size: .88rem; line-height: 1.55; }
  #rk-controls-guide .rk-controls-table tr:last-child td { border-bottom: 0; }
  #rk-controls-guide .rk-controls-table tbody tr:nth-child(even) { background: var(--rk-soft); }

  #rk-controls-guide .rk-controls-analyzer {
    overflow: hidden;
    border: 1px solid #315769;
    border-radius: 24px;
    color: #eaf6f9;
    background: #102c3c;
    box-shadow: 0 26px 65px rgba(16, 37, 54, .18);
  }
  #rk-controls-guide .rk-controls-analyzer-head {
    padding: clamp(27px, 5vw, 48px);
    background:
      radial-gradient(circle at 92% 15%, rgba(37, 199, 216, .22), transparent 30%),
      linear-gradient(135deg, #13394d, #174d5c);
  }
  #rk-controls-guide .rk-controls-analyzer-head .rk-controls-eyebrow { color: #76efff; }
  #rk-controls-guide .rk-controls-analyzer-head h3 { max-width: 900px; color: var(--rk-white); font-size: clamp(1.6rem, 4vw, 2.6rem); }
  #rk-controls-guide .rk-controls-analyzer-head p { max-width: 900px; margin-bottom: 0; color: #d0e4ea; }
  #rk-controls-guide .rk-controls-analyzer-body { padding: clamp(21px, 4.5vw, 42px); }
  #rk-controls-guide .rk-controls-input-group,
  #rk-controls-guide .rk-controls-result-block {
    margin-bottom: 22px;
    padding: clamp(20px, 3.5vw, 31px);
    border: 1px solid #345a6d;
    border-radius: 18px;
    background: #173447;
  }
  #rk-controls-guide .rk-controls-input-group h4,
  #rk-controls-guide .rk-controls-result-block h4 { color: var(--rk-white); }
  #rk-controls-guide .rk-controls-input-group > p,
  #rk-controls-guide .rk-controls-result-block > p { color: #bad2dc; font-size: .82rem; }
  #rk-controls-guide .rk-controls-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 17px;
  }
  #rk-controls-guide .rk-controls-field { min-width: 0; }
  #rk-controls-guide .rk-controls-field label {
    display: block;
    margin-bottom: 7px;
    color: #f1fbfd;
    font-size: .74rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-controls-guide .rk-controls-field select,
  #rk-controls-guide .rk-controls-field input {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #8eabb7;
    border-radius: 10px;
    outline: none;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .82rem;
  }
  #rk-controls-guide .rk-controls-field select:focus,
  #rk-controls-guide .rk-controls-field input:focus { border-color: var(--rk-cyan); box-shadow: 0 0 0 3px rgba(37,199,216,.22); }
  #rk-controls-guide .rk-controls-help { display: block; margin-top: 6px; color: #9ebac5; font-size: .64rem; line-height: 1.45; }
  #rk-controls-guide .rk-controls-actions { display: flex; flex-wrap: wrap; gap: 11px; margin: 6px 0 25px; }
  #rk-controls-guide .rk-controls-button {
    min-height: 48px;
    padding: 11px 18px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 950;
  }
  #rk-controls-guide .rk-controls-button:hover,
  #rk-controls-guide .rk-controls-button:focus-visible { color: var(--rk-white); background: var(--rk-orange); }
  #rk-controls-guide .rk-controls-button-secondary { border: 1px solid #58798a; color: #dceef2; background: transparent; }
  #rk-controls-guide .rk-controls-error {
    display: none;
    margin-bottom: 18px;
    padding: 13px 15px;
    border-left: 4px solid #ff8060;
    border-radius: 9px;
    color: #ffe7df;
    background: rgba(217, 75, 61, .18);
    font-size: .78rem;
    font-weight: 760;
  }
  #rk-controls-guide .rk-controls-error.is-visible { display: block; }

  #rk-controls-guide .rk-controls-result-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid #3d6678;
    border-radius: 19px;
    background: linear-gradient(135deg, #123c50, #176071);
  }
  #rk-controls-guide .rk-controls-result-hero.is-central { background: linear-gradient(135deg, #173b55, #315aa4); }
  #rk-controls-guide .rk-controls-result-hero.is-selective { background: linear-gradient(135deg, #123d4f, #157b79); }
  #rk-controls-guide .rk-controls-result-hero.is-zoned { background: linear-gradient(135deg, #18463f, #16836b); }
  #rk-controls-guide .rk-controls-result-hero.is-foundation { background: linear-gradient(135deg, #563828, #a34f32); }
  #rk-controls-guide .rk-controls-result-badge {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #e8fbff;
    background: rgba(255,255,255,.13);
    font-size: .64rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-controls-guide .rk-controls-result-hero h4 { margin-bottom: 12px; color: var(--rk-white); font-size: clamp(1.35rem, 3.2vw, 2rem); }
  #rk-controls-guide .rk-controls-result-hero p { max-width: 920px; margin-bottom: 0; color: #e0f0f4; }
  #rk-controls-guide .rk-controls-score-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
    margin-top: 19px;
  }
  #rk-controls-guide .rk-controls-score-card {
    padding: 17px;
    border: 1px solid #365e70;
    border-radius: 15px;
    background: #112f41;
  }
  #rk-controls-guide .rk-controls-score-card span { display: block; margin-bottom: 7px; color: #b7ced7; font-size: .65rem; font-weight: 850; line-height: 1.35; text-transform: uppercase; }
  #rk-controls-guide .rk-controls-score-card strong { display: block; margin-bottom: 9px; color: var(--rk-white); font-size: 1.14rem; font-weight: 950; }
  #rk-controls-guide .rk-controls-score-track { overflow: hidden; height: 8px; border-radius: 999px; background: #284b5e; }
  #rk-controls-guide .rk-controls-score-fill { width: 0; height: 100%; border-radius: inherit; background: var(--rk-cyan); transition: width .35s ease; }
  #rk-controls-guide .rk-controls-score-fill.is-orange { background: var(--rk-orange); }
  #rk-controls-guide .rk-controls-score-fill.is-purple { background: #8d80ee; }
  #rk-controls-guide .rk-controls-score-fill.is-green { background: #43d1a9; }

  #rk-controls-guide .rk-controls-result-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin-top: 19px;
  }
  #rk-controls-guide .rk-controls-result-list {
    padding: 20px;
    border: 1px solid #365e70;
    border-radius: 16px;
    background: #112f41;
  }
  #rk-controls-guide .rk-controls-result-list h4 { font-size: 1rem; }
  #rk-controls-guide .rk-controls-result-list ul { margin: 0; padding-left: 19px; }
  #rk-controls-guide .rk-controls-result-list li { margin-bottom: 8px; color: #c9dde4; font-size: .75rem; line-height: 1.5; }
  #rk-controls-guide .rk-controls-result-list li:last-child { margin-bottom: 0; }

  #rk-controls-guide .rk-controls-system-path {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 34px;
    margin-top: 20px;
  }
  #rk-controls-guide .rk-controls-system-node {
    position: relative;
    min-height: 126px;
    padding: 19px 16px;
    border: 1px solid #43697a;
    border-radius: 15px;
    background: #102d3f;
  }
  #rk-controls-guide .rk-controls-system-node:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -27px;
    color: #62ddec;
    content: "→";
    font-size: 1.45rem;
    font-weight: 950;
    transform: translateY(-50%);
  }
  #rk-controls-guide .rk-controls-system-node b { display: block; margin-bottom: 6px; color: var(--rk-white); font-size: .87rem; }
  #rk-controls-guide .rk-controls-system-node span { display: block; color: #a9c4ce; font-size: .67rem; line-height: 1.45; }
  #rk-controls-guide .rk-controls-system-state {
    display: inline-flex;
    margin-top: 11px;
    padding: 4px 8px;
    border-radius: 999px;
    color: #89f5df;
    background: rgba(22, 131, 107, .24);
    font-size: .58rem;
    font-weight: 900;
    line-height: 1.3;
  }
  #rk-controls-guide .rk-controls-system-state.is-warn { color: #ffd8cc; background: rgba(255, 106, 61, .23); }

  #rk-controls-guide .rk-controls-chart-box {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid #365e70;
    border-radius: 16px;
    background: #f7fbfc;
  }
  #rk-controls-guide .rk-controls-chart-box h4 { margin-bottom: 6px; color: var(--rk-dark); }
  #rk-controls-guide .rk-controls-chart-box p { color: var(--rk-text); font-size: .76rem; }
  #rk-controls-guide .rk-controls-chart-wrap { position: relative; width: 100%; min-height: 295px; }
  #rk-controls-guide .rk-controls-chart-wrap canvas { display: block; width: 100%; height: 295px; }
  #rk-controls-guide .rk-controls-chart-legend { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 9px; color: var(--rk-text); font-size: .66rem; font-weight: 800; }
  #rk-controls-guide .rk-controls-chart-key { display: inline-flex; align-items: center; gap: 7px; }
  #rk-controls-guide .rk-controls-chart-key::before { width: 22px; height: 4px; border-radius: 999px; background: var(--rk-blue); content: ""; }
  #rk-controls-guide .rk-controls-chart-key.is-orange::before { background: var(--rk-orange); }

  #rk-controls-guide .rk-controls-diagnostics { display: grid; gap: 10px; margin-top: 18px; }
  #rk-controls-guide .rk-controls-diagnostic {
    padding: 13px 15px;
    border-left: 4px solid #32ccb0;
    border-radius: 10px;
    color: #d4e8ed;
    background: #173c4f;
    font-size: .74rem;
    line-height: 1.55;
  }
  #rk-controls-guide .rk-controls-diagnostic.is-warn { border-color: var(--rk-orange); background: #403642; }
  #rk-controls-guide .rk-controls-analyzer-disclaimer { margin: 7px 0 0; color: #9ebac5; font-size: .65rem; line-height: 1.5; }

  #rk-controls-guide .rk-controls-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 22px;
    color: var(--rk-white);
    background: linear-gradient(135deg, #0d2b3c, #145269);
    box-shadow: 0 18px 48px rgba(16, 37, 54, .14);
  }
  #rk-controls-guide .rk-controls-cta::after {
    position: absolute;
    right: -55px;
    bottom: -80px;
    width: 220px;
    height: 220px;
    border: 34px solid rgba(255,255,255,.055);
    border-radius: 50%;
    content: "";
  }
  #rk-controls-guide .rk-controls-cta-title { position: relative; z-index: 1; max-width: 900px; margin-bottom: 10px; color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2.05rem); font-weight: 950; letter-spacing: -.035em; line-height: 1.16; }
  #rk-controls-guide .rk-controls-cta p { position: relative; z-index: 1; max-width: 900px; color: #d1e5eb; }
  #rk-controls-guide .rk-controls-cta-button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 20px;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    box-shadow: 0 10px 26px rgba(37,199,216,.23);
    font-size: .79rem;
    font-weight: 950;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
  }
  #rk-controls-guide .rk-controls-cta-button:hover,
  #rk-controls-guide .rk-controls-cta-button:focus-visible { color: var(--rk-white); background: var(--rk-orange); }
  #rk-controls-guide .rk-controls-mid-cta { margin: -35px 0 clamp(52px, 8vw, 88px); }
  #rk-controls-guide .rk-controls-final-cta { margin-top: 35px; }

  #rk-controls-guide .rk-controls-steps { counter-reset: rk-controls-step; display: grid; gap: 14px; }
  #rk-controls-guide .rk-controls-step {
    position: relative;
    padding: 21px 22px 21px 76px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }
  #rk-controls-guide .rk-controls-step::before {
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    content: counter(rk-controls-step);
    counter-increment: rk-controls-step;
    font-size: .8rem;
    font-weight: 950;
  }
  #rk-controls-guide .rk-controls-step p:last-child { margin-bottom: 0; }

  #rk-controls-guide .rk-controls-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin: 0; padding: 0; list-style: none; }
  #rk-controls-guide .rk-controls-checklist li {
    position: relative;
    padding: 17px 17px 17px 50px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
    color: var(--rk-text);
    font-size: .84rem;
    line-height: 1.5;
  }
  #rk-controls-guide .rk-controls-checklist li::before {
    position: absolute;
    top: 16px;
    left: 16px;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: .7rem;
    font-weight: 950;
  }

  #rk-controls-guide .rk-controls-faq { display: grid; gap: 11px; }
  #rk-controls-guide .rk-controls-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 14px; background: var(--rk-white); }
  #rk-controls-guide .rk-controls-faq summary { position: relative; padding: 18px 54px 18px 20px; color: var(--rk-dark); cursor: pointer; font-weight: 880; line-height: 1.4; list-style: none; }
  #rk-controls-guide .rk-controls-faq summary::-webkit-details-marker { display: none; }
  #rk-controls-guide .rk-controls-faq summary::after { position: absolute; top: 50%; right: 20px; color: var(--rk-blue); content: "+"; font-size: 1.4rem; font-weight: 950; transform: translateY(-50%); }
  #rk-controls-guide .rk-controls-faq details[open] summary::after { content: "−"; }
  #rk-controls-guide .rk-controls-faq-answer { padding: 0 20px 19px; color: var(--rk-text); }
  #rk-controls-guide .rk-controls-faq-answer p:last-child { margin-bottom: 0; }
  #rk-controls-guide .rk-controls-sources { margin-bottom: 20px; padding-left: 25px; }
  #rk-controls-guide .rk-controls-sources li { margin-bottom: 9px; color: var(--rk-text); }

  #rk-controls-guide .rk-controls-author {
    overflow: hidden;
    margin-top: clamp(55px, 8vw, 90px);
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: #f3f8fa;
  }
  #rk-controls-guide .rk-controls-author > input { position: absolute; opacity: 0; pointer-events: none; }
  #rk-controls-guide .rk-controls-author-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    padding: 27px clamp(24px, 4vw, 42px);
    color: var(--rk-white);
    background: linear-gradient(135deg, #102536, #194e63);
  }
  #rk-controls-guide .rk-controls-author-head h2 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-controls-guide .rk-controls-author-head p { margin-bottom: 0; color: #c7dce4; font-size: .8rem; }
  #rk-controls-guide .rk-controls-author-mark { max-width: 310px; color: #7ceeff; font-size: .61rem; font-weight: 900; letter-spacing: .055em; line-height: 1.45; text-align: right; text-transform: uppercase; }
  #rk-controls-guide .rk-controls-author-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); }
  #rk-controls-guide .rk-controls-author-side { padding: 34px 27px; color: #dbeaf0; background: #10293a; text-align: center; }
  #rk-controls-guide .rk-controls-author-photo { overflow: hidden; width: 154px; height: 154px; margin: 0 auto 20px; border: 6px solid #365366; border-radius: 50%; background: var(--rk-white); }
  #rk-controls-guide .rk-controls-author-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
  #rk-controls-guide .rk-controls-author-name { color: var(--rk-white); font-size: 1.16rem; font-weight: 950; }
  #rk-controls-guide .rk-controls-author-role { margin-top: 7px; color: #bfd5de; font-size: .7rem; line-height: 1.45; }
  #rk-controls-guide .rk-controls-author-social-label { margin: 27px 0 10px; color: #8daab6; font-size: .58rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
  #rk-controls-guide .rk-controls-author-social { display: flex; justify-content: center; gap: 10px; }
  #rk-controls-guide .rk-controls-author-social a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #496b7c; border-radius: 50%; color: #d8ebf1; }
  #rk-controls-guide .rk-controls-author-social a:hover,
  #rk-controls-guide .rk-controls-author-social a:focus-visible { color: var(--rk-white); border-color: var(--rk-cyan); background: var(--rk-blue); }
  #rk-controls-guide .rk-controls-author-social svg { width: 20px; height: 20px; fill: currentColor; }
  #rk-controls-guide .rk-controls-author-main { padding: clamp(27px, 4.5vw, 45px); }
  #rk-controls-guide .rk-controls-author-quote { position: relative; margin: 0 0 25px; padding: 23px 25px 23px 68px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-white); }
  #rk-controls-guide .rk-controls-author-quote::before { position: absolute; top: 13px; left: 24px; color: var(--rk-cyan); content: "“"; font-family: Georgia, serif; font-size: 3.8rem; font-weight: 900; line-height: 1; }
  #rk-controls-guide .rk-controls-author-quote p { margin-bottom: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-controls-guide .rk-controls-author-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 22px; }
  #rk-controls-guide .rk-controls-author-tab { padding: 8px 13px; border-radius: 999px; color: var(--rk-muted); background: #e3edf1; cursor: pointer; font-size: .67rem; font-weight: 900; }
  #rk-controls-guide .rk-controls-author-panel { display: none; color: var(--rk-text); }
  #rk-controls-guide #rk-controls-author-about:checked ~ .rk-controls-author-layout .rk-controls-author-panel-about,
  #rk-controls-guide #rk-controls-author-exp:checked ~ .rk-controls-author-layout .rk-controls-author-panel-exp,
  #rk-controls-guide #rk-controls-author-method:checked ~ .rk-controls-author-layout .rk-controls-author-panel-method { display: block; }
  #rk-controls-guide #rk-controls-author-about:checked ~ .rk-controls-author-layout label[for="rk-controls-author-about"],
  #rk-controls-guide #rk-controls-author-exp:checked ~ .rk-controls-author-layout label[for="rk-controls-author-exp"],
  #rk-controls-guide #rk-controls-author-method:checked ~ .rk-controls-author-layout label[for="rk-controls-author-method"] { color: var(--rk-white); background: var(--rk-blue); }
  #rk-controls-guide .rk-controls-site-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
  #rk-controls-guide .rk-controls-site-links a { padding: 7px 10px; border-radius: 999px; background: #e5f3f7; font-size: .68rem; text-decoration: none; }

  @media (max-width: 900px) {
    #rk-controls-guide .rk-controls-hero-metrics,
    #rk-controls-guide .rk-controls-grid-3,
    #rk-controls-guide .rk-controls-grid-4,
    #rk-controls-guide .rk-controls-flow,
    #rk-controls-guide .rk-controls-score-grid,
    #rk-controls-guide .rk-controls-result-columns,
    #rk-controls-guide .rk-controls-system-path { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-controls-guide .rk-controls-flow-item:not(:last-child)::after,
    #rk-controls-guide .rk-controls-system-node:not(:last-child)::after { display: none; }
    #rk-controls-guide .rk-controls-author-layout { grid-template-columns: 240px minmax(0, 1fr); }
  }

  @media (max-width: 680px) {
    #rk-controls-guide { margin: 18px auto 44px; font-size: 16px; }
    #rk-controls-guide .rk-controls-shell { border-radius: 18px; }
    #rk-controls-guide .rk-controls-hero { padding: 34px 22px 31px; }
    #rk-controls-guide .rk-controls-hero-metrics,
    #rk-controls-guide .rk-controls-grid-2,
    #rk-controls-guide .rk-controls-grid-3,
    #rk-controls-guide .rk-controls-grid-4,
    #rk-controls-guide .rk-controls-flow,
    #rk-controls-guide .rk-controls-score-grid,
    #rk-controls-guide .rk-controls-result-columns,
    #rk-controls-guide .rk-controls-system-path,
    #rk-controls-guide .rk-controls-checklist { grid-template-columns: 1fr; }
    #rk-controls-guide .rk-controls-nav { grid-template-columns: 1fr; gap: 5px; }
    #rk-controls-guide .rk-controls-nav-label { padding: 0 0 4px 2px; }
    #rk-controls-guide .rk-controls-content { padding: 27px 19px; }
    #rk-controls-guide .rk-controls-table-wrap { overflow: visible; border: 0; box-shadow: none; background: transparent; }
    #rk-controls-guide .rk-controls-table,
    #rk-controls-guide .rk-controls-table tbody,
    #rk-controls-guide .rk-controls-table tr,
    #rk-controls-guide .rk-controls-table td { display: block; width: 100%; }
    #rk-controls-guide .rk-controls-table thead { display: none; }
    #rk-controls-guide .rk-controls-table tr { overflow: hidden; margin-bottom: 12px; border: 1px solid var(--rk-line); border-radius: 14px; background: var(--rk-white); box-shadow: 0 8px 22px rgba(16,37,54,.055); }
    #rk-controls-guide .rk-controls-table td { display: grid; grid-template-columns: minmax(112px, .85fr) minmax(0, 1.15fr); gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--rk-line); font-size: .8rem; }
    #rk-controls-guide .rk-controls-table td::before { color: var(--rk-dark); content: attr(data-label); font-size: .68rem; font-weight: 900; line-height: 1.35; }
    #rk-controls-guide .rk-controls-table tr:last-child td:last-child,
    #rk-controls-guide .rk-controls-table td:last-child { border-bottom: 0; }
    #rk-controls-guide .rk-controls-author-head { display: block; }
    #rk-controls-guide .rk-controls-author-mark { margin-top: 12px; text-align: left; }
    #rk-controls-guide .rk-controls-author-layout { grid-template-columns: 1fr; }
    #rk-controls-guide .rk-controls-author-quote { padding-left: 58px; }
    #rk-controls-guide .rk-controls-chart-wrap,
    #rk-controls-guide .rk-controls-chart-wrap canvas { min-height: 255px; height: 255px; }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-controls-guide *,
    #rk-controls-guide *::before,
    #rk-controls-guide *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  }
</style>

<article id="rk-controls-guide" aria-label="Sterowniki do ogrzewania podłogowego — poradnik i analizator">
  <div class="rk-controls-progress" aria-hidden="true"></div>
  <div class="rk-controls-shell">
    <header class="rk-controls-hero">
      <span class="rk-controls-kicker">Automatyka bez obietnic z sufitu</span>
      <div class="rk-controls-hero-title">Sterowniki do podłogówki: <span>kiedy pomagają, a kiedy komplikują instalację?</span></div>
      <p class="rk-controls-lead">Termostat w każdym pokoju nie jest automatycznie najlepszym rozwiązaniem. Najpierw trzeba rozdzielić regulację temperatury wody, hydraulikę oraz sterowanie pomieszczeniami, a przy pompie ciepła dodatkowo zabezpieczyć minimalny przepływ i stabilną pracę źródła.</p>
      <div class="rk-controls-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-controls-hero-tag">sterowanie pogodowe</span>
        <span class="rk-controls-hero-tag">termostaty pokojowe</span>
        <span class="rk-controls-hero-tag">siłowniki na rozdzielaczu</span>
        <span class="rk-controls-hero-tag">pompa ciepła i przepływ</span>
        <span class="rk-controls-hero-tag">bezwładność podłogi</span>
      </div>
      <div class="rk-controls-byline">
        <span><strong>Autor:</strong> Robert Kucharski</span>
        <span><strong>Aktualizacja techniczna:</strong> 31 sierpnia 2026 r.</span>
        <span><strong>Charakter narzędzia:</strong> analiza koncepcji, nie projekt wykonawczy</span>
      </div>
      <div class="rk-controls-hero-metrics" aria-label="Najważniejsze zasady">
        <div class="rk-controls-hero-metric"><b>Najpierw przepływy</b><span>Automatyka nie zastępuje regulacji hydraulicznej pętli.</span></div>
        <div class="rk-controls-hero-metric"><b>Potem strefy</b><span>Strefa ma sens wtedy, gdy ma własną funkcję albo inne zyski ciepła.</span></div>
        <div class="rk-controls-hero-metric"><b>Bez obietnicy procentów</b><span>Oszczędność zależy od stanu wyjściowego i sposobu użytkowania.</span></div>
      </div>
    </header>

    <nav class="rk-controls-nav" aria-label="Skróty do wszystkich części artykułu">
      <span class="rk-controls-nav-label">Na skróty</span>
      <div class="rk-controls-nav-track">
        <a href="#rk-controls-szybka">Szybka odpowiedź</a>
        <a href="#rk-controls-warstwy">Trzy warstwy</a>
        <a href="#rk-controls-podstawy">Najpierw podstawy</a>
        <a href="#rk-controls-analizator">Analizator</a>
        <a href="#rk-controls-kiedy-warto">Kiedy warto</a>
        <a href="#rk-controls-kiedy-nie">Kiedy nie</a>
        <a href="#rk-controls-hybryda">Hybryda</a>
        <a href="#rk-controls-pompa-ciepla">Pompa ciepła</a>
        <a href="#rk-controls-kotly">Inne źródła</a>
        <a href="#rk-controls-bezwladnosc">Bezwładność</a>
        <a href="#rk-controls-elementy">Elementy systemu</a>
        <a href="#rk-controls-czujnik">Czujnik podłogi</a>
        <a href="#rk-controls-przewodowe">Przewodowe czy radio</a>
        <a href="#rk-controls-strefy">Podział stref</a>
        <a href="#rk-controls-hydraulika">Hydraulika</a>
        <a href="#rk-controls-uruchomienie">Uruchomienie</a>
        <a href="#rk-controls-koszty">Koszty</a>
        <a href="#rk-controls-bledy">Błędy</a>
        <a href="#rk-controls-checklista">Checklista</a>
        <a href="#rk-controls-faq">FAQ</a>
        <a href="#rk-controls-zrodla">Źródła</a>
        <a href="#rk-controls-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-controls-content">
      <section class="rk-controls-section" id="rk-controls-szybka">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Werdykt bez skrótów myślowych</span>
          <h2>Czy warto montować sterowniki do ogrzewania podłogowego?</h2>
          <p>Warto wtedy, gdy automatyka rozwiązuje konkretny problem: różne temperatury, odmienne godziny użytkowania, duże zyski słoneczne, kominek albo konieczność ograniczenia temperatury posadzki. Nie warto traktować termostatów jako zamiennika projektu i regulacji przepływów.</p>
        </div>
        <div class="rk-controls-answer">
          <h3>Najczęściej najlepszy jest układ hybrydowy</h3>
          <p><strong>Regulacja pogodowa</strong> prowadzi temperaturę wody, <strong>nastawy hydrauliczne</strong> rozdzielają przepływ, a <strong>termostaty pokojowe</strong> ograniczają tylko te strefy, które rzeczywiście tego wymagają. W wielu domach nie trzeba zamykać każdej pętli w każdym pokoju.</p>
          <p>Przy pompie ciepła logika stref nie może powodować utraty minimalnego przepływu ani częstego taktowania. Przy ciężkiej, akumulacyjnej podłodze nie należy oczekiwać reakcji podobnej do grzejnika.</p>
        </div>
        <div class="rk-controls-grid-3" style="margin-top:18px">
          <div class="rk-controls-card rk-controls-card-green"><h3>Tak — pełne lub szerokie strefowanie</h3><p>Gdy pomieszczenia mają wyraźnie różne nastawy, harmonogramy i zyski ciepła, a hydraulika została do tego przygotowana.</p></div>
          <div class="rk-controls-card rk-controls-card-blue"><h3>Tak — ale selektywnie</h3><p>Gdy problem dotyczy kilku pomieszczeń: salonu z przeszkleniami, sypialni, łazienki albo pokoju gościnnego.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Najpierw nie</h3><p>Gdy nie znamy przepływów, krzywa grzewcza jest źle ustawiona, a termostaty mają jedynie maskować przegrzewanie całej instalacji.</p></div>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-warstwy">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Jedno słowo, trzy różne zadania</span>
          <h2>Sterownik pogodowy, hydraulika i termostat pokojowy</h2>
          <p>Hasło „sterownik do podłogówki” bywa używane dla elementów, które wykonują zupełnie inne zadania. Dopiero ich właściwa kolejność daje stabilną instalację.</p>
        </div>
        <div class="rk-controls-flow">
          <div class="rk-controls-flow-item">
            <div class="rk-controls-number">1</div>
            <h3>Temperatura wody</h3>
            <p>Automatyka źródła lub mieszacza dobiera temperaturę zasilania do warunków zewnętrznych. To ona ustala poziom energii dostępnej dla całej podłogi.</p>
          </div>
          <div class="rk-controls-flow-item">
            <div class="rk-controls-number">2</div>
            <h3>Przepływy w pętlach</h3>
            <p>Pompa, średnice, długości obwodów i nastawy rotametrów rozdzielają wodę zgodnie z wymaganiami pomieszczeń.</p>
          </div>
          <div class="rk-controls-flow-item">
            <div class="rk-controls-number">3</div>
            <h3>Ograniczanie stref</h3>
            <p>Termostat wysyła sygnał do listwy, a siłownik otwiera albo zamyka przypisane pętle. Nie wyznacza jednak ich prawidłowego przepływu.</p>
          </div>
        </div>
        <div class="rk-controls-note" style="margin-top:18px"><p><strong>Ważne:</strong> sterowanie pokojowe działa na końcu łańcucha. Jeśli temperatura zasilania jest za wysoka albo przepływy są przypadkowe, częste zamykanie pętli nie usuwa przyczyny problemu.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-podstawy">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Warunki wejściowe</span>
          <h2>Co powinno działać przed montażem termostatów i siłowników?</h2>
          <p>Automatyka powinna zarządzać poprawnie przygotowaną instalacją, a nie pełnić funkcję awaryjnego regulatora źle dobranych parametrów.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-blue">
            <h3>Obliczenia i wykonanie</h3>
            <ul>
              <li>straty ciepła obliczone dla pomieszczeń,</li>
              <li>rozstaw rur wynikający z wymaganej mocy,</li>
              <li>długości pętli i dobiegów,</li>
              <li>projektowe przepływy oraz nastawy rozdzielacza,</li>
              <li>jednoznaczne przypisanie pętli do pomieszczeń.</li>
            </ul>
          </div>
          <div class="rk-controls-card rk-controls-card-orange">
            <h3>Źródło i hydraulika</h3>
            <ul>
              <li>ustalona temperatura lub krzywa grzewcza,</li>
              <li>dobrana pompa obiegowa,</li>
              <li>zapewniony minimalny przepływ i wymagana objętość,</li>
              <li>określona reakcja źródła na zamykanie stref,</li>
              <li>zweryfikowane ograniczenia temperatury posadzki.</li>
            </ul>
          </div>
        </div>
        <p style="margin-top:19px">Jeżeli nie znasz przepływów, zacznij od opracowania o <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">odczycie i ustawianiu rotametrów</a>. Sama liczba termostatów nie odpowie też na pytanie, czy pompa poradzi sobie po zamknięciu części obwodów — do tego służą obliczenia opisane w <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatorze doboru pompy obiegowej</a>.</p>
      </section>

      <section class="rk-controls-section" id="rk-controls-analizator">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Narzędzie decyzyjne</span>
          <h2>Interaktywny analizator sterowania ogrzewaniem podłogowym</h2>
          <p>Wybierz warunki swojej instalacji. Analizator nie liczy fikcyjnego ROI. Oddzielnie ocenia korzyść z podziału na strefy, bezwładność, ryzyko hydrauliczne i pilność uporządkowania podstaw.</p>
        </div>

        <div class="rk-controls-analyzer" data-rk-controls-analyzer="">
          <div class="rk-controls-analyzer-head">
            <span class="rk-controls-eyebrow">Sterowanie centralne, selektywne czy pełne strefowanie?</span>
            <h3>Sprawdź koncepcję, zanim kupisz termostaty i siłowniki</h3>
            <p>Wynik jest modelem kwalifikacyjnym. Nie zastępuje minimalnego przepływu z dokumentacji źródła, obliczeń oporów pętli ani projektu automatyki.</p>
          </div>
          <div class="rk-controls-analyzer-body">
            <div class="rk-controls-input-group">
              <h4>1. Źródło ciepła i układ hydrauliczny</h4>
              <p>Te dane decydują, jak groźne może być jednoczesne zamknięcie wielu pętli.</p>
              <div class="rk-controls-fields">
                <div class="rk-controls-field">
                  <label for="rk-controls-source">Źródło ciepła</label>
                  <select id="rk-controls-source">
                    <option value="heat-pump" selected="">Pompa ciepła</option>
                    <option value="gas">Kocioł gazowy kondensacyjny</option>
                    <option value="pellet">Kocioł na pellet lub paliwo stałe</option>
                    <option value="electric">Kocioł elektryczny</option>
                    <option value="other">Inne lub jeszcze nie wybrane</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-weather">Sterowanie temperaturą zasilania</label>
                  <select id="rk-controls-weather">
                    <option value="yes" selected="">Regulacja pogodowa jest lub będzie</option>
                    <option value="no">Stała temperatura bez pogodówki</option>
                    <option value="unknown">Nie wiem</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-layout">Połączenie źródła z podłogówką</label>
                  <select id="rk-controls-layout">
                    <option value="direct" selected="">Układ bezpośredni</option>
                    <option value="buffer">Bufor lub układ zapewniający objętość</option>
                    <option value="separated">Rozdzielenie hydrauliczne obiegów</option>
                    <option value="unknown">Nie wiem</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-min-flow">Minimalny przepływ źródła</label>
                  <select id="rk-controls-min-flow">
                    <option value="secured">Znany i zapewniony po zamknięciu stref</option>
                    <option value="not-secured">Znany, ale może nie być zapewniony</option>
                    <option value="unknown" selected="">Nie znam tej wartości</option>
                    <option value="not-applicable">Nie dotyczy bezpośrednio obiegu podłogi</option>
                  </select>
                  <span class="rk-controls-help">Nie wpisujemy uniwersalnej wartości — wynika ona z wymagań źródła i hydrauliki.</span>
                </div>
              </div>
            </div>

            <div class="rk-controls-input-group">
              <h4>2. Budynek, podłoga i sposób użytkowania</h4>
              <p>Strefowanie jest bardziej uzasadnione, gdy pomieszczenia naprawdę różnią się funkcją albo zyskami ciepła.</p>
              <div class="rk-controls-fields">
                <div class="rk-controls-field">
                  <label for="rk-controls-building">Charakter budynku</label>
                  <select id="rk-controls-building">
                    <option value="low">Bardzo energooszczędny, stabilny cieplnie</option>
                    <option value="standard" selected="">Nowy lub dobrze ocieplony dom</option>
                    <option value="renovation">Modernizowany budynek o większych stratach</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-mass">Konstrukcja ogrzewanej podłogi</label>
                  <select id="rk-controls-mass">
                    <option value="light">Lekki lub suchy system</option>
                    <option value="standard" selected="">Standardowy jastrych mokry</option>
                    <option value="heavy">Gruba płyta lub bardzo duża akumulacja</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-temperature-diversity">Różnice wymaganych temperatur</label>
                  <select id="rk-controls-temperature-diversity">
                    <option value="same">Prawie wszędzie ta sama temperatura</option>
                    <option value="moderate" selected="">Kilka pomieszczeń ma inną nastawę</option>
                    <option value="different">Wyraźnie różne temperatury i funkcje</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-gains">Zyski słoneczne, kominek i urządzenia</label>
                  <select id="rk-controls-gains">
                    <option value="low">Małe i równomierne</option>
                    <option value="medium" selected="">Umiarkowane lub okresowe</option>
                    <option value="high">Duże przeszklenia, kominek albo silne zyski</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-usage">Sposób użytkowania pomieszczeń</label>
                  <select id="rk-controls-usage">
                    <option value="constant">Stałe użytkowanie i jeden profil dobowy</option>
                    <option value="variable" selected="">Różne godziny użytkowania</option>
                    <option value="seasonal">Pokoje gościnne lub strefy okresowe</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-floor">Okładzina i potrzeba ogranicznika podłogi</label>
                  <select id="rk-controls-floor">
                    <option value="insensitive" selected="">Płytki lub brak szczególnego limitu</option>
                    <option value="sensitive">Drewno, winyl lub zadeklarowany limit</option>
                    <option value="unknown">Nie znam wymagań okładziny</option>
                  </select>
                </div>
              </div>
            </div>

            <div class="rk-controls-input-group">
              <h4>3. Pętle, regulacja i możliwość montażu</h4>
              <p>Duża liczba pętli sterowanych siłownikami zwiększa zakres kontroli, ale może też zwiększać ryzyko utraty przepływu.</p>
              <div class="rk-controls-fields">
                <div class="rk-controls-field">
                  <label for="rk-controls-loops">Łączna liczba pętli</label>
                  <input id="rk-controls-loops" type="number" min="1" max="60" step="1" value="12" inputmode="numeric">
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-controlled-loops">Pętle planowane do sterowania siłownikami</label>
                  <input id="rk-controls-controlled-loops" type="number" min="0" max="60" step="1" value="8" inputmode="numeric">
                  <span class="rk-controls-help">To nie znaczy, że wszystkie zamkną się jednocześnie — analizator pokazuje wariant ostrożnościowy.</span>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-balance">Regulacja hydrauliczna pętli</label>
                  <select id="rk-controls-balance">
                    <option value="documented">Mam projektowe przepływy i nastawy</option>
                    <option value="adjusted" selected="">Przepływy zostały wyregulowane w praktyce</option>
                    <option value="unknown">Nie wiem, jakie powinny być przepływy</option>
                    <option value="none">Nie wykonano regulacji</option>
                  </select>
                </div>
                <div class="rk-controls-field">
                  <label for="rk-controls-wiring">Etap instalacji</label>
                  <select id="rk-controls-wiring">
                    <option value="wired" selected="">Budowa — można ułożyć przewody</option>
                    <option value="retrofit">Dom wykończony — bez kucia ścian</option>
                    <option value="flexible">Oba rozwiązania są możliwe</option>
                  </select>
                </div>
              </div>
            </div>

            <div id="rk-controls-error" class="rk-controls-error" role="alert"></div>
            <div class="rk-controls-actions">
              <button id="rk-controls-calculate" class="rk-controls-button" type="button">Przeanalizuj koncepcję</button>
              <button id="rk-controls-reset" class="rk-controls-button rk-controls-button-secondary" type="button">Przywróć dane przykładowe</button>
            </div>

            <div class="rk-controls-result-hero is-selective" id="rk-controls-result-hero" aria-live="polite">
              <span class="rk-controls-result-badge" id="rk-controls-result-badge">Wynik analizatora</span>
              <h4 id="rk-controls-result-title">Hybryda: sterowanie tylko tam, gdzie jest potrzebne</h4>
              <p id="rk-controls-result-lead">Regulacja pogodowa i wyregulowane przepływy powinny prowadzić instalację, a termostaty mogą ograniczać wybrane pomieszczenia o innych zyskach lub harmonogramach.</p>
            </div>

            <div class="rk-controls-score-grid" aria-label="Cztery niezależne oceny analizatora">
              <div class="rk-controls-score-card">
                <span>Korzyść z różnicowania stref</span>
                <strong id="rk-controls-benefit-label">Umiarkowana</strong>
                <div class="rk-controls-score-track"><div id="rk-controls-benefit-bar" class="rk-controls-score-fill"></div></div>
              </div>
              <div class="rk-controls-score-card">
                <span>Bezwładność podłogi</span>
                <strong id="rk-controls-inertia-label">Średnia</strong>
                <div class="rk-controls-score-track"><div id="rk-controls-inertia-bar" class="rk-controls-score-fill is-purple"></div></div>
              </div>
              <div class="rk-controls-score-card">
                <span>Ryzyko hydrauliczne</span>
                <strong id="rk-controls-hydraulic-label">Podwyższone</strong>
                <div class="rk-controls-score-track"><div id="rk-controls-hydraulic-bar" class="rk-controls-score-fill is-orange"></div></div>
              </div>
              <div class="rk-controls-score-card">
                <span>Priorytet uporządkowania podstaw</span>
                <strong id="rk-controls-foundation-label">Do sprawdzenia</strong>
                <div class="rk-controls-score-track"><div id="rk-controls-foundation-bar" class="rk-controls-score-fill is-green"></div></div>
              </div>
            </div>

            <div class="rk-controls-result-columns">
              <div class="rk-controls-result-list"><h4>Co zrobić</h4><ul id="rk-controls-recommendations"></ul></div>
              <div class="rk-controls-result-list"><h4>Co może być potrzebne</h4><ul id="rk-controls-components"></ul></div>
              <div class="rk-controls-result-list"><h4>Co koniecznie sprawdzić</h4><ul id="rk-controls-risks"></ul></div>
            </div>

            <div class="rk-controls-result-block">
              <h4>Jak powinna wyglądać kolejność sterowania?</h4>
              <p>Kolory i opisy zmieniają się wraz z wynikiem. Schemat pokazuje logikę funkcjonalną, a nie połączenia elektryczne.</p>
              <div class="rk-controls-system-path" aria-label="Dynamiczna ścieżka sterowania instalacją">
                <div class="rk-controls-system-node"><b>Źródło ciepła</b><span id="rk-controls-path-source">Pompa ciepła prowadzona pogodowo</span><em class="rk-controls-system-state" id="rk-controls-state-source">baza systemu</em></div>
                <div class="rk-controls-system-node"><b>Hydraulika</b><span id="rk-controls-path-hydraulic">Minimalny przepływ wymaga potwierdzenia</span><em class="rk-controls-system-state is-warn" id="rk-controls-state-hydraulic">sprawdź przepływ</em></div>
                <div class="rk-controls-system-node"><b>Rozdzielacz</b><span id="rk-controls-path-distribution">Projektowe lub wyregulowane przepływy pętli</span><em class="rk-controls-system-state" id="rk-controls-state-distribution">nie zastępuj automatyką</em></div>
                <div class="rk-controls-system-node"><b>Pomieszczenia</b><span id="rk-controls-path-zones">Wybrane strefy z termostatami i siłownikami</span><em class="rk-controls-system-state" id="rk-controls-state-zones">sterowanie selektywne</em></div>
              </div>
            </div>

            <div class="rk-controls-chart-box">
              <h4>Co dzieje się po zamknięciu siłownika?</h4>
              <p id="rk-controls-chart-description">W modelu referencyjnym przepływ zostaje odcięty po 2 godzinach, ale standardowy jastrych nadal oddaje wcześniej zgromadzone ciepło. Wykres pokazuje względną reakcję, a nie temperaturę konkretnego domu.</p>
              <div class="rk-controls-chart-wrap"><canvas id="rk-controls-response-chart" aria-label="Referencyjny wykres sygnału siłownika i opóźnionej emisji ciepła podłogi"></canvas></div>
              <div class="rk-controls-chart-legend"><span class="rk-controls-chart-key">sygnał grzania i przepływu</span><span class="rk-controls-chart-key is-orange">względna emisja podłogi</span></div>
            </div>

            <div id="rk-controls-diagnostics" class="rk-controls-diagnostics" aria-live="polite"></div>
            <p class="rk-controls-analyzer-disclaimer">Analizator nie oblicza oszczędności energii, nie dobiera liczby siłowników i nie potwierdza zgodności z konkretnym źródłem. Wynik służy do uporządkowania decyzji przed projektem i doborem automatyki.</p>
          </div>
        </div>
      </section>

      <aside class="rk-controls-cta rk-controls-mid-cta" aria-label="Zamówienie projektu przygotowanego pod sterowanie">
        <div class="rk-controls-cta-title">Analizator wskazuje kierunek, ale nie zna oporów i przepływów Twoich pętli</div>
        <p>Jeżeli termostaty mają sterować siłownikami, ich podział trzeba powiązać z długościami obwodów, nastawami rozdzielacza, pompą obiegową i wymaganiami źródła. Projekt określa również, które pętle mogą się zamykać i jak zachować stabilny przepływ.</p>
        <a class="rk-controls-cta-button rk-controls-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki przygotowany pod sterowanie</a>
      </aside>

      <section class="rk-controls-section" id="rk-controls-kiedy-warto">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Rzeczywiste powody</span>
          <h2>Kiedy pełne sterowanie strefowe ma sens?</h2>
          <p>Najmocniejszym argumentem nie jest sama powierzchnia domu, lecz różnica między wymaganiami poszczególnych pomieszczeń.</p>
        </div>
        <div class="rk-controls-table-wrap">
          <table class="rk-controls-table">
            <thead><tr><th>Sytuacja</th><th>Dlaczego sterowanie może pomóc</th><th>Na co uważać</th></tr></thead>
            <tbody>
              <tr><td data-label="Sytuacja"><strong>Łazienka i sypialnie</strong></td><td data-label="Możliwa korzyść">Pomieszczenia mogą mieć odmienne temperatury komfortu i różny rytm użytkowania.</td><td data-label="Na co uważać">Wspólna pętla dla kilku pomieszczeń uniemożliwi ich niezależne sterowanie.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Salon z dużym przeszkleniem</strong></td><td data-label="Możliwa korzyść">Termostat może ograniczyć dalsze zasilanie strefy podczas silnych zysków słonecznych.</td><td data-label="Na co uważać">Jastrych nadal oddaje ciepło po zamknięciu przepływu.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Kominek lub inne źródło miejscowe</strong></td><td data-label="Możliwa korzyść">Ograniczenie podłogi w ogrzanej części domu zmniejsza nakładanie się źródeł.</td><td data-label="Na co uważać">Ciepło może przemieszczać się do sąsiednich stref i zakłócać odczyty.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Pokój gościnny i pomieszczenia okresowe</strong></td><td data-label="Możliwa korzyść">Można utrzymywać inną temperaturę przez dłuższy okres, a nie tylko przez kilka godzin.</td><td data-label="Na co uważać">Powrót do komfortu jest wolniejszy niż przy grzejniku.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Różne kondygnacje i ekspozycje</strong></td><td data-label="Możliwa korzyść">Strefy mogą mieć inne zyski i inną dynamikę cieplną.</td><td data-label="Na co uważać">Najpierw trzeba wykluczyć błąd przepływów między rozdzielaczami.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-kiedy-nie">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Mniej elektroniki może działać lepiej</span>
          <h2>Kiedy sterowniki pokojowe mogą niewiele zmienić?</h2>
          <p>Nie każda pętla potrzebuje cyklicznego zamykania. W stabilnym budynku dobrze ustawiona temperatura wody i przepływy często wykonują większość pracy.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-blue"><h3>Jedna strefa funkcjonalna</h3><p>Mały dom, mieszkanie albo otwarty parter z podobną temperaturą we wszystkich częściach nie zawsze uzasadnia osobny termostat dla każdej pętli.</p></div>
          <div class="rk-controls-card rk-controls-card-purple"><h3>Ciężka płyta grzewcza</h3><p>Duża masa akumulacyjna reaguje wolno. Krótkie harmonogramy i szybkie przełączanie mogą nie zdążyć wpłynąć na komfort w oczekiwanym czasie.</p></div>
          <div class="rk-controls-card rk-controls-card-green"><h3>Dobrze ustawiona pogodówka</h3><p>Jeżeli źródło dostarcza dokładnie tyle ciepła, ile aktualnie potrzebuje budynek, termostaty mogą pełnić głównie funkcję ograniczników.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Niewyregulowana instalacja</h3><p>Gdy jedne pomieszczenia są zimne, a inne gorące z powodu błędnych przepływów, siłowniki mogą ukryć objaw bez usunięcia przyczyny.</p></div>
        </div>
        <div class="rk-controls-warning" style="margin-top:18px"><p><strong>Brak pełnego strefowania nie oznacza braku regulacji.</strong> Instalacja nadal potrzebuje kontroli temperatury zasilania, prawidłowej pracy pompy i wyważenia przepływów.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-hybryda">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Rozwiązanie pośrednie</span>
          <h2>Sterowanie selektywne: termostaty tylko w wybranych strefach</h2>
          <p>Układ hybrydowy zachowuje stabilną bazę hydrauliczną i dodaje automatykę tam, gdzie pomieszczenie rzeczywiście zachowuje się inaczej.</p>
        </div>
        <div class="rk-controls-grid-3">
          <div class="rk-controls-card rk-controls-card-blue"><h3>Pętle referencyjne</h3><p>Część prawidłowo wyregulowanych obwodów może pozostać otwarta, jeśli jest to zgodne z koncepcją hydrauliki i wymaganiami źródła.</p></div>
          <div class="rk-controls-card rk-controls-card-green"><h3>Strefy problematyczne</h3><p>Siłowniki obsługują salon z dużymi zyskami, sypialnie o niższej nastawie, łazienkę albo rzadko używane pokoje.</p></div>
          <div class="rk-controls-card rk-controls-card-purple"><h3>Pogodówka jako baza</h3><p>Źródło nadal reguluje temperaturę wody według warunków zewnętrznych, zamiast czekać wyłącznie na sygnał jednego termostatu.</p></div>
        </div>
        <p style="margin-top:18px">Szczegółową budowę listwy, termostatów i siłowników opisuje osobny poradnik o tym, <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">jak działa sterowanie strefowe ogrzewaniem</a>. Ten artykuł pozostaje przewodnikiem decyzyjnym i nie dubluje instrukcji podłączania.</p>
      </section>

      <section class="rk-controls-section" id="rk-controls-pompa-ciepla">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Najczęstszy punkt sporny</span>
          <h2>Sterowniki do podłogówki przy pompie ciepła</h2>
          <p>Pompa ciepła może współpracować ze strefami, ale zamykanie obwodów musi być podporządkowane minimalnemu przepływowi, objętości instalacji i logice modulacji urządzenia.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-green">
            <h3>Co zwykle sprzyja efektywności?</h3>
            <ul>
              <li>możliwie niska temperatura zasilania,</li>
              <li>długa i spokojna praca zamiast częstych startów,</li>
              <li>regulacja pogodowa dopasowana do budynku,</li>
              <li>stabilny przepływ przez wymiennik i instalację,</li>
              <li>łagodne ograniczanie wybranych pomieszczeń.</li>
            </ul>
          </div>
          <div class="rk-controls-card rk-controls-card-orange">
            <h3>Co może pogorszyć pracę?</h3>
            <ul>
              <li>zamknięcie większości pętli jednocześnie,</li>
              <li>brak odbioru minimalnej mocy źródła,</li>
              <li>agresywne obniżenia i szybkie dogrzewanie,</li>
              <li>sterowanie typu włącz–wyłącz całym domem,</li>
              <li>próba naprawienia złych przepływów siłownikami.</li>
            </ul>
          </div>
        </div>
        <div class="rk-controls-note" style="margin-top:18px"><p><strong>Bufor nie jest automatyczną odpowiedzią.</strong> Czasem wystarczą prawidłowo otwarte obwody i zachowanie wymaganej objętości, a czasem potrzebny jest bufor, obejście lub rozdzielenie obiegów. Decyzję podejmuje się na podstawie hydrauliki oraz wymagań źródła, a nie jednej liczby litrów na kW.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-kotly">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Kocioł gazowy, pelletowy i elektryczny</span>
          <h2>Czy rodzaj źródła zmienia sposób sterowania strefami?</h2>
          <p>Termostat nadal otwiera albo zamyka obwód, ale źródła różnią się modulacją, temperaturą roboczą, bezwładnością i reakcją na utratę odbioru ciepła.</p>
        </div>
        <div class="rk-controls-table-wrap">
          <table class="rk-controls-table">
            <thead><tr><th>Źródło</th><th>Najważniejsza zasada</th><th>Typowe ryzyko</th></tr></thead>
            <tbody>
              <tr><td data-label="Źródło"><strong>Kocioł gazowy kondensacyjny</strong></td><td data-label="Najważniejsza zasada">Wykorzystać modulację i pogodowe prowadzenie niskiej temperatury wody.</td><td data-label="Typowe ryzyko">Mały odbiór po zamknięciu stref może prowadzić do częstych startów.</td></tr>
              <tr><td data-label="Źródło"><strong>Kocioł na pellet</strong></td><td data-label="Najważniejsza zasada">Oddzielić wymagania obiegu kotłowego od niskotemperaturowej podłogówki.</td><td data-label="Typowe ryzyko">Źródło o większej bezwładności nie powinno tracić odbioru w sposób przypadkowy.</td></tr>
              <tr><td data-label="Źródło"><strong>Kocioł elektryczny</strong></td><td data-label="Najważniejsza zasada">Koordynować sygnał zapotrzebowania z pompą i liczbą otwartych obwodów.</td><td data-label="Typowe ryzyko">Proste sterowanie włącz–wyłącz może zwiększać liczbę cykli.</td></tr>
              <tr><td data-label="Źródło"><strong>Sieć lub inne źródło</strong></td><td data-label="Najważniejsza zasada">Sprawdzić warunki temperaturowe i hydrauliczne konkretnego węzła.</td><td data-label="Typowe ryzyko">Brak jednej uniwersalnej logiki dla wszystkich układów.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-bezwladnosc">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Siłownik zamyka wodę, nie energię w jastrychu</span>
          <h2>Bezwładność ogrzewania podłogowego a termostat</h2>
          <p>Po odcięciu przepływu ciepła podłoga nadal oddaje energię zmagazynowaną w konstrukcji. Im cięższa płyta, tym ostrożniej należy podchodzić do harmonogramów i dużych obniżeń temperatury.</p>
        </div>
        <div class="rk-controls-grid-3">
          <div class="rk-controls-card rk-controls-card-green"><h3>System lekki lub suchy</h3><p>Mniejsza masa może szybciej reagować na zmianę zasilania, ale dokładna dynamika zależy od całej konstrukcji i okładziny.</p></div>
          <div class="rk-controls-card rk-controls-card-blue"><h3>Standardowy jastrych</h3><p>Regulator powinien uwzględniać opóźnienie. Krótkie wyłączenia nie muszą powodować zauważalnej zmiany temperatury pokoju.</p></div>
          <div class="rk-controls-card rk-controls-card-purple"><h3>Gruba płyta akumulacyjna</h3><p>Najważniejsze jest łagodne prowadzenie temperatury. Duże obniżenia dobowe mogą działać zbyt późno względem planu użytkownika.</p></div>
        </div>
        <div class="rk-controls-warning" style="margin-top:18px"><p><strong>Nie ustawiamy z artykułu uniwersalnego cyklu PWM, TPI ani histerezy.</strong> Parametry regulatora trzeba dopasować do instrukcji automatyki, czasu pracy siłownika oraz obserwowanej reakcji konkretnej podłogi.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-elementy">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Co rzeczywiście kupujesz?</span>
          <h2>Termostat, listwa, siłownik i sygnał do źródła</h2>
          <p>Kompletny system to nie sam panel na ścianie. Wszystkie elementy muszą mieć zgodne napięcie, sposób komunikacji i logikę działania.</p>
        </div>
        <div class="rk-controls-grid-4">
          <div class="rk-controls-card rk-controls-card-blue"><h3>Termostat</h3><p>Mierzy temperaturę w reprezentatywnym miejscu i przekazuje zapotrzebowanie strefy. Może także obsługiwać czujnik podłogowy.</p></div>
          <div class="rk-controls-card rk-controls-card-purple"><h3>Listwa sterująca</h3><p>Zbiera sygnały z pomieszczeń, zasila siłowniki i może sterować pompą lub przekazywać żądanie grzania.</p></div>
          <div class="rk-controls-card rk-controls-card-green"><h3>Siłownik</h3><p>Zmienia położenie zaworu na belce rozdzielacza. Typ NC albo NO musi być zgodny z projektem i logiką listwy.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Źródło i pompa</h3><p>Muszą otrzymać właściwy sygnał oraz zachować dopuszczalny czas pracy, przepływ i odbiór energii.</p></div>
        </div>
        <h3 style="margin-top:27px">NC czy NO?</h3>
        <p>Siłownik NC jest zamknięty bez zasilania, a NO pozostaje wtedy otwarty. Nie ma jednej odpowiedzi odpowiedniej dla każdej instalacji. Trzeba ocenić stan bezpieczny przy zaniku napięcia, zgodność listwy, pobór energii i oczekiwaną pracę zaworów. NC jest często spotykany, ale sama popularność nie zastępuje sprawdzenia kompatybilności.</p>
      </section>

      <section class="rk-controls-section" id="rk-controls-czujnik">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Temperatura powietrza i powierzchni to dwa różne pomiary</span>
          <h2>Czy potrzebny jest czujnik temperatury podłogi?</h2>
          <p>Czujnik podłogowy może pełnić funkcję ogranicznika albo wspomagać komfort. Nie jest jednak automatycznie obowiązkowy przy każdej okładzinie i nie zastępuje prawidłowego ograniczenia temperatury wody.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-green">
            <h3>Kiedy jest szczególnie przydatny?</h3>
            <ul>
              <li>gdy dokumentacja okładziny podaje maksymalną temperaturę,</li>
              <li>w pomieszczeniu, gdzie ważna jest minimalna temperatura komfortowa podłogi,</li>
              <li>gdy regulator obsługuje jednocześnie czujnik powietrza i ograniczenie podłogi,</li>
              <li>w układzie wymagającym dodatkowej kontroli lokalnej.</li>
            </ul>
          </div>
          <div class="rk-controls-card rk-controls-card-orange">
            <h3>Czego czujnik nie gwarantuje?</h3>
            <ul>
              <li>nie mierzy najwyższej temperatury całej powierzchni,</li>
              <li>nie naprawia zbyt wysokiej temperatury zasilania,</li>
              <li>nie zastępuje ograniczeń konstrukcji podłogi,</li>
              <li>nie powinien być zabetonowany bez możliwości wymiany.</li>
            </ul>
          </div>
        </div>
        <div class="rk-controls-note" style="margin-top:18px"><p>Czujnik umieszcza się zgodnie z instrukcją systemu, zwykle w wymiennym peszlu i w reprezentatywnym miejscu między przewodami. Limit należy przyjąć z dokumentacji konkretnej okładziny, a nie z jednej wartości powtarzanej dla wszystkich paneli i podłóg drewnianych. Więcej o granicach pracy znajdziesz w opracowaniu o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-przewodowe">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Nowa budowa i modernizacja</span>
          <h2>Sterowanie przewodowe czy bezprzewodowe?</h2>
          <p>Nie będziemy przypisywać systemom fikcyjnych procentów niezawodności. Wybór zależy od etapu inwestycji, możliwości prowadzenia przewodów i akceptowanej obsługi.</p>
        </div>
        <div class="rk-controls-table-wrap">
          <table class="rk-controls-table">
            <thead><tr><th>Kryterium</th><th>System przewodowy</th><th>System bezprzewodowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Kryterium"><strong>Najlepszy etap</strong></td><td data-label="Przewodowy">Budowa lub generalny remont przed wykonaniem tynków.</td><td data-label="Bezprzewodowy">Wykończony dom albo modernizacja bez bruzdowania ścian.</td></tr>
              <tr><td data-label="Kryterium"><strong>Zasilanie</strong></td><td data-label="Przewodowy">Zależne od architektury 24 V, 230 V albo magistrali.</td><td data-label="Bezprzewodowy">Termostaty mogą wymagać baterii lub lokalnego zasilania.</td></tr>
              <tr><td data-label="Kryterium"><strong>Łączność</strong></td><td data-label="Przewodowy">Brak zależności od zasięgu radiowego, ale konieczne prawidłowe okablowanie.</td><td data-label="Bezprzewodowy">Zasięg trzeba sprawdzić w rzeczywistym budynku, szczególnie przez stropy i grube ściany.</td></tr>
              <tr><td data-label="Kryterium"><strong>Serwis</strong></td><td data-label="Przewodowy">Warto opisać przewody i zostawić dokumentację połączeń.</td><td data-label="Bezprzewodowy">Trzeba kontrolować baterie, parowanie urządzeń i dostępność komunikacji.</td></tr>
              <tr><td data-label="Kryterium"><strong>Rozbudowa</strong></td><td data-label="Przewodowy">Łatwa, jeśli wcześniej pozostawiono przewody i rezerwę w listwie.</td><td data-label="Bezprzewodowy">Zwykle prostsza bez prac budowlanych, ale zależna od kompatybilności systemu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-strefy">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Podział zaczyna się na rzucie</span>
          <h2>Jak prawidłowo podzielić podłogówkę na strefy?</h2>
          <p>Termostat powinien sterować grupą pętli obsługujących obszar o podobnej funkcji, ekspozycji i oczekiwanej temperaturze.</p>
        </div>
        <div class="rk-controls-steps">
          <div class="rk-controls-step"><h3>Zaznacz funkcje pomieszczeń</h3><p>Oddziel łazienki, sypialnie, strefę dzienną, pokoje okresowe oraz pomieszczenia o innych temperaturach projektowych.</p></div>
          <div class="rk-controls-step"><h3>Sprawdź zyski ciepła</h3><p>Duże przeszklenia, kominek, sprzęt i liczba użytkowników mogą uzasadniać osobną regulację części budynku.</p></div>
          <div class="rk-controls-step"><h3>Przypisz pętle do pomieszczeń</h3><p>Wszystkie obwody jednego dużego pokoju powinny otrzymywać spójny sygnał, jeżeli pracują jako jedna strefa.</p></div>
          <div class="rk-controls-step"><h3>Nie prowadź jednej pętli przez różne strefy</h3><p>Jeżeli jedna pętla ogrzewa dwa pomieszczenia o innych nastawach, żaden termostat nie rozdzieli ich fizycznie po wykonaniu posadzki.</p></div>
          <div class="rk-controls-step"><h3>Policz udział zamykanych obwodów</h3><p>Sprawdź wariant, w którym wiele stref osiąga temperaturę jednocześnie. Pompa i źródło nadal muszą pracować w bezpiecznym zakresie.</p></div>
          <div class="rk-controls-step"><h3>Zaplanuj przewody i czujniki</h3><p>Na etapie budowy zdecyduj o trasach, napięciu, miejscu listwy, sygnale do pompy oraz wymiennych peszlach czujników.</p></div>
        </div>
        <p style="margin-top:18px">Podział pętli salonu powinien wynikać z geometrii i długości obwodów. Pomocne będzie opracowanie <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">ile pętli podłogówki zaplanować w salonie</a> oraz poradnik o <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">dopuszczalnej długości jednej pętli</a>.</p>
      </section>

      <section class="rk-controls-section" id="rk-controls-hydraulika">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Najważniejsza część, której nie widać na termostacie</span>
          <h2>Zamykanie pętli, minimalny przepływ, pompa i bufor</h2>
          <p>Każdy zamknięty zawór zmienia sieć hydrauliczną. Przepływ całkowity oraz punkt pracy pompy nie pozostają wtedy takie same.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-orange">
            <h3>Scenariusz krytyczny</h3>
            <p>Większość termostatów osiąga temperaturę, siłowniki zamykają pętle, a źródło nadal zgłasza pracę. Trzeba przewidzieć, gdzie popłynie woda i gdzie zostanie odebrana minimalna moc.</p>
            <ul>
              <li>minimalny przepływ źródła,</li>
              <li>minimalna objętość instalacji,</li>
              <li>minimalny czas pracy,</li>
              <li>reakcja pompy na wzrost różnicy ciśnień.</li>
            </ul>
          </div>
          <div class="rk-controls-card rk-controls-card-green">
            <h3>Możliwe rozwiązania</h3>
            <p>Projekt może wykorzystywać właściwie dobrane obwody stale otwarte, regulację pompy, obejście, dodatkową objętość, bufor lub rozdzielenie hydrauliczne. Nie każde rozwiązanie pasuje do każdego źródła.</p>
            <p>Przeczytaj także o <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgle hydraulicznym w podłogówce</a>.</p>
          </div>
        </div>
        <div class="rk-controls-warning" style="margin-top:18px"><p><strong>Trybu pompy nie wybieramy z jednego zdania w internecie.</strong> Charakterystykę należy dopasować do instalacji, zaworów i wymaganego punktu pracy. Automatyczna regulacja różnicy ciśnień może pomagać po zamykaniu pętli, ale nie tworzy brakującego przepływu przez źródło.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-uruchomienie">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Kolejność uruchomienia</span>
          <h2>Jak skonfigurować automatykę bez uniwersalnych nastaw?</h2>
          <p>Nie podajemy jednego czasu PWM ani jednej histerezy. Zamiast tego stosujemy procedurę, która pozwala ocenić zachowanie całej instalacji.</p>
        </div>
        <div class="rk-controls-steps">
          <div class="rk-controls-step"><h3>Uruchom instalację z otwartymi pętlami</h3><p>Sprawdź odpowietrzenie, przepływy, temperaturę zasilania i powrotu oraz pracę pompy.</p></div>
          <div class="rk-controls-step"><h3>Ustaw przepływy przed automatyką</h3><p>Wprowadź nastawy z projektu albo wykonaj świadomą regulację. Termostat nie powinien dusić stale przewymiarowanej pętli.</p></div>
          <div class="rk-controls-step"><h3>Dopasuj krzywą grzewczą</h3><p>W stabilnych warunkach obniżaj temperaturę wody do poziomu zapewniającego komfort bez nadmiernego przegrzewania.</p></div>
          <div class="rk-controls-step"><h3>Sprawdź przypisanie wyjść</h3><p>Każdy termostat musi uruchamiać właściwe siłowniki, a typ NC lub NO powinien odpowiadać konfiguracji listwy.</p></div>
          <div class="rk-controls-step"><h3>Zweryfikuj opóźnienia i sygnał źródła</h3><p>Uwzględnij czas otwarcia siłowników, start pompy i warunki przekazania zapotrzebowania na ciepło.</p></div>
          <div class="rk-controls-step"><h3>Obserwuj pełne cykle cieplne</h3><p>Nie oceniaj podłogówki po kilkunastu minutach. Zapisuj temperaturę, liczbę startów źródła i zachowanie stref przez kilka dni.</p></div>
          <div class="rk-controls-step"><h3>Koryguj małymi krokami</h3><p>Zmieniając wiele parametrów jednocześnie, nie ustalisz, która korekta poprawiła albo pogorszyła pracę.</p></div>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-koszty">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Bez kalkulatora fikcyjnego zwrotu</span>
          <h2>Ile kosztuje sterowanie ogrzewaniem podłogowym?</h2>
          <p>Nie podajemy jednej ceny za punkt ani procentu oszczędności. Koszt zależy od liczby stref, napięcia, komunikacji, funkcji listwy, czujników, okablowania i robocizny.</p>
        </div>
        <div class="rk-controls-table-wrap">
          <table class="rk-controls-table">
            <thead><tr><th>Pozycja budżetu</th><th>Co policzyć</th><th>Co może zmienić koszt</th></tr></thead>
            <tbody>
              <tr><td data-label="Pozycja"><strong>Termostaty</strong></td><td data-label="Co policzyć">Liczbę rzeczywiście niezależnych stref, a nie automatycznie liczbę pomieszczeń.</td><td data-label="Co zmienia koszt">Ekran, programowanie, czujnik podłogi, komunikacja i zasilanie.</td></tr>
              <tr><td data-label="Pozycja"><strong>Siłowniki</strong></td><td data-label="Co policzyć">Liczbę zaworów obsługujących pętle przypisane do stref.</td><td data-label="Co zmienia koszt">Napięcie, NC lub NO, skok i zgodność z zaworem.</td></tr>
              <tr><td data-label="Pozycja"><strong>Listwa lub moduły</strong></td><td data-label="Co policzyć">Liczbę wejść termostatów, wyjść siłowników i sygnałów do pompy lub źródła.</td><td data-label="Co zmienia koszt">Rozbudowa, komunikacja, opóźnienia, integracja i liczba rozdzielaczy.</td></tr>
              <tr><td data-label="Pozycja"><strong>Instalacja elektryczna</strong></td><td data-label="Co policzyć">Przewody, zabezpieczenia, puszki, zasilanie rozdzielacza i opis obwodów.</td><td data-label="Co zmienia koszt">Etap budowy, długość tras oraz konieczność prac wykończeniowych.</td></tr>
              <tr><td data-label="Pozycja"><strong>Uruchomienie</strong></td><td data-label="Co policzyć">Przypisanie stref, test siłowników, konfigurację pompy i sprawdzenie źródła.</td><td data-label="Co zmienia koszt">Liczba stref, brak dokumentacji i konieczność poprawiania hydrauliki.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-controls-note" style="margin-top:18px"><p><strong>Oszczędność nie wynika z zakupu urządzeń.</strong> Pojawia się tylko wtedy, gdy automatyka obniża średnią temperaturę tam, gdzie wcześniej była zbyt wysoka, ogranicza zbędne grzanie albo poprawia wykorzystanie zysków bez pogarszania pracy źródła.</p></div>
      </section>

      <section class="rk-controls-section" id="rk-controls-bledy">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Błędy powtarzające się na budowach</span>
          <h2>Najczęstsze błędy przy sterownikach do podłogówki</h2>
          <p>Najdroższe problemy zwykle nie wynikają z braku funkcji aplikacji, lecz z niewłaściwego podziału stref i pominięcia hydrauliki.</p>
        </div>
        <div class="rk-controls-grid-2">
          <div class="rk-controls-card rk-controls-card-orange"><h3>Automatyka zamiast regulacji</h3><p>Siłowniki zamykają przegrzewane pętle, ale po ich ponownym otwarciu nadal płynie przez nie za dużo wody.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Termostat w złym miejscu</h3><p>Słońce, przeciąg, telewizor, kuchnia albo zimna ściana zafałszowują pomiar reprezentujący całą strefę.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Jedna pętla w dwóch pomieszczeniach</h3><p>Po wykonaniu posadzki nie można niezależnie sterować częściami jednego obwodu.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Zamykanie prawie całej instalacji</h3><p>Brak analizy minimalnego przepływu może prowadzić do alarmów, szumów, krótkich cykli albo niestabilnej pracy.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Niezgodne napięcie i logika</h3><p>Listwa, termostaty i siłowniki 24 V lub 230 V oraz typ NC albo NO muszą tworzyć jeden zgodny system.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Duże obniżenie na kilka godzin</h3><p>Podłoga może zacząć stygnąć dopiero pod koniec nieobecności, a późniejsze odzyskanie komfortu będzie opóźnione.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Czujnik zatopiony bez peszla</h3><p>Awaria czujnika może wymagać ingerencji w wykończoną podłogę, jeśli wcześniej nie zapewniono możliwości jego wymiany.</p></div>
          <div class="rk-controls-card rk-controls-card-orange"><h3>Brak dokumentacji przypisania pętli</h3><p>Podczas uruchomienia nie wiadomo, który termostat ma sterować konkretnym zaworem na rozdzielaczu.</p></div>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-checklista">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Przed zakupem i przed tynkami</span>
          <h2>Checklista planowania sterowania podłogówką</h2>
          <p>Jeśli na większość punktów nie potrafisz jeszcze odpowiedzieć, zacznij od koncepcji instalacji, a nie od wyboru aplikacji i wyglądu termostatu.</p>
        </div>
        <ul class="rk-controls-checklist">
          <li>Znam projektową stratę ciepła każdego pomieszczenia.</li>
          <li>Każda pętla jest jednoznacznie przypisana do strefy.</li>
          <li>Mam długości obwodów i wymagane przepływy.</li>
          <li>Wiem, które pomieszczenia rzeczywiście potrzebują innej temperatury.</li>
          <li>Znam sposób regulacji temperatury zasilania.</li>
          <li>Znam minimalny przepływ i wymaganą objętość źródła.</li>
          <li>Sprawdziłem wariant jednoczesnego zamknięcia wielu pętli.</li>
          <li>Wybrałem typ przewodowy albo radiowy odpowiedni do etapu budowy.</li>
          <li>Napięcie listwy i siłowników jest zgodne.</li>
          <li>Typ NC albo NO odpowiada logice układu.</li>
          <li>Termostaty mają reprezentatywne miejsca montażu.</li>
          <li>Czujniki podłogowe można wymienić bez kucia.</li>
          <li>Znam ograniczenia temperaturowe okładziny.</li>
          <li>Dokumentacja opisuje przewody, wyjścia i strefy.</li>
        </ul>
      </section>

      <section class="rk-controls-section" id="rk-controls-faq">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Szybkie odpowiedzi</span>
          <h2>Sterowniki do ogrzewania podłogowego — FAQ</h2>
          <p>Odpowiedzi celowo unikają uniwersalnych procentów oszczędności i ustawień oderwanych od konkretnego systemu.</p>
        </div>
        <div class="rk-controls-faq">
          <details><summary>Czy podłogówka może działać bez sterowników pokojowych?</summary><div class="rk-controls-faq-answer"><p>Tak. Prawidłowo zaprojektowana i wyregulowana instalacja może pracować na regulacji pogodowej źródła z otwartymi pętlami. Termostaty są wtedy opcjonalnym ograniczeniem wybranych pomieszczeń, a nie warunkiem działania podłogi.</p></div></details>
          <details><summary>Czy trzeba montować termostat w każdym pomieszczeniu?</summary><div class="rk-controls-faq-answer"><p>Nie. Osobny termostat ma sens dla rzeczywiście niezależnej strefy. Otwarta część dzienna o podobnej temperaturze może tworzyć jedną strefę, natomiast łazienka, sypialnie lub pokój okresowy mogą wymagać oddzielnego sterowania.</p></div></details>
          <details><summary>Czy sterowniki zawsze obniżają rachunki?</summary><div class="rk-controls-faq-answer"><p>Nie. Oszczędność zależy od tego, czy wcześniej dochodziło do przegrzewania lub zbędnego ogrzewania. W dobrze ustawionej instalacji dodatkowa redukcja zużycia może być niewielka, a źle zaprojektowane strefy mogą pogorszyć pracę źródła.</p></div></details>
          <details><summary>Czy pompa ciepła potrzebuje siłowników na wszystkich pętlach?</summary><div class="rk-controls-faq-answer"><p>Nie. Często stosuje się pogodowe prowadzenie temperatury i selektywne ograniczanie wybranych stref. Jeżeli siłowniki mogą zamknąć znaczną część instalacji, trzeba sprawdzić minimalny przepływ, objętość i sposób reakcji pompy ciepła.</p></div></details>
          <details><summary>Co jest ważniejsze: sterownik pogodowy czy pokojowy?</summary><div class="rk-controls-faq-answer"><p>Pełnią inne funkcje. Pogodówka prowadzi temperaturę wody dla całej instalacji, a termostat pokojowy ogranicza wybraną strefę na podstawie pomiaru wewnętrznego. W podłogówce często współpracują zamiast się zastępować.</p></div></details>
          <details><summary>Czy przy sterowaniu strefowym zawsze potrzebny jest bufor?</summary><div class="rk-controls-faq-answer"><p>Nie zawsze. Bufor jest jednym z możliwych rozwiązań, ale decyzja zależy od źródła, minimalnego przepływu, wymaganej objętości, liczby pozostających otwartych obwodów i hydrauliki całego układu.</p></div></details>
          <details><summary>Jaka histereza jest najlepsza do podłogówki?</summary><div class="rk-controls-faq-answer"><p>Nie ma jednej wartości dla wszystkich systemów. Ustawienie zależy od algorytmu regulatora, konstrukcji podłogi, miejsca czujnika i reakcji budynku. Należy rozpocząć od zaleceń automatyki i korygować małymi krokami po obserwacji pełnych cykli.</p></div></details>
          <details><summary>Czy PWM lub TPI jest zawsze lepsze od histerezy?</summary><div class="rk-controls-faq-answer"><p>Algorytmy czasowo-proporcjonalne mogą lepiej uwzględniać bezwładność, ale wymagają właściwej konfiguracji i zgodności z listwą, siłownikami oraz źródłem. Nie należy kopiować uniwersalnego czasu cyklu z innej instalacji.</p></div></details>
          <details><summary>Czy czujnik podłogowy jest obowiązkowy przy panelach?</summary><div class="rk-controls-faq-answer"><p>Nie można tego rozstrzygnąć dla wszystkich paneli jednym zdaniem. Trzeba sprawdzić wymagania konkretnej okładziny i systemu. Czujnik może służyć jako dodatkowy ogranicznik, ale nie zastępuje właściwej temperatury zasilania.</p></div></details>
          <details><summary>Czy po wykończeniu domu można zamontować sterowanie bezprzewodowe?</summary><div class="rk-controls-faq-answer"><p>Tak, jeśli wybrany system zapewnia odpowiedni zasięg i można zasilić listwę oraz siłowniki przy rozdzielaczu. Przed zakupem warto sprawdzić komunikację w rzeczywistym budynku i zgodność wszystkich elementów.</p></div></details>
          <details><summary>Czy siłowniki naprawią źle wyregulowane rotametry?</summary><div class="rk-controls-faq-answer"><p>Nie. Po otwarciu zaworu przez pętlę nadal powinien płynąć właściwy strumień wody. Najpierw ustala się przepływy, a dopiero później automatyka okresowo ogranicza wybrane obwody.</p></div></details>
        </div>
      </section>

      <section class="rk-controls-section" id="rk-controls-zrodla">
        <div class="rk-controls-section-head">
          <span class="rk-controls-eyebrow">Dokumenty publiczne i normalizacyjne</span>
          <h2>Źródła i podstawa techniczna opracowania</h2>
          <p>Linki zewnętrzne prowadzą wyłącznie do organizacji normalizacyjnych i instytucji publicznych. Parametry konkretnego regulatora, siłownika i źródła należy dodatkowo potwierdzić w ich dokumentacji, bez linkowania z artykułu do producentów.</p>
        </div>
        <ol class="rk-controls-sources">
          <li><a href="https://www.iso.org/standard/65883.html" target="_blank" rel="noopener nofollow">ISO 52120-1:2021</a> — funkcje automatyki, sterowania i zarządzania technicznego wpływające na charakterystykę energetyczną budynków.</li>
          <li><a href="https://www.iso.org/standard/74289.html" target="_blank" rel="noopener nofollow">ISO/TR 52120-2:2021</a> — wyjaśnienia i uzasadnienie metodyki ISO 52120-1.</li>
          <li><a href="https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX:32024L1275" target="_blank" rel="noopener nofollow">Dyrektywa Parlamentu Europejskiego i Rady (UE) 2024/1275</a> — charakterystyka energetyczna budynków i rola systemów automatyki oraz sterowania.</li>
          <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — wyznaczanie mocy systemów ogrzewania i chłodzenia płaszczyznowego.</li>
          <li><a href="https://www.energy.gov/eere/buildings/articles/building-america-technology-solutions-case-study-field-performance-inverter" target="_blank" rel="noopener nofollow">U.S. Department of Energy — terenowa analiza pracy pomp ciepła</a> — między innymi wpływ strategii obniżania i odzyskiwania temperatury na eksploatację.</li>
          <li><a href="https://assets.publishing.service.gov.uk/media/5a82e1daed915d74e62381a7/heating-controls-international-evidence.pdf" target="_blank" rel="noopener nofollow">UK Government — międzynarodowy przegląd dowodów dotyczących sterowania ogrzewaniem</a>.</li>
        </ol>
        <div class="rk-controls-warning"><p><strong>Zakres opracowania:</strong> artykuł nie zastępuje projektu elektrycznego, instrukcji źródła, dokumentacji okładziny ani obliczeń hydraulicznych. Ustawienia automatyki należy sprawdzić w warunkach konkretnej instalacji.</p></div>
      </section>

      <section class="rk-controls-author" id="rk-controls-autor" aria-label="Autor opracowania">
        <input type="radio" name="rk-controls-author-tabs" id="rk-controls-author-about" checked="">
        <input type="radio" name="rk-controls-author-tabs" id="rk-controls-author-exp">
        <input type="radio" name="rk-controls-author-tabs" id="rk-controls-author-method">

        <header class="rk-controls-author-head">
          <div>
            <span class="rk-controls-kicker">Autor i odpowiedzialność merytoryczna</span>
            <h2>Robert Kucharski</h2>
            <p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p>
          </div>
          <span class="rk-controls-author-mark">AUTOMATYKA • HYDRAULIKA • OGRZEWANIE PŁASZCZYZNOWE</span>
        </header>

        <div class="rk-controls-author-layout">
          <aside class="rk-controls-author-side">
            <div class="rk-controls-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-controls-author-name">Robert Kucharski</div>
            <div class="rk-controls-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-controls-author-social-label">Profile autora</div>
            <div class="rk-controls-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.3 3.6A2.3 2.3 0 1 1 .7 3.6a2.3 2.3 0 0 1 4.6 0ZM1.1 8h4.3v13H1.1V8Zm6.9 0h4.1v1.8h.1c.6-1.1 2-2.3 4.1-2.3 4.4 0 5.2 2.9 5.2 6.7V21h-4.3v-6c0-1.4 0-3.3-2-3.3s-2.3 1.6-2.3 3.2V21H8V8Z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M24 12.1C24 5.4 18.6 0 12 0S0 5.4 0 12.1C0 18.1 4.4 23 10.1 24v-8.4H7.1v-3.5h3V9.5c0-3 1.8-4.7 4.5-4.7 1.3 0 2.7.2 2.7.2v3h-1.5c-1.5 0-1.9.9-1.9 1.8v2.2h3.3l-.5 3.5h-2.8V24C19.6 23 24 18.1 24 12.1Z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22h-6.3L12 15.6 6.4 22H3.3l7.2-8.2L.8 2h6.5l4.4 5.8L18.9 2Zm-1.1 17.9h1.7L6.4 4H4.6l13.2 15.9Z"></path></svg></a>
            </div>
          </aside>

          <div class="rk-controls-author-main">
            <blockquote class="rk-controls-author-quote"><p>„Dobry sterownik nie naprawia hydrauliki. Najpierw trzeba wiedzieć, ile wody potrzebuje każda pętla i co zrobi źródło, gdy część obwodów się zamknie. Dopiero później wybiera się liczbę stref i sposób regulacji.”</p></blockquote>
            <div class="rk-controls-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-controls-author-tab" for="rk-controls-author-about">O autorze</label>
              <label class="rk-controls-author-tab" for="rk-controls-author-exp">Doświadczenie</label>
              <label class="rk-controls-author-tab" for="rk-controls-author-method">Metodyka</label>
            </div>
            <div class="rk-controls-author-panel rk-controls-author-panel-about">
              <p>Robert Kucharski opracowuje projekty wodnego ogrzewania podłogowego oraz instalacji grzewczych dla domów nowych i modernizowanych. Łączy obliczenia strat ciepła z doborem temperatur, rozstawów rur, długości pętli, przepływów, spadków ciśnienia oraz nastaw rozdzielaczy.</p>
              <p>W analizie automatyki traktuje termostaty, listwy i siłowniki jako element całego układu. Podział na strefy jest koordynowany z geometrią pomieszczeń, liczbą pętli, sposobem użytkowania, źródłem ciepła i minimalnym wymaganym przepływem.</p>
              <p><a href="https://projekt-ogrzewania.pl/author/robert-kucharski/">Zobacz profil autora i pozostałe opracowania</a>.</p>
            </div>
            <div class="rk-controls-author-panel rk-controls-author-panel-exp">
              <p>W praktyce projektowej Robert analizuje pętle nie tylko przy pełnym obciążeniu obliczeniowym, lecz również po częściowym zamknięciu stref. Pozwala to sprawdzić zachowanie pompy obiegowej, rozdzielacza i źródła w warunkach, które pojawiają się przez dużą część sezonu.</p>
              <p>Dokumentacja wykonawcza powinna jednoznacznie wskazywać długości obwodów, przepływy, przypisanie pomieszczeń oraz zalecenia dla automatyki. Dzięki temu instalator nie musi tworzyć logiki sterowania dopiero podczas podłączania listwy.</p>
            </div>
            <div class="rk-controls-author-panel rk-controls-author-panel-method">
              <p>Analizator w tym artykule nie wylicza oszczędności ani czasu zwrotu. Porządkuje czynniki decyzyjne i pokazuje konflikt między korzyścią z lokalnej regulacji a ryzykiem ograniczenia przepływu i opóźnioną reakcją podłogi.</p>
              <p>Robert jest właścicielem i autorem trzech serwisów branżowych, których powiązanie podaje jawnie:</p>
              <div class="rk-controls-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>

      <aside class="rk-controls-cta rk-controls-final-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <div class="rk-controls-cta-title">Zaprojektuj pętle, przepływy i strefy jako jeden system</div>
        <p>Projekt ogrzewania podłogowego obejmuje obliczenia cieplne i hydrauliczne, rozrysowane pętle, długości rur, przepływy oraz nastawy rozdzielaczy. Koncepcja sterowania może zostać powiązana z funkcją pomieszczeń i planowanym źródłem ciepła.</p>
        <a class="rk-controls-cta-button rk-controls-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "automatyka grzewcza",
        "sterowanie strefowe",
        "hydraulika instalacji grzewczych",
        "pompy ciepła",
        "obliczenia cieplne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ],
      "worksFor": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Sterowniki do ogrzewania podłogowego – czy warto je montować?",
          "item": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/",
      "name": "Sterowniki do ogrzewania podłogowego – czy warto je montować?",
      "description": "Poradnik i analizator pomagający ocenić, czy w konkretnej instalacji warto zastosować sterowanie centralne, selektywne lub pełne sterowanie strefowe.",
      "inLanguage": "pl-PL",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#breadcrumb"},
      "dateModified": "2026-08-31",
      "mainEntity": {"@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article"}
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/",
      "headline": "Sterowniki do ogrzewania podłogowego – czy warto je montować?",
      "alternativeHeadline": "Termostaty i siłowniki do podłogówki: sterowanie centralne, selektywne czy strefowe",
      "description": "Techniczny poradnik o sterownikach pokojowych, siłownikach, regulacji pogodowej, bezwładności podłogi i minimalnym przepływie źródła.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-31",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webpage"},
      "about": [
        {"@type": "Thing", "name": "Sterowniki do ogrzewania podłogowego"},
        {"@type": "Thing", "name": "Sterowanie strefowe"},
        {"@type": "Thing", "name": "Termostaty pokojowe"},
        {"@type": "Thing", "name": "Siłowniki termoelektryczne"},
        {"@type": "Thing", "name": "Hydraulika ogrzewania podłogowego"}
      ],
      "citation": [
        "https://www.iso.org/standard/65883.html",
        "https://www.iso.org/standard/74289.html",
        "https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX:32024L1275",
        "https://www.iso.org/standard/74683.html",
        "https://www.energy.gov/eere/buildings/articles/building-america-technology-solutions-case-study-field-performance-inverter"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#analyzer",
      "name": "Interaktywny analizator sterowania ogrzewaniem podłogowym",
      "url": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#rk-controls-analizator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "softwareVersion": "1.0",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      },
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "description": "Analizator ocenia zasadność strefowania, bezwładność podłogi, ryzyko hydrauliczne i priorytet uporządkowania podstaw bez obiecywania procentowych oszczędności."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#howto",
      "name": "Jak zaplanować sterowanie ogrzewaniem podłogowym",
      "description": "Procedura planowania i uruchamiania automatyki podłogówki bez uniwersalnych nastaw.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Uruchom otwarte pętle", "text": "Sprawdź odpowietrzenie, przepływy, temperaturę zasilania i powrotu oraz pracę pompy przy otwartych obwodach."},
        {"@type": "HowToStep", "position": 2, "name": "Ustaw przepływy", "text": "Wprowadź przepływy z projektu lub wykonaj świadomą regulację hydrauliczną przed aktywacją siłowników."},
        {"@type": "HowToStep", "position": 3, "name": "Dopasuj temperaturę wody", "text": "Ustaw regulację pogodową albo parametry źródła tak, aby podłoga nie otrzymywała nadmiernej temperatury."},
        {"@type": "HowToStep", "position": 4, "name": "Przypisz termostaty", "text": "Połącz każdy termostat z właściwymi pętlami i potwierdź zgodność typu NC lub NO oraz napięcia."},
        {"@type": "HowToStep", "position": 5, "name": "Sprawdź przepływ minimalny", "text": "Zweryfikuj pracę źródła i pompy po zamknięciu przewidywanej liczby obwodów."},
        {"@type": "HowToStep", "position": 6, "name": "Obserwuj pełne cykle", "text": "Oceniaj temperatury i liczbę startów źródła przez kilka dni, uwzględniając bezwładność podłogi."},
        {"@type": "HowToStep", "position": 7, "name": "Koryguj małymi krokami", "text": "Zmieniaj pojedyncze parametry i zapisuj efekt zamiast jednoczesnej zmiany wielu ustawień."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy podłogówka może działać bez sterowników pokojowych?",
          "acceptedAnswer": {"@type": "Answer", "text": "Tak. Prawidłowo zaprojektowana i wyregulowana instalacja może pracować na regulacji pogodowej źródła z otwartymi pętlami. Termostaty mogą być wtedy ograniczeniem wybranych pomieszczeń, a nie warunkiem działania podłogi."}
        },
        {
          "@type": "Question",
          "name": "Czy trzeba montować termostat w każdym pomieszczeniu?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Osobny termostat ma sens dla rzeczywiście niezależnej strefy. Otwarta część dzienna może tworzyć jedną strefę, a łazienka, sypialnie lub pokój okresowy mogą wymagać oddzielnego sterowania."}
        },
        {
          "@type": "Question",
          "name": "Czy sterowniki zawsze obniżają rachunki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Oszczędność zależy od przegrzewania, wcześniejszego sposobu regulacji i użytkowania. W dobrze ustawionej instalacji dodatkowa redukcja zużycia może być niewielka."}
        },
        {
          "@type": "Question",
          "name": "Czy pompa ciepła potrzebuje siłowników na wszystkich pętlach?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Często stosuje się pogodowe prowadzenie temperatury i selektywne ograniczanie wybranych stref. Przy zamykaniu znacznej części instalacji trzeba sprawdzić minimalny przepływ, objętość i reakcję źródła."}
        },
        {
          "@type": "Question",
          "name": "Co jest ważniejsze: sterownik pogodowy czy pokojowy?",
          "acceptedAnswer": {"@type": "Answer", "text": "Pełnią inne funkcje. Pogodówka prowadzi temperaturę wody, a termostat pokojowy ogranicza wybraną strefę na podstawie pomiaru wewnętrznego. Często powinny współpracować."}
        },
        {
          "@type": "Question",
          "name": "Czy przy sterowaniu strefowym zawsze potrzebny jest bufor?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie zawsze. Decyzja zależy od źródła, minimalnego przepływu, wymaganej objętości, liczby pozostających otwartych obwodów i hydrauliki całego układu."}
        },
        {
          "@type": "Question",
          "name": "Jaka histereza jest najlepsza do podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej wartości dla wszystkich systemów. Ustawienie zależy od algorytmu regulatora, konstrukcji podłogi, czujników i reakcji budynku."}
        },
        {
          "@type": "Question",
          "name": "Czy PWM lub TPI jest zawsze lepsze od histerezy?",
          "acceptedAnswer": {"@type": "Answer", "text": "Algorytmy czasowo-proporcjonalne mogą lepiej uwzględniać bezwładność, ale wymagają właściwej konfiguracji i zgodności z listwą, siłownikami oraz źródłem."}
        },
        {
          "@type": "Question",
          "name": "Czy czujnik podłogowy jest obowiązkowy przy panelach?",
          "acceptedAnswer": {"@type": "Answer", "text": "Należy sprawdzić wymagania konkretnej okładziny i systemu. Czujnik może służyć jako dodatkowy ogranicznik, ale nie zastępuje właściwej temperatury zasilania."}
        },
        {
          "@type": "Question",
          "name": "Czy po wykończeniu domu można zamontować sterowanie bezprzewodowe?",
          "acceptedAnswer": {"@type": "Answer", "text": "Tak, jeżeli system ma odpowiedni zasięg i można zasilić listwę oraz siłowniki przy rozdzielaczu. Trzeba potwierdzić komunikację i kompatybilność elementów."}
        },
        {
          "@type": "Question",
          "name": "Czy siłowniki naprawią źle wyregulowane rotametry?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Po otwarciu zaworu przez pętlę nadal powinien płynąć właściwy strumień wody. Najpierw ustala się przepływy, a dopiero później automatyka ogranicza wybrane obwody."}
        }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-controls-guide");
  if (!root) { return; }

  var defaults = {
    "rk-controls-source": "heat-pump",
    "rk-controls-weather": "yes",
    "rk-controls-layout": "direct",
    "rk-controls-min-flow": "unknown",
    "rk-controls-building": "standard",
    "rk-controls-mass": "standard",
    "rk-controls-temperature-diversity": "moderate",
    "rk-controls-gains": "medium",
    "rk-controls-usage": "variable",
    "rk-controls-floor": "insensitive",
    "rk-controls-loops": 12,
    "rk-controls-controlled-loops": 8,
    "rk-controls-balance": "adjusted",
    "rk-controls-wiring": "wired"
  };

  function byId(id) { return document.getElementById(id); }

  function valueOf(id, fallback) {
    var element = byId(id);
    if (!element) { return fallback; }
    return String(element.value || fallback);
  }

  function numberOf(id, fallback) {
    var element = byId(id);
    if (!element) { return fallback; }
    var parsed = Number.parseFloat(String(element.value).replace(",", "."));
    if (!Number.isFinite(parsed)) { return fallback; }
    return parsed;
  }

  function clamp(value, minimum, maximum) {
    return Math.min(maximum, Math.max(minimum, value));
  }

  function setText(id, value) {
    var element = byId(id);
    if (element) { element.textContent = value; }
  }

  function setList(id, items) {
    var element = byId(id);
    if (!element) { return; }
    element.innerHTML = items.map(function (item) { return "<li>" + item + "</li>"; }).join("");
  }

  function readData() {
    return {
      source: valueOf("rk-controls-source", defaults["rk-controls-source"]),
      weather: valueOf("rk-controls-weather", defaults["rk-controls-weather"]),
      layout: valueOf("rk-controls-layout", defaults["rk-controls-layout"]),
      minFlow: valueOf("rk-controls-min-flow", defaults["rk-controls-min-flow"]),
      building: valueOf("rk-controls-building", defaults["rk-controls-building"]),
      mass: valueOf("rk-controls-mass", defaults["rk-controls-mass"]),
      temperatureDiversity: valueOf("rk-controls-temperature-diversity", defaults["rk-controls-temperature-diversity"]),
      gains: valueOf("rk-controls-gains", defaults["rk-controls-gains"]),
      usage: valueOf("rk-controls-usage", defaults["rk-controls-usage"]),
      floor: valueOf("rk-controls-floor", defaults["rk-controls-floor"]),
      loops: numberOf("rk-controls-loops", defaults["rk-controls-loops"]),
      controlledLoops: numberOf("rk-controls-controlled-loops", defaults["rk-controls-controlled-loops"]),
      balance: valueOf("rk-controls-balance", defaults["rk-controls-balance"]),
      wiring: valueOf("rk-controls-wiring", defaults["rk-controls-wiring"])
    };
  }

  function validateData(data) {
    var errors = [];
    if (!(data.loops >= 1)) { errors.push("Łączna liczba pętli musi być większa od zera."); }
    if (data.loops > 60) { errors.push("W analizatorze można podać maksymalnie 60 pętli."); }
    if (data.controlledLoops < 0) { errors.push("Liczba sterowanych pętli nie może być ujemna."); }
    if (data.controlledLoops > data.loops) { errors.push("Liczba sterowanych pętli nie może przekraczać liczby wszystkich pętli."); }
    if (data.source === "heat-pump") {
      if (data.layout === "direct") {
        if (data.minFlow === "not-applicable") { errors.push("W bezpośrednim układzie z pompą ciepła minimalnego przepływu nie można oznaczyć jako niedotyczącego instalacji."); }
      }
    }
    return errors;
  }

  function calculateScores(data) {
    var benefit = 22;
    if (data.temperatureDiversity === "moderate") { benefit += 15; }
    if (data.temperatureDiversity === "different") { benefit += 32; }
    if (data.temperatureDiversity === "same") { benefit -= 9; }
    if (data.gains === "medium") { benefit += 9; }
    if (data.gains === "high") { benefit += 22; }
    if (data.usage === "variable") { benefit += 13; }
    if (data.usage === "seasonal") { benefit += 21; }
    if (data.building === "renovation") { benefit += 8; }
    if (data.building === "low") { benefit -= 7; }
    if (data.floor === "sensitive") { benefit += 7; }
    if (data.mass === "light") { benefit += 5; }
    if (data.mass === "heavy") { benefit -= 10; }
    benefit = clamp(benefit, 0, 100);

    var inertia = 58;
    if (data.mass === "light") { inertia = 24; }
    if (data.mass === "heavy") { inertia = 90; }

    var closureRatio = data.loops > 0 ? data.controlledLoops / data.loops : 0;
    var hydraulic = 8 + closureRatio * 36;
    if (data.source === "heat-pump") { hydraulic += 19; }
    if (data.source === "gas") { hydraulic += 8; }
    if (data.source === "pellet") { hydraulic += 13; }
    if (data.source === "electric") { hydraulic += 5; }
    if (data.layout === "direct") { hydraulic += 13; }
    if (data.layout === "buffer") { hydraulic -= 17; }
    if (data.layout === "separated") { hydraulic -= 13; }
    if (data.layout === "unknown") { hydraulic += 14; }
    if (data.minFlow === "secured") { hydraulic -= 22; }
    if (data.minFlow === "not-secured") { hydraulic += 29; }
    if (data.minFlow === "unknown") { hydraulic += 16; }
    if (data.minFlow === "not-applicable") { hydraulic -= 5; }
    if (data.balance === "documented") { hydraulic -= 10; }
    if (data.balance === "adjusted") { hydraulic -= 3; }
    if (data.balance === "unknown") { hydraulic += 8; }
    if (data.balance === "none") { hydraulic += 16; }
    hydraulic = clamp(hydraulic, 0, 100);

    var foundation = 0;
    if (data.weather === "no") { foundation += 30; }
    if (data.weather === "unknown") { foundation += 14; }
    if (data.balance === "adjusted") { foundation += 5; }
    if (data.balance === "unknown") { foundation += 23; }
    if (data.balance === "none") { foundation += 42; }
    if (data.layout === "unknown") { foundation += 12; }
    if (data.source === "heat-pump") {
      if (data.minFlow === "not-secured") { foundation += 37; }
      if (data.minFlow === "unknown") { foundation += 20; }
    }
    if (closureRatio > 0.75) { foundation += 8; }
    foundation = clamp(foundation, 0, 100);

    return {
      benefit: benefit,
      inertia: inertia,
      hydraulic: hydraulic,
      foundation: foundation,
      closureRatio: clamp(closureRatio, 0, 1)
    };
  }

  function chooseCategory(data, scores) {
    var criticalFoundation = data.balance === "none";
    if (data.source === "heat-pump") {
      if (data.minFlow === "not-secured") { criticalFoundation = true; }
    }
    if (criticalFoundation || scores.foundation >= 60) { return "foundation"; }
    if (scores.benefit >= 69) {
      if (scores.hydraulic < 65) {
        if (scores.inertia < 88) { return "zoned"; }
      }
    }
    if (scores.benefit >= 39) { return "selective"; }
    return "central";
  }

  function scoreLabel(score, kind) {
    if (kind === "inertia") {
      if (score < 38) { return "Mała"; }
      if (score < 76) { return "Średnia"; }
      return "Duża";
    }
    if (kind === "risk") {
      if (score < 28) { return "Niskie"; }
      if (score < 52) { return "Umiarkowane"; }
      if (score < 76) { return "Podwyższone"; }
      return "Wysokie";
    }
    if (kind === "foundation") {
      if (score < 20) { return "Niski"; }
      if (score < 46) { return "Do sprawdzenia"; }
      if (score < 72) { return "Wysoki"; }
      return "Najpierw podstawy";
    }
    if (score < 28) { return "Mała"; }
    if (score < 54) { return "Umiarkowana"; }
    if (score < 78) { return "Duża"; }
    return "Bardzo duża";
  }

  function categoryContent(category) {
    var content = {
      central: {
        css: "is-central",
        badge: "Sterowanie centralne",
        title: "Pogodówka i przepływy mogą wykonać większość pracy",
        lead: "Warunki nie wskazują na dużą potrzebę zamykania wielu pętli. Utrzymuj stabilną temperaturę wody i wyregulowane obwody, a automatykę pokojową traktuj jako ograniczenie wybranych wyjątków."
      },
      selective: {
        css: "is-selective",
        badge: "Sterowanie selektywne",
        title: "Hybryda: sterowanie tylko tam, gdzie jest potrzebne",
        lead: "Regulacja pogodowa i wyregulowane przepływy powinny prowadzić instalację, a termostaty mogą ograniczać wybrane pomieszczenia o innych zyskach lub harmonogramach."
      },
      zoned: {
        css: "is-zoned",
        badge: "Rozbudowane strefowanie",
        title: "Pełniejsze sterowanie strefowe ma uzasadnienie funkcjonalne",
        lead: "Pomieszczenia wyraźnie różnią się temperaturami, zyskami lub sposobem użytkowania. Podział na strefy może poprawić kontrolę, jeżeli przepływ źródła i hydraulika pozostaną zabezpieczone."
      },
      foundation: {
        css: "is-foundation",
        badge: "Najpierw uporządkuj podstawy",
        title: "Nie zaczynaj od zakupu pełnego zestawu termostatów",
        lead: "Wprowadzone dane wskazują na brak regulacji, niepewny przepływ albo nieuporządkowaną pracę źródła. Automatyka mogłaby zamaskować problem lub zwiększyć ryzyko hydrauliczne."
      }
    };
    return content[category];
  }

  function sourceLabel(source) {
    if (source === "heat-pump") { return "Pompa ciepła"; }
    if (source === "gas") { return "Kocioł gazowy kondensacyjny"; }
    if (source === "pellet") { return "Kocioł na pellet lub paliwo stałe"; }
    if (source === "electric") { return "Kocioł elektryczny"; }
    return "Źródło wymagające doprecyzowania";
  }

  function buildRecommendations(data, scores, category) {
    var items = [];
    if (category === "foundation") {
      items.push("Ustal przepływy pętli i wymagania źródła przed wyborem liczby termostatów.");
      items.push("Sprawdź regulację temperatury zasilania oraz wariant zamknięcia sterowanych obwodów.");
      items.push("Zaplanuj strefy na rzucie, ale nie uruchamiaj ich jako sposobu naprawy hydrauliki.");
    }
    if (category === "central") {
      items.push("Oprzyj pracę na regulacji temperatury wody i prawidłowych przepływach.");
      items.push("Rozważ jeden czujnik referencyjny albo termostaty tylko w wyjątkowych pomieszczeniach.");
      items.push("Unikaj krótkich, agresywnych harmonogramów dla ciężkiej podłogi.");
    }
    if (category === "selective") {
      items.push("Wybierz kilka stref o innych temperaturach, zyskach lub godzinach użytkowania.");
      items.push("Pozostaw stabilną bazę hydrauliczną zgodnie z projektem i wymaganiami źródła.");
      items.push("Traktuj termostaty jako ograniczniki, a nie główny sposób ustawiania mocy podłogi.");
    }
    if (category === "zoned") {
      items.push("Przypisz wszystkie pętle do jednoznacznych stref funkcjonalnych.");
      items.push("Zaprojektuj sygnał do pompy i źródła dla sytuacji częściowego zapotrzebowania.");
      items.push("Sprawdź hydraulikę przy jednoczesnym zamknięciu planowanej liczby obwodów.");
    }
    if (data.source === "heat-pump") { items.push("Prowadź pompę ciepła możliwie niską temperaturą i ogranicz częste wyłączanie całego źródła."); }
    if (data.mass === "heavy") { items.push("Wprowadzaj tylko łagodne zmiany nastaw i oceniaj wynik po pełnym cyklu cieplnym."); }
    if (data.floor === "sensitive") { items.push("Rozważ czujnik podłogowy jako ogranicznik zgodny z wymaganiami okładziny."); }
    if (scores.closureRatio > 0.75) { items.push("Przeanalizuj wariant, w którym znaczna część planowanych siłowników zamknie się jednocześnie."); }
    return items;
  }

  function buildComponents(data, category) {
    var items = [];
    if (data.weather !== "yes") { items.push("Regulacja pogodowa źródła albo właściwie sterowany obieg mieszający."); }
    if (category === "central") { items.push("Czujnik referencyjny lub prosta kontrola centralna bez siłownika na każdej pętli."); }
    if (category === "selective") { items.push("Termostaty i siłowniki tylko dla wybranych stref funkcjonalnych."); }
    if (category === "zoned") { items.push("Listwa z odpowiednią liczbą wejść oraz termostaty i siłowniki dla zaprojektowanych stref."); }
    if (category === "foundation") { items.push("Dokumentacja przepływów, nastaw i logiki pracy przed zakupem automatyki."); }
    items.push("Pompa obiegowa dobrana do przepływu i zmian oporu po zamknięciu zaworów.");
    if (data.floor === "sensitive") { items.push("Regulator obsługujący ogranicznik podłogi oraz wymienny czujnik w peszlu."); }
    if (data.wiring === "retrofit") { items.push("System radiowy ze sprawdzonym zasięgiem i zasilaniem przy rozdzielaczu."); }
    if (data.wiring === "wired") { items.push("Opisane przewody termostatów, zasilania i sygnału źródła doprowadzone przed tynkami."); }
    if (data.wiring === "flexible") { items.push("Porównanie wersji przewodowej i radiowej pod kątem serwisu oraz rozbudowy."); }
    return items;
  }

  function buildRisks(data, scores) {
    var items = [];
    if (data.balance === "none") { items.push("Brak regulacji hydraulicznej — siłowniki nie ustalą poprawnych przepływów po otwarciu stref."); }
    if (data.balance === "unknown") { items.push("Nieznane przepływy utrudniają ocenę mocy i zachowania instalacji po otwarciu pętli."); }
    if (scores.closureRatio > 0.65) { items.push("Duży udział sterowanych pętli może istotnie zmienić przepływ całkowity i punkt pracy pompy."); }
    if (data.source === "heat-pump") {
      if (data.minFlow === "unknown") { items.push("Nieznany minimalny przepływ pompy ciepła trzeba sprawdzić przed uruchomieniem stref."); }
      if (data.minFlow === "not-secured") { items.push("Minimalny przepływ pompy ciepła może nie zostać zachowany po zamknięciu obwodów."); }
    }
    if (data.weather === "no") { items.push("Stała temperatura zasilania może powodować przegrzewanie, którego termostaty będą tylko okresowo pilnować."); }
    if (data.weather === "unknown") { items.push("Nieznany sposób regulacji temperatury wody uniemożliwia ocenę pełnej logiki systemu."); }
    if (data.mass === "heavy") { items.push("Duża bezwładność ogranicza skuteczność krótkich harmonogramów i szybkich korekt."); }
    if (data.floor === "unknown") { items.push("Nieznane wymagania okładziny należy ustalić przed wyborem limitu temperatury podłogi."); }
    if (items.length === 0) { items.push("Brak oczywistego ryzyka w podanych danych, ale nadal trzeba potwierdzić parametry urządzeń i przepływy."); }
    return items;
  }

  function setState(id, text, warning) {
    var element = byId(id);
    if (!element) { return; }
    element.textContent = text;
    element.className = "rk-controls-system-state";
    if (warning) { element.className += " is-warn"; }
  }

  function renderSystemPath(data, category) {
    var sourceText = sourceLabel(data.source);
    if (data.weather === "yes") { sourceText += " prowadzona regulacją pogodową"; }
    if (data.weather === "no") { sourceText += " ze stałą temperaturą zasilania"; }
    if (data.weather === "unknown") { sourceText += " — sposób regulacji nieznany"; }
    setText("rk-controls-path-source", sourceText);
    setState("rk-controls-state-source", data.weather === "yes" ? "baza systemu" : "ustal regulację wody", data.weather !== "yes");

    var hydraulicText = "Przepływ i objętość wymagają potwierdzenia";
    var hydraulicWarn = true;
    if (data.minFlow === "secured") {
      hydraulicText = "Minimalny przepływ został określony jako zapewniony";
      hydraulicWarn = false;
    }
    if (data.minFlow === "not-secured") { hydraulicText = "Minimalny przepływ może zostać utracony po zamknięciu stref"; }
    if (data.minFlow === "not-applicable") {
      hydraulicText = "Obieg źródła jest rozpatrywany oddzielnie od pętli";
      hydraulicWarn = false;
    }
    setText("rk-controls-path-hydraulic", hydraulicText);
    setState("rk-controls-state-hydraulic", hydraulicWarn ? "sprawdź przepływ" : "warunek zadeklarowany", hydraulicWarn);

    var distributionText = "Projektowe lub wyregulowane przepływy pętli";
    var distributionWarn = false;
    if (data.balance === "unknown") {
      distributionText = "Brak znanych przepływów dla poszczególnych pętli";
      distributionWarn = true;
    }
    if (data.balance === "none") {
      distributionText = "Pętle nie zostały wyregulowane hydraulicznie";
      distributionWarn = true;
    }
    setText("rk-controls-path-distribution", distributionText);
    setState("rk-controls-state-distribution", distributionWarn ? "najpierw wyreguluj" : "nie zastępuj automatyką", distributionWarn);

    var zoneText = "Wybrane strefy z termostatami i siłownikami";
    var zoneState = "sterowanie selektywne";
    var zoneWarn = false;
    if (category === "central") {
      zoneText = "Stabilna baza z ogranicznikami tylko w wyjątkowych pomieszczeniach";
      zoneState = "sterowanie centralne";
    }
    if (category === "zoned") {
      zoneText = "Zaprojektowane strefy funkcjonalne z przypisanymi pętlami";
      zoneState = "szersze strefowanie";
    }
    if (category === "foundation") {
      zoneText = "Podział stref odłóż do czasu uporządkowania przepływów i źródła";
      zoneState = "wstrzymaj dobór urządzeń";
      zoneWarn = true;
    }
    setText("rk-controls-path-zones", zoneText);
    setState("rk-controls-state-zones", zoneState, zoneWarn);
  }

  function drawResponseChart(data) {
    var canvas = byId("rk-controls-response-chart");
    if (!canvas) { return; }
    var context = canvas.getContext("2d");
    if (!context) { return; }
    var wrapperWidth = canvas.parentElement ? canvas.parentElement.clientWidth : 760;
    var width = Math.max(310, wrapperWidth);
    var height = 295;
    var pixelRatio = window.devicePixelRatio || 1;
    canvas.width = Math.round(width * pixelRatio);
    canvas.height = Math.round(height * pixelRatio);
    canvas.style.width = width + "px";
    canvas.style.height = height + "px";
    context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
    context.clearRect(0, 0, width, height);

    var padding = {left: 55, right: 22, top: 26, bottom: 45};
    var plotWidth = width - padding.left - padding.right;
    var plotHeight = height - padding.top - padding.bottom;
    var tau = 4.5;
    var massName = "standardowy jastrych";
    if (data.mass === "light") {
      tau = 1.7;
      massName = "lekki system";
    }
    if (data.mass === "heavy") {
      tau = 8.5;
      massName = "gruba płyta akumulacyjna";
    }

    context.font = "11px system-ui, sans-serif";
    context.lineWidth = 1;
    for (var grid = 0; grid <= 4; grid += 1) {
      var y = padding.top + plotHeight * grid / 4;
      context.strokeStyle = "#d6e3e8";
      context.beginPath();
      context.moveTo(padding.left, y);
      context.lineTo(width - padding.right, y);
      context.stroke();
      context.fillStyle = "#647983";
      context.textAlign = "right";
      context.fillText(String(100 - grid * 25) + "%", padding.left - 7, y + 4);
    }
    for (var hourGrid = 0; hourGrid <= 6; hourGrid += 1) {
      var hourValue = hourGrid * 2;
      var xGrid = padding.left + plotWidth * hourValue / 12;
      context.strokeStyle = "#edf3f5";
      context.beginPath();
      context.moveTo(xGrid, padding.top);
      context.lineTo(xGrid, height - padding.bottom);
      context.stroke();
      context.fillStyle = "#647983";
      context.textAlign = "center";
      context.fillText(String(hourValue) + " h", xGrid, height - 22);
    }

    function pointX(hour) { return padding.left + plotWidth * hour / 12; }
    function pointY(percent) { return padding.top + plotHeight * (1 - percent / 100); }

    context.strokeStyle = "#078fbe";
    context.lineWidth = 3;
    context.beginPath();
    context.moveTo(pointX(0), pointY(100));
    context.lineTo(pointX(2), pointY(100));
    context.lineTo(pointX(2), pointY(0));
    context.lineTo(pointX(12), pointY(0));
    context.stroke();

    context.strokeStyle = "#ff6a3d";
    context.lineWidth = 3;
    context.beginPath();
    for (var index = 0; index <= 48; index += 1) {
      var hour = index * 0.25;
      var emission = 58 + hour / 2 * 27;
      if (hour > 2) { emission = 85 * Math.exp(-(hour - 2) / tau); }
      emission = clamp(emission, 0, 100);
      var x = pointX(hour);
      var yPoint = pointY(emission);
      if (index === 0) { context.moveTo(x, yPoint); }
      else { context.lineTo(x, yPoint); }
    }
    context.stroke();

    context.strokeStyle = "#d94b3d";
    context.lineWidth = 1.5;
    context.setLineDash([5, 5]);
    context.beginPath();
    context.moveTo(pointX(2), padding.top);
    context.lineTo(pointX(2), height - padding.bottom);
    context.stroke();
    context.setLineDash([]);
    context.fillStyle = "#a43f34";
    context.textAlign = "left";
    context.fillText("zamknięcie siłownika", pointX(2) + 7, padding.top + 14);

    context.save();
    context.translate(15, padding.top + plotHeight / 2);
    context.rotate(-Math.PI / 2);
    context.fillStyle = "#526a76";
    context.textAlign = "center";
    context.fillText("wartość względna", 0, 0);
    context.restore();

    var description = "Model referencyjny dla konstrukcji: " + massName + ". Po odcięciu przepływu emisja nie spada natychmiast, ponieważ energia pozostaje w podłodze. Wykres nie przewiduje temperatury konkretnego pomieszczenia.";
    setText("rk-controls-chart-description", description);
  }

  function renderDiagnostics(data, scores, category) {
    var diagnostics = [];
    var closurePercent = Math.round(scores.closureRatio * 100);
    diagnostics.push({warn: closurePercent > 65, text: "Siłownikami ma być objęte około " + closurePercent + "% pętli. To nie jest prognoza jednoczesnego zamknięcia, lecz wariant wymagający sprawdzenia hydraulicznego."});
    if (data.weather === "yes") {
      diagnostics.push({warn: false, text: "Zadeklarowano regulację pogodową. Termostaty mogą pełnić funkcję lokalnych ograniczników zamiast sterować temperaturą wody dla całego domu."});
    } else {
      diagnostics.push({warn: true, text: "Brak potwierdzonej regulacji pogodowej. Najpierw ustal sposób prowadzenia temperatury zasilania, aby strefy nie walczyły ze zbyt gorącą wodą."});
    }
    if (data.mass === "heavy") {
      diagnostics.push({warn: true, text: "Duża masa podłogi oznacza wolną reakcję. Krótkie obniżenia i szybkie przełączanie mogą nie przynieść oczekiwanego efektu w czasie użytkowania."});
    } else {
      diagnostics.push({warn: false, text: "Wybrana konstrukcja ma mniejszą lub standardową bezwładność, ale nadal wymaga obserwacji pełnych cykli cieplnych po zmianie nastaw."});
    }
    if (category === "foundation") {
      diagnostics.push({warn: true, text: "Wynik nie odrzuca automatyki. Wskazuje tylko, że kolejność prac powinna rozpocząć się od źródła, przepływów i przypisania pętli."});
    } else {
      diagnostics.push({warn: false, text: "Wynik opisuje koncepcję sterowania, a nie listę zakupową. Dokładna liczba urządzeń wynika z podziału pętli na strefy."});
    }
    diagnostics.push({warn: true, text: "Analizator celowo nie wyświetla procentu oszczędności ani czasu zwrotu. Bez pomiaru stanu wyjściowego takie liczby byłyby założeniem, a nie wynikiem obliczeń."});
    var container = byId("rk-controls-diagnostics");
    if (!container) { return; }
    container.innerHTML = diagnostics.map(function (item) {
      var className = item.warn ? "rk-controls-diagnostic is-warn" : "rk-controls-diagnostic";
      return "<div class=\"" + className + "\">" + item.text + "</div>";
    }).join("");
  }

  function renderResult(data, scores, category) {
    var content = categoryContent(category);
    var hero = byId("rk-controls-result-hero");
    if (hero) { hero.className = "rk-controls-result-hero " + content.css; }
    setText("rk-controls-result-badge", content.badge);
    setText("rk-controls-result-title", content.title);
    setText("rk-controls-result-lead", content.lead);

    setText("rk-controls-benefit-label", scoreLabel(scores.benefit, "benefit"));
    setText("rk-controls-inertia-label", scoreLabel(scores.inertia, "inertia"));
    setText("rk-controls-hydraulic-label", scoreLabel(scores.hydraulic, "risk"));
    setText("rk-controls-foundation-label", scoreLabel(scores.foundation, "foundation"));
    var benefitBar = byId("rk-controls-benefit-bar");
    var inertiaBar = byId("rk-controls-inertia-bar");
    var hydraulicBar = byId("rk-controls-hydraulic-bar");
    var foundationBar = byId("rk-controls-foundation-bar");
    if (benefitBar) { benefitBar.style.width = scores.benefit + "%"; }
    if (inertiaBar) { inertiaBar.style.width = scores.inertia + "%"; }
    if (hydraulicBar) { hydraulicBar.style.width = scores.hydraulic + "%"; }
    if (foundationBar) { foundationBar.style.width = scores.foundation + "%"; }

    setList("rk-controls-recommendations", buildRecommendations(data, scores, category));
    setList("rk-controls-components", buildComponents(data, category));
    setList("rk-controls-risks", buildRisks(data, scores));
    renderSystemPath(data, category);
    drawResponseChart(data);
    renderDiagnostics(data, scores, category);
  }

  function calculate() {
    var data = readData();
    var errors = validateData(data);
    var errorBox = byId("rk-controls-error");
    if (errors.length > 0) {
      if (errorBox) {
        errorBox.textContent = errors.join(" ");
        errorBox.classList.add("is-visible");
      }
      return;
    }
    if (errorBox) {
      errorBox.textContent = "";
      errorBox.classList.remove("is-visible");
    }
    var scores = calculateScores(data);
    var category = chooseCategory(data, scores);
    renderResult(data, scores, category);
  }

  function resetAnalyzer() {
    Object.keys(defaults).forEach(function (id) {
      var element = byId(id);
      if (element) { element.value = String(defaults[id]); }
    });
    calculate();
  }

  var calculateButton = byId("rk-controls-calculate");
  var resetButton = byId("rk-controls-reset");
  if (calculateButton) { calculateButton.addEventListener("click", calculate); }
  if (resetButton) { resetButton.addEventListener("click", resetAnalyzer); }

  var analyzer = root.querySelector("[data-rk-controls-analyzer]");
  if (analyzer) {
    analyzer.querySelectorAll("input, select").forEach(function (field) {
      field.addEventListener("change", calculate);
      field.addEventListener("input", function () {
        window.clearTimeout(field.rkControlsTimer);
        field.rkControlsTimer = window.setTimeout(calculate, 220);
      });
    });
  }

  var navLinks = root.querySelectorAll(".rk-controls-nav-track a[href^='#']");
  navLinks.forEach(function (link) {
    link.addEventListener("click", function (event) {
      var target = root.querySelector(link.getAttribute("href"));
      if (!target) { return; }
      event.preventDefault();
      target.scrollIntoView({behavior: "smooth", block: "start"});
    });
  });

  function updateProgress() {
    var progress = root.querySelector(".rk-controls-progress");
    if (!progress) { return; }
    var documentElement = document.documentElement;
    var scrollTop = window.pageYOffset || documentElement.scrollTop || 0;
    var scrollable = documentElement.scrollHeight - documentElement.clientHeight;
    var percentage = scrollable > 0 ? scrollTop / scrollable * 100 : 0;
    progress.style.width = clamp(percentage, 0, 100) + "%";
  }

  var resizeTimer = 0;
  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", function () {
    window.clearTimeout(resizeTimer);
    resizeTimer = window.setTimeout(calculate, 140);
  });

  calculate();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
