<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Forum Smartny Dom - Ostatnie posty				            </title>
            <link>https://www.smartnydom.pl/forum/</link>
            <description>Discussion Board</description>
            <language>pl-PL</language>
            <lastBuildDate>Wed, 17 Jun 2026 22:42:36 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>ODP: Domena edom.plc już nie działa, czy jest na tym forum jakaś grupka użytkowników Wago PLC?</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/domena-edom-plc-juz-nie-dziala-czy-jest-na-tym-forum-jakas-grupka-uzytkownikow-wago-plc/#post-34836</link>
                        <pubDate>Tue, 26 May 2026 19:50:34 +0000</pubDate>
                        <description><![CDATA[Polecam zakupic min 750-8212, na nim mozna przesiąść sie na darmowy Codesys 3.5. Podstawowe biblioteki są darmowe. Mnie udało się przeportować cały system w okolo 2 tygodnie na tzw. żywym or...]]></description>
                        <content:encoded><![CDATA[<p>Polecam zakupic min 750-8212, na nim mozna przesiąść sie na darmowy Codesys 3.5. Podstawowe biblioteki są darmowe. Mnie udało się przeportować cały system w okolo 2 tygodnie na tzw. żywym organizmie. Najpierw połączyłem stary system na 750-881  z nowym 750-8212 i pomału przenosiłem sterowanie z 881 na 8212. Na końcu jak 881 pracował w sumie tylko jako zdalne I/O zamieniłem sterowniki miejscami.</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>mkochniarczyk</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/domena-edom-plc-juz-nie-dziala-czy-jest-na-tym-forum-jakas-grupka-uzytkownikow-wago-plc/#post-34836</guid>
                    </item>
				                    <item>
                        <title>Sterowanie przekaźnikami</title>
                        <link>https://www.smartnydom.pl/forum/domoticz/sterowanie-przekaznikami-2/#post-34835</link>
                        <pubDate>Sun, 24 May 2026 20:59:50 +0000</pubDate>
                        <description><![CDATA[Witam wszystkich,
mam problem z wysterowaniem przekaźnikami z Domoticza. Chcę wysterować większy system nawadniania, składający się z pompy wody o określonej wydajności, i wielu różnych odb...]]></description>
                        <content:encoded><![CDATA[<p>Witam wszystkich,</p>
<p>mam problem z wysterowaniem przekaźnikami z Domoticza. Chcę wysterować większy system nawadniania, składający się z pompy wody o określonej wydajności, i wielu różnych odbiornikach (obiegach nawodnieniowych). Sterowanie odbywać się będzie na żądanie, tzn w Domoticz włączam kolejne obiegi które potrzebuję. Każdy z nich ma swój czas pracy i chwilowe zapotrzebowanie na wodę.</p>
<p>Mam Raspberry pi4b, do tego esp8266 na ESPEasy (4szt), do każdego podłączone przekaźniki po 8szt. Będzie też w ciągu kilku dni przepływomierz dla kontroli chwilowego zużycia wody w systemie, żeby pompa dała radę. Wszystko widoczne w Domoticz. </p>
<p>Działanie systemu: klikam z palca, załóżmy 16 z 20 obiegów, które chcę uruchomić w celu nawadniania. Wydajność pompy jest załóżmy na 6 pierwszych, pozostałe muszą "stanąć w kolejce" i poczekać, aż któryś obwód zakończy działanie i w systemie wzrośnie wydajność do wystarczającego poziomu by załączyć kolejny lub kolejne obwody. Tak żeby wykorzystać na maxa wydajność pompy i zminimalizować czas nawadniania/pracy pompy (koszty). </p>
<p>I tu pojawia się problem. Jak zrobić taką kolejkę, żeby nic z niej nie wypadło, i wszystko dostało tyle wody ile zaprogramowałem, w możliwie krótkim czasie?</p>
<p>Bawiłem się w Blockly, ale nie wyszło mi, tzn poszczególne obiegi włączę na zadany czas, ale nie jestem w stanie wykombinować nic z kolejkowaniem.</p>
<p>Pytanie podstawowe, czy powyższe jest w ogóle możliwe do zrealizowania w Blockly? Czy Domoticz jest w stanie to zrealizować innym sposobem?</p>
<p>Jestem amatorem, jeśli chodzi o programowanie, na studiach coś tam było, ale to było dawno temu. </p>
<p>Proszę o jakieś wskazówki zmierzające do rozwiązania problemu, ewentualnie dodatkowe pytania.</p>
<p>&nbsp;</p>
<p>Pozdrawiam wszystkich</p>
<p>Bartek</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Bartekpion</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/domoticz/sterowanie-przekaznikami-2/#post-34835</guid>
                    </item>
				                    <item>
                        <title>ODP: Fatek: gdzie zapisać dane na stałe w PLC</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34834</link>
                        <pubDate>Mon, 11 May 2026 20:00:05 +0000</pubDate>
                        <description><![CDATA[jeszcze raz - proszę zaprzestać generowanie postów claude&#039;m 
postów, jak ten nie da się czytać:
9x% treści wygenerowanych w tym przykładowym poście to szum - nic nie wnoszący.
Generujesz ...]]></description>
                        <content:encoded><![CDATA[<p>jeszcze raz - proszę zaprzestać generowanie postów claude'm </p>
<p>postów, jak ten nie da się czytać: https://www.smartnydom.pl/forum/main-category-home-assistant/pozycja-rolety-mqtt/#post-34829 </p>
<p>9x% treści wygenerowanych w tym przykładowym poście to szum - nic nie wnoszący.</p>
<p>Generujesz posty, które czyta się dłużej niż czas w którym generujesz kolejny.</p>
<p>Każdy kolejny od Ciebie post będzie przechodził moderację - zwięzły, na temat, bez AI szumu</p>
<p>Proszę bawić się AI z umiarem.</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>adrian</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34834</guid>
                    </item>
				                    <item>
                        <title>ODP: Mam pytanie odnośnie sterownika Fatek</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/mam-pytanie-odnosnie-sterownika-fatek/#post-34833</link>
                        <pubDate>Mon, 11 May 2026 19:46:07 +0000</pubDate>
                        <description><![CDATA[Cześć, dziękuję wszystkim za cenne uwagi i pomoc.Dom już stoi i działa, więc opiszę tylko jak ta historia się ostatecznie zakończyła :)W Fatek&#039;u pamiętam, że odstraszało mnie programowanie d...]]></description>
                        <content:encoded><![CDATA[<p>Cześć, dziękuję wszystkim za cenne uwagi i pomoc.<br />Dom już stoi i działa, więc opiszę tylko jak ta historia się ostatecznie zakończyła :)<br /><br />W Fatek'u pamiętam, że odstraszało mnie programowanie drabinkowe, choć na pewno jest to super sterownik.<br />Ostatecznie serce domu stanowi Wago 750-889, który udało mi się dostać w dobrych pieniądzach ponieważ był zastępowany nowszym PFC200.<br />Sterownik wspiera obsługę KNX co mi się dodatkowo podobało, ponieważ zakładałem, że dom i tak będzie posiadał magistralę EIB i kiedyś sam sobie zmajstruje trochę czujników po KNX na UART Siemens'a (moduły po 100 PLN).<br />Chciałem za wszelką cenę uniknąć rozwiązań bezprzewodowych pokroju Zigbee tak jak w poprzednim domu, chociaż czas zweryfikował trochę moje poglądy pod tym względem :)<br /><br />Dom jest generalnie rozłożony w gwiazdę, skrętki w każdej puszce włącznikowej ale gniazdka są sterowalne tylko w tych miejscach, w których zakładałem, że będzie taka potrzeba czyli lampy gniazdkowe, żelazka itp.<br />Do tego wszędzie jest pociągnięta magistrala KNX, o której już pisałem.<br /><br />Pod ledy białe i RGBW doprowadzone wszędzie przewody 2,5mm z rozdzielnicy (24V na zasilaczach Mean Well NDR).<br /><br />Sterowanie oświetleniem i podstawowymi funkcjami domu, bramy, drzwi, gniazdka itp. z poziomu Wago.<br />LED'y sterowane przez chińskie kontrolery DMX oraz bramkę Artnet również z poziomu Wago.<br />Wago współpracuje z Home Assistant postawionym na Synology NAS przez MQTT oraz Modbus tzn. w HA przygotowałem sobie custom komponenty, które ustawiają rejestry przez Modbus i odbierają stany przez MQTT.<br />Pozostałe integracje już z poziomu Home Assistant (alarm, pompa ciepła, falownik, rekuperator, google i inne sprzęty) w tym również bezprzewodowo komponenty Zigbee jak np. czujniki obecności, czujniki klimatu, przyciski czy gniazdka oraz ESPHome jak np. sterowanie projektorem, czujnik poziomu wody deszczowej, pomiar zużycia wody przez dom itp.<br />Kiedyś pewnie przerobię część bateryjną na KNX.<br /><br />Przekaźniki do oświetlenia Relpol RM85-5021-25-1024 Inrush, przekaźniki do rolet Finder 40.61.9.024.4000, przekaźniki sygnałowe i do małych prądów chińskie noname. Relpol oraz Inrush jeszcze nigdy się nie skleiły czy uszkodziły natomiast chińczyk już raz się skleił sterując np. wzmacniaczem 100W - kiedyś poszukam lepszego zamiennika pod te podstawki.<br /><br />Panele na HA, w tym jeden z domofonu Akuvox 8", 2 używane tablety Lenovo Tab P12 12,7" i w pokojach NSPanele Sonoff 120 pro.<br />Ekrany wyzwalane czujkami alarmowymi, kamerkami oraz w salonie laserowym czujnikiem DRL-12, który świetnie się sprawdza w tej roli.<br />Robiłem podejście do manipulatora Satel INT 10", ale to była porażka, obsługa SIP działała fatalnie, jakość wyświetlacza również kiepska.</p>
<p>Dom już zamieszkały, ale jeszcze sporo pracy wykończeniowej przede mną, więc nie ma czasu dopieszczać zabawek automatyki, dashboardów :D<br /><br />Pozdrowienia,<br />cholo</p>
3949
3952
3950
3951
3953
3957
3958
3959
<p>&nbsp;</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>cholo</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/mam-pytanie-odnosnie-sterownika-fatek/#post-34833</guid>
                    </item>
				                    <item>
                        <title>ODP: Fatek: gdzie zapisać dane na stałe w PLC</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34832</link>
                        <pubDate>Mon, 11 May 2026 19:29:02 +0000</pubDate>
                        <description><![CDATA[Wybacz, mega się wkęciłem, natomiast całość kontentu i odpowiedzi są moje. Czy zbyt rozbudowana formuła podparta wygładzeniem jest czymś złym? Osobiście zjadłem na Fateku i HMI sporą część m...]]></description>
                        <content:encoded><![CDATA[<p>Wybacz, mega się wkęciłem, natomiast całość kontentu i odpowiedzi są moje. Czy zbyt rozbudowana formuła podparta wygładzeniem jest czymś złym? Osobiście zjadłem na Fateku i HMI sporą część mojego życia więc przy takich wątkach chętnie dzielę się dobrą radą. Pozdrawiam.</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Dariusz Niepiekło</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34832</guid>
                    </item>
				                    <item>
                        <title>ODP: Start z HA w remontowanym mieszkaniu</title>
                        <link>https://www.smartnydom.pl/forum/dla-poczatkujacych/start-z-ha-w-remontowanym-mieszkaniu/#post-34831</link>
                        <pubDate>Mon, 11 May 2026 19:24:18 +0000</pubDate>
                        <description><![CDATA[Cześć @diego411 — dołączam, bo widzę że @isom i @pawell32 dali Ci bardzo dobre rady architektoniczne (gwiazda do rozdzielnicy, głębokie puszki, hybryda rozdzielnicy + dopuszkowych), ale przy...]]></description>
                        <content:encoded><![CDATA[<p class="font-claude-response-body break-words whitespace-normal leading-">Cześć @diego411 — dołączam, bo widzę że @isom i @pawell32 dali Ci bardzo dobre rady architektoniczne (gwiazda do rozdzielnicy, głębokie puszki, hybryda rozdzielnicy + dopuszkowych), ale przy okazji dyskusji o dimmerach przegapili <strong>4 z 5 Twoich pytań</strong> z drugiego posta. Wracam do nich, plus dorzucam to czego najbardziej brakuje na tym etapie — czyli <strong>jak ugryźć rozmowę z architektem i ekipą</strong>, bo to było Twoje pierwsze pytanie. Skoro masz 62 m² + remont w trakcie + już HA Yellow, to jesteś w bardzo dobrym punkcie wyjścia.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Najpierw: konfirmacja porad isom + pawell32</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Bardzo dobre rady, krótko dlaczego trzymaj się ich:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Gwiazda do rozdzielnicy</strong> (isom) — to jest defaultem dla każdej instalacji którą można zaautomatyzować. Bez tego klatka się zamyka i zostajesz z modułami dopuszkowymi już do końca życia lokalu</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Przewody wszędzie gdzie się da</strong> (pawell32) — sufity opuszczane, puszki z kieszenią (60-80 mm głębokości zamiast standardowych 40 mm), peszle z zapasem</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Hybryda rozdzielnica + dopuszkowe</strong> — najmądrzejsza w mieszkaniu, bo masz ograniczone miejsce na szafę</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Przyciski chwilowe</strong> (isom) — eliminują schodowy/krzyżowy, jednolite całe mieszkanie, możliwość single/double/long-click w jednym klawiszu</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>ZBMINIR2</strong> (isom + pawell32) — sprawdzony moduł, ja też mam u klientów, zero claims</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Pytania których nikt Ci jeszcze nie zaadresował</h3>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">1. Czujniki zalania + automatyczne zakręcanie wody</h4>
<p class="font-claude-response-body break-words whitespace-normal leading-">To jest <strong>najważniejsza rzecz</strong> w mieszkaniu, ważniejsza niż jakikolwiek dimmer. Zalanie sąsiada poniżej to średnio 15-30 tys. zł szkód + 6-12 miesięcy nerwów z ubezpieczeniem. System za 2-3 tys. zł przewidzi to w 95% przypadków.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Architektura:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Czujki zalania na podłodze: <strong>łazienka (3 sztuki: przy wannie, pralce, umywalce), WC, kuchnia (przy zmywarce, zlewie), pokój z kotłem/bojlerem</strong> = 6-8 czujek minimum</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Typy czujek:</strong>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Kablowe (Aqara WL01, Heiman HS1WL) — 60-80 zł sztuka, Zigbee, działają długo na baterii</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>PRO RADA: dla pralki i zmywarki</strong> załóż <strong>kable wykrywające zalanie</strong> (Honeywell W&amp;T Pro, dziesiątki metrów cieniutkiej taśmy która wykrywa wilgoć na całej długości) zamiast pojedynczych czujek punktowych — czujka punktowa wykryje zalanie dopiero jak woda do niej dotrze, kabel wykryje od pierwszej kropli</li>
</ul>
</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Zawory odcinające na zasilaniu wody (ZIMNA + CIEPŁA)</strong> — to są kluczowe. Wybór:
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Sigma WAFA-1/2"</strong> — najbardziej budżetowe (250-350 zł sztuka), zawór kulowy z serwo, sterowanie 12V DC, łatwy w HA przez przekaźnik</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>EWA</strong> lub <strong>Beulco IWO</strong> — średnia półka, certyfikaty na wodę pitną</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Geberit AquaGuard</strong> — premium, ale 1-1,5k zł, integruje się natywnie z KNX</li>
</ul>
</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Zawory <strong>MUSZĄ być NC (normally closed)</strong> — bo brak prądu → woda odcięta. Klasyczny błąd: dać NO, padnie prąd, mieszkanie się zaleje</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Logika w HA: dowolna czujka zalania → automatyzacja → <strong>oba</strong> zawory NC otwarcie (przerywasz zasilanie 12V) + push do telefonu + sygnał dźwiękowy w domu + <strong>dezaktywacja pralki/zmywarki przez Shelly w gniazdku zasilania</strong></li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Pre-emptive zamknięcie wody (advanced):</strong> automatyzacja w HA "Wszyscy wyszli z mieszkania" (geolokalizacja telefonu wszystkich domowników) → <strong>zamknij wodę po 30 min od ostatniego ruchu</strong>. Po powrocie → otwórz. Mam to u siebie, raz mi zapobiegło zalaniu z wadliwego węża pralki podczas wakacji</p>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">2. Czujniki gazu / czadu / dymu</h4>
<p class="font-claude-response-body break-words whitespace-normal leading-">Trzy różne czujniki, trzy różne progi działania, trzy różne lokalizacje:</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Czujnik</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Co wykrywa</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Gdzie</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Model rekomendowany</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>CO (czad)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czad z urządzeń spalania (kuchenka gazowa, gazówka)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Kuchnia, korytarz przy sypialni, <strong>pod sufitem 1,5 m od źródła</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Heiman HS1CA-Z (Zigbee), 200-250 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Dym</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Pożar elektryczny, papierosy, świece</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Każde pomieszczenie poza kuchnią (kuchnia ma fałszywe alarmy z gotowania)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Fibaro FGSD-002 (Z-Wave)</strong> — CE certyfikowany jako czujnik ochrony przeciwpożarowej, 350-400 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>LPG/Gaz ziemny</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wyciek gazu z instalacji</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Kuchnia <strong>przy podłodze</strong> (LPG cięższy) lub <strong>przy suficie</strong> (gaz ziemny lżejszy)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Heiman HS1CG-Z, 150-200 zł</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Logika HA: czujka dymu/CO → <strong>GŁOŚNE SYRENY</strong> w całym mieszkaniu (Aqara M1S z syreną wbudowaną w bramkę lub osobne syreny Z-Wave) + push do telefonu + <strong>zgaszenie wszystkich obwodów oświetlenia oprócz korytarza i sypialni</strong> (drogi ewakuacji jasne, reszta nie miga = mniej dymu inhaluje się patrząc na sufit) + jeśli masz wentylację mechaniczną → wyłączenie (nie rozprowadzaj dymu po mieszkaniu)</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Ostrzeżenie:</strong> czujki dymu w mieszkaniu są wymagane przez wiele ubezpieczeń + przepisy pożarowe w nowych mieszkaniach (kategoria 6 budynków mieszkalnych według PN-EN 14604). Jeśli kupujesz najtańszy Zigbee 50 zł — to nie spełnia normy. Fibaro FGSD-002 spełnia.</p>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">3. Zamek elektryczny w drzwiach</h4>
<p class="font-claude-response-body break-words whitespace-normal leading-">Tu masz dwa zupełnie różne podejścia:</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>A) Smart-locks z baterią (Aqara U200, Yale Linus, Nuki)</strong> — nie polecam dla głównego wejścia. Powody:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Bateria pada w najgorszym momencie (akurat masz zakupy, dziecko śpi w nosidle...)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Mechaniczne sprzęgło bywa zawodne po 2-3 latach</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Atak relay attack</strong> — atakujący kradnie sygnał z Twojego telefonu/karty z 10 m i otwiera drzwi</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>B) Klasyczny elektrozaczep + ESP32/Sonoff jako kontroler</strong> — <strong>to polecam</strong>:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Elektrozaczep YALE 17 RR/RFB</strong> lub <strong>ASSA Abloy 14 series</strong> — 200-400 zł, montowany w futrynie, otwiera klamkę przy podaniu zasilania (zaczyna szczękać). Klasyczny, niezawodny, używany w blokach mieszkalnych od 40 lat</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>ESP32 + czytnik RFID PN532</strong> (50+30 zł = 80 zł) — montowany pod futryną lub w puszce obok drzwi. ESP32 odczytuje kartę/breloczek, sprawdza w HA przez MQTT, otwiera elektrozaczep przez przekaźnik</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Cyfrowy keypad</strong> (Hörmann FCT 3-1, Locinox SlimStone) — backup kodem PIN jak ktoś nie ma karty</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Awaria zasilania</strong> — drzwi nadal otwiera się <strong>kluczem mechanicznym normalnie</strong>, bo elektrozaczep nie blokuje rygla głównego. To jest <strong>wielka przewaga</strong> nad smart-lock motorized</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Sygnalizacja w HA</strong> — Reed kontaktron magnetyczny + zawartość zamka = pewność czy zamknięte fizycznie, nie tylko "myślę że tak"</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Furtka/brama wjazdowa — to samo, ale z dodatkowym <strong>uchylem garażu</strong> (otwierasz drzwi furtki → kontaktron → HA wysyła sygnał do BeaMex, otwiera garaż automatycznie, witasz się i wjeżdżasz).</p>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">4. Kamery z AI — co i jak</h4>
<p class="font-claude-response-body break-words whitespace-normal leading-">diego411 wspomniał o "kamery (z ai?)". Skoro masz 62 m² mieszkanie + szafę z UPS i HA Yellow — masz idealną bazę do <strong>lokalnego AI bez chmury</strong>:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Sprzęt kamer</strong>: Reolink RLC-810A (4K, PoE, 750-900 zł sztuka) lub UniFi G5 Bullet (800-1200 zł) — obie z natywną integracją w HA</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Software AI lokalny</strong>: <strong>Frigate NVR</strong> (Home Assistant add-on, darmowy) lub <strong>DoubleTake</strong> (face recognition). Detekcja: osoby, samochody, paczki, pakiet, koty (Twoje czy obce), psy. <strong>Wszystko lokalnie</strong>, bez wysyłania danych do chmury</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Akcelerator AI</strong>: Coral USB Accelerator (300 zł) lub <strong>Hailo-8L AI Kit</strong> (400 zł, ale 13 TOPS) — do HA Yellow dokładasz przez USB, Frigate go używa do detekcji w real-time</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Storage</strong>: w mieszkaniu zazwyczaj 2-4 kamery × 4K × 24/7 = ~2 TB/miesiąc retencji. NAS który już masz, podłączony przez NFS do HA = bezproblemowy. Zalecam retencję 14-30 dni</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>AI scenariusze które dają realną wartość</strong> (nie zabawki):</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">"Ktoś nieznany przed drzwiami &gt; 30 sek" → push z foto + nagrania ostatniej minuty</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">"Paczka leżąca pod drzwiami &gt; 2 godziny" → push "kurier zostawił, sprawdź"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">"Kot Twój ucieka przez okno (otwarty kontaktron + person/cat detection na zewnątrz)" → push z lokalizacją</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">"Osoba na klatce schodowej po 22:00" → wszystkie kamery w trybie HIGH (record continuous) + push (znalazłem 2 razy ślad złodzieja klatki schodowej, raz został odzyskany pakunek z paczkomatu)</li>
</ul>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">5. Jak rozmawiać z architektem i ekipą</h4>
<p class="font-claude-response-body break-words whitespace-normal leading-">Tu jest największa luka w odpowiedziach forum + dla Ciebie najważniejszy temat. Pójdziemy po kolei:</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Architekt:</strong></p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Poproś go o <strong>rysunek funkcjonalny</strong> mieszkania — to standardowy etap, dostajesz na nim ścianki, drzwi, okna</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Na kserokopii (zwykły PDF z markerami) zaznacz <strong>każdy punkt smart</strong>: gdzie czujka ruchu, gdzie sterowane gniazdko, gdzie czujka zalania, gdzie przyciski sterujące, gdzie panel HMI/tablet zamocowany w ścianie. <strong>Każdy punkt = osobny krzyżyk + numer + komentarz</strong></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Razem oszacujcie ile rozdzielnic dodatkowych — przy 62 m² najprawdopodobniej <strong>1 mała w korytarzu obok głównej</strong> (12-18 modułów DIN)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Krytyczne pytanie do architekta</strong>: "Czy mogę dostać Twój rysunek w formacie DWG/PDF wektorowy?" — bo na bazie tego elektryk wyrysuje schemat ideowy</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Elektryk — i tu wpadasz w klucz:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Większość elektryków nie ogarnia smart home. <strong>Klasyczna pułapka</strong> — elektryk projektuje standardowo "włącznik → puszka → lampa" i jak mu nie powiesz inaczej, prowadzi 2-żyłowy kabel z włącznika do oprawy. Wtedy później nie wstawisz Zigbee modułu (bo brak N w puszce włącznika) ani modułu w rozdzielnicy (bo brak osobnego kabla rozdzielnia→lampa).</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Zrób elektrykowi <strong>listę życzeń pisemną</strong> (nie ustnie, bo zapomni):</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Każda puszka włącznika ma N (neutralny)</strong> — minimum 3 żyły do każdej puszki włącznika (L, N, PE + sygnał powrotny do lampy)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Topologia gwiazdowa do rozdzielnicy smart</strong>: każda oprawa = osobna para od rozdzielnicy; każdy włącznik = osobne 3 żyły do rozdzielnicy</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Puszki głębokie 60-80 mm z kieszeniami</strong> w każdym punkcie z włącznikiem (nawet tym docelowo bez modułu, bo za 5 lat dorzucisz)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>W każdej puszce gniazdka sterowanego</strong> — para Cat6 obok zasilania (osobny peszel!)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Skrętka do każdego okna</strong> — 1× pod kontaktron, 1× pod ewentualny silnik rolet (peszel z zapasem)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Skrętka do drzwi wejściowych</strong> — pod elektrozaczep + ESP32/PN532</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Skrętka i zasilanie 12 V do kotła/bojlera/zaworu wody</strong> — pod sterowanie odcinaniem</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Peszle gęsto rozmieszczone na suficie</strong> — pod ewentualne czujki dymu/ruchu/oświetlenie dodatkowe</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Rezerwowy peszel 32 mm między rozdzielnicą smart a szafą rack</strong> (tam gdzie HA Yellow + router + NAS)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Każda puszka opisana</strong> wodoodpornym markerem <strong>w trakcie</strong> ciągnięcia kabli (etykieta na każdym końcu kabla: "salon, lampa główna, faza 1")</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Ekipa montażowa (murarze, gipsiarze, malarze):</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Pokaż im rysunek z każdym punktem podpisanym</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Każda puszka 60 mm głębokości</strong>, nie 40 mm — to często jest źródłem konfliktu, bo standardem na rynku jest 40 mm. Pokaż konkretny model (np. Spelsberg P-IP 65)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Zdjęcia każdej ściany przed zaszpachlowaniem</strong> — to jest <strong>najważniejsza dokumentacja</strong>. Po remontach za 2-3 lata, gdy będziesz coś dodawał, będziesz wdzięczny jak ostatni dureń że masz zdjęcia przewodów w ścianie. Telefon, każda ściana z każdej strony, archiwum na NAS-ie razem z fotami</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Stack rekomendowany dla 62 m² i Twoich potrzeb (konkretne modele)</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Skoro masz HA Yellow + szafę z NAS + UPS, oto co bym zamówił do tego mieszkania:</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Funkcja</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Sprzęt</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Lokalizacja</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Cena</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Oświetlenie on/off (6-10 obwodów)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Shelly Pro 4PM × 2 lub Shelly Pro 3</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Rozdzielnica smart</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">~600 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Ściemniacze (2-4 punkty)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Sonoff ZBMINI Dimmer (MINI-ZBDIM)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">W puszce, blisko lampy</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">80 zł × N</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Rolety (2-4 sztuki)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Shelly Plus 2PM</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">W puszce przy oknie</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">130 zł × N</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujki ruchu</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Aqara FP2</strong> (mmWave, lepsze niż PIR)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Sufit korytarza, salonu</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">350 zł × 2</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujki otwarcia okno/drzwi</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Aqara MCCGQ11LM</strong> (Zigbee)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Każde okno + drzwi wejściowe</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">60 zł × N</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujki zalania</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Heiman HS1WL-Z</strong> + <strong>kabel Honeywell W&amp;T</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Łazienka, kuchnia, pralka</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">80 zł × 6 + 200 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Zawory odcinające wodę</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Sigma WAFA 1/2"</strong> × 2 (ciepła + zimna)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Skrzynka zaworowa</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">700 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujnik dymu</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Fibaro FGSD-002</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Sufit salonu + sypialnia</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">750 zł × 2</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujnik CO</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Heiman HS1CA-Z</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Kuchnia + korytarz</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">250 zł × 2</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujnik gazu</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Heiman HS1CG-Z</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Kuchnia, przy podłodze</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">200 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Elektrozaczep drzwi</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>YALE 17 RR + ESP32 + PN532</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Drzwi wejściowe</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">350 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Kamery z AI</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Reolink RLC-810A × 2 + Coral USB</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wejście + balkon</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">1800 zł + 300 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Bramka Zigbee</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Sonoff ZB Dongle Plus</strong> w HA Yellow</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Szafa</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">100 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Bramka Z-Wave</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Aeotec Z-Stick 7</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Szafa</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">350 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Klucz UPS dla całej szafy</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">masz</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Szafa</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">—</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Razem</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">—</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">—</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>~6,5-8 tys. zł</strong></td>
</tr>
</tbody>
</table>
</div>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Sekwencja remontu (kolejność działań)</h3>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Teraz</strong> (przed elektrykiem) — opracuj rysunek funkcjonalny, listę puszek z głębokościami, listę kabli. To podstawa do rozmowy</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Etap mokry</strong> (instalacja elektryczna w ścianach) — elektryk ciągnie wszystko zgodnie ze spisem. <strong>Zrób zdjęcia każdej ściany</strong> przed zaszpachlowaniem</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Etap suchy</strong> (gładzie, malowanie) — TY robisz montaż w rozdzielnicy: Shelly, ZBMINIR2, zawory wody. <strong>Bez podłączania do HA jeszcze</strong>, tylko fizycznie wpięte</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Po malowaniu</strong> — montaż czujek (zalania, dymu, CO, gazu, otwarcia), żarówek, paneli przyciskowych</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Konfiguracja HA</strong> — dopiero teraz parujesz wszystko z Zigbee2MQTT/Z-Wave JS UI, dodajesz urządzenia w HA, piszesz automatyzacje</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Stres-test</strong> — przez tydzień testujesz każdą funkcję manualnie: czy zalanie wykrywa, czy zawory się zamykają, czy dym otwiera alert, czy ekipa robotników może wejść z kartą (dorzucasz tymczasową kartę dla siebie), czy fizyczny włącznik działa nawet bez HA online</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wniesienie się i 30-dniowa obserwacja</strong> — pierwsze 30 dni życie codzienne wyłapie wszystkie nieoczywiste rzeczy (np. "ten włącznik niewygodnie sięgnąć w nocy", "czujka ruchu zapala światło za szybko" itd.)</li>
</ol>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Dyskusja moderatorów o dimmerach vs żarówkach Zigbee</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Krótko: w mieszkaniu 62 m² gdzie chcesz <strong>kontrolę pełni stack'a</strong> i 6-10 obwodów oświetlenia, <strong>moja rekomendacja to dimmer w puszce + zwykłe LED-y E27</strong>, nie żarówki Zigbee. Powody:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Cena per punkt</strong> — żarówki Zigbee 80-120 zł sztuka × 4-6 żarówek w lampie wiszącej = 500-700 zł. ZBMINI Dimmer 80 zł + 4 zwykłe LED-y dimmable 50 zł = 280 zł</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Spójność wizualna</strong> — różne żarówki Zigbee dają lekko różne odcienie bieli, w lampie 4-żarówkowej to widać</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Argument moderatora "żarówka odcięta od mesh"</strong> — rozwiązuje to <strong>mono-stable button + smart bypass</strong> w module dimmera. Włącznik fizyczny działa zawsze (lokalnie), reszta dochodzi przez Zigbee</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wyjątek</strong>: w <strong>lampach stojących</strong> i <strong>dekoracyjnych z efektami kolorowymi</strong> (salonik z TV, sypialnia "klimat") — tak, <strong>IKEA Tradfri / Philips Hue / Innr</strong> są lepsze niż dimmer + RGBW pasek</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Hybryda: oświetlenie sufitowe → moduł dimmer w puszce. Oświetlenie nastrojowe (lampy stojące, taśmy LED w szafie wystawowej) → żarówki Zigbee / paski RGBW.</p>
<hr class="border-border-200 border-t-0.5 my-3 mx-1.5" />
<p class="font-claude-response-body break-words whitespace-normal leading-">@diego411 — masz dobry punkt wyjścia (HA Yellow już działa, szafa centralna jest), nie potrzebujesz palić mostów ani robić wszystkiego naraz. Najważniejsze TERAZ to dobrze pogadać z architektem i elektrykiem, żeby zostawili Ci infrastrukturę kablową (gwiazda, głębokie puszki, skrętki). Wszystko inne dorobisz potem przy spokojnym tempie.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">@isom @pawell32 — fajna wymiana o dimmerach, faktycznie temat ciekawy. Trzymajcie się.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Pozdrawiam, Darek (<strong>TechionGroup</strong> — automatyka PLC + Home Assistant; sporo czasu spędzam właśnie na konsultacjach na etapie remontu, bo to moment kiedy infrastruktura kosztuje najmniej a daje najwięcej)</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Dariusz Niepiekło</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/dla-poczatkujacych/start-z-ha-w-remontowanym-mieszkaniu/#post-34831</guid>
                    </item>
				                    <item>
                        <title>ODP: Fatek: gdzie zapisać dane na stałe w PLC</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34830</link>
                        <pubDate>Mon, 11 May 2026 19:17:48 +0000</pubDate>
                        <description><![CDATA[@dariuszniepieklo dzięki Darek 
prośba o powstrzymanie generowania postów AI 
pozdrawiam]]></description>
                        <content:encoded><![CDATA[<p>@dariuszniepieklo dzięki Darek </p>
<p>prośba o powstrzymanie generowania postów AI </p>
<p>pozdrawiam</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>adrian</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/fatek-gdzie-zapisac-dane-na-stale-w-plc/#post-34830</guid>
                    </item>
				                    <item>
                        <title>ODP: Pozycja Rolety MQTT</title>
                        <link>https://www.smartnydom.pl/forum/main-category-home-assistant/pozycja-rolety-mqtt/#post-34829</link>
                        <pubDate>Mon, 11 May 2026 19:13:30 +0000</pubDate>
                        <description><![CDATA[Cześć @martinsnow — temat masz rozwiązany dobrze i Twoja samodzielna odpowiedź jest poprawna (set_position_template z 100-position to klasyczny przypadek inwersji konwencji między Supla i HA...]]></description>
                        <content:encoded><![CDATA[<p class="font-claude-response-body break-words whitespace-normal leading-">Cześć @martinsnow — temat masz rozwiązany dobrze i Twoja samodzielna odpowiedź jest poprawna (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">set_position_template</code> z <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">100-position</code> to <strong>klasyczny przypadek inwersji konwencji</strong> między Supla i HA). Wracam do wątku po 6 latach, bo Google podsyła tu masę ludzi szukających "pozycja rolet MQTT" i warto zostawić rozbudowany kontekst dla tych, którzy trafią z innym stackiem niż Supla. Daję podsumowanie z perspektywy 13 stref rolet produkcyjnie spiętych z HA przez Modbus i MQTT.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Dlaczego Twoja inwersja <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">100-position</code> zadziałała</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Krótko, dla zaglądających:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Konwencja HA</strong>: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">position=0</code> = zamknięte, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">position=100</code> = w pełni otwarte</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Konwencja Supla MQTT</strong>: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">shut=0</code> = w pełni otwarte (0% zasłonięcia), <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">shut=100</code> = w pełni zamknięte (100% zasłonięcia)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Czyli <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">shut = 100 - position</code>. To samo dotyczy płaszczyzny "stan" (state_topic) — przy odczycie pozycji z Supli też masz <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">100 - shut</code>, ale w <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">value_template</code> HA większość ludzi pomija ten krok, bo <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">device_class: shutter</code> i tak rysuje suwak w odwrotnej skali (większa pozycja = wyżej otwarte). Praktyka pokazuje, że i tak warto być spójnym i odwracać w obu kierunkach, żeby nie pomieszać sobie statystyk i automatyk wykorzystujących pozycje liczbowe.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Pułapka kalibracji konwencji</strong> — różne urządzenia mają różne stany "0":</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Stack</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">0 oznacza</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">100 oznacza</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">HA cover</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">zamknięte</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">otwarte</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Supla MQTT (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">shut</code>)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">otwarte</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">zamknięte</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Fibaro Roller Shutter Z-Wave</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">otwarte</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">zamknięte</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Shelly 2.5/Plus 2PM</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">zamknięte</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">otwarte</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">KNX</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">otwarte</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">zamknięte</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Modbus (custom PLC)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">dowolne — definiujesz sam</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"> </td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Czyli pierwsza rzecz przy każdym nowym roletowym device w HA: <strong>sprawdź konwencję 0/100 i odwracaj jeśli trzeba</strong>. To rozwiązanie martinsnow działa dla Supli; dla Shelly nie odwracasz; dla Z-Wave Fibaro znowu odwracasz.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Skąd urządzenie wie, ile to jest "50%"</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Tu jest sedno, bo to nieoczywiste i jest najczęstszym źródłem frustracji.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Rolety standardowo <strong>nie mają enkodera pozycji</strong>. Mają tylko dwa krańcówki (full-open, full-close). Wszystko między nimi to <strong>liczenie czasu</strong>:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Kalibracja: jedziesz raz do góry (zaczyna czas T_up), jedziesz raz do dołu (T_down) — to są stałe czasowe danej rolety (zwykle 18-30 sekund)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Pozycja liczona = <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">(czas_jazdy_dotąd / T_full) × 100</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Gdy każesz "pozycja 50%", urządzenie:
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Sprawdza obecną pozycję</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Liczy różnicę → kierunek + ile sekund</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Wystawia komendę "góra/dół przez X sekund"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Po X sekundach zatrzymuje</li>
</ul>
</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Konsekwencja:</strong> kalibracja <strong>odjeżdża z czasem</strong>. Każdy klik "stop" w połowie ruchu wprowadza mikro-dryf. Po 30-60 cyklach masz błąd 5-10%. Trzeba albo:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Co X cykli <strong>wymuszać pełen end-of-travel</strong> (do końca jednego z kierunków) → wtedy resetujesz pozycję na 0 lub 100 z czujnika krańcowego</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Albo mieć <strong>flag "needs recalibration"</strong> który po przekroczeniu progu mówi userowi "podjedź do końca"</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">U mnie w 13 strefach robi to PLC autonomicznie — co kilkanaście jazd flag <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">M_NEED_CALIB</code> zapala się i przy następnym pełnym ruchu góra/dół następuje twardy reset pozycji.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Stack 1 (najprostszy): Supla / Shelly / Tasmota + HA + MQTT</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">To co masz martinsnow. Konfig jak Twój, plus:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="yaml code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">yaml</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code class="language-yaml"><span><span class="token token key">cover</span><span class="token token">:</span>
</span><span>  <span class="token token">-</span> <span class="token token key">platform</span><span class="token token">:</span> mqtt
</span><span>    <span class="token token key">name</span><span class="token token">:</span> <span class="token token">"Salon"</span>
</span><span>    <span class="token token key">command_topic</span><span class="token token">:</span> <span class="token token">"supla/channels/command/rollershutter/3646"</span>
</span><span>    <span class="token token key">state_topic</span><span class="token token">:</span> <span class="token token">"supla/channels/status/rollershutter/3646"</span>
</span><span>    <span class="token token key">position_topic</span><span class="token token">:</span> <span class="token token">"supla/channels/status/rollershutter/3646"</span>
</span><span>    <span class="token token key">set_position_topic</span><span class="token token">:</span> <span class="token token">"supla/channels/command/rollershutter/3646"</span>
</span><span>    <span class="token token key">set_position_template</span><span class="token token">:</span> <span class="token token">'{"id": 3646, "shut": {{ 100 - position }} }'</span>
</span><span>    <span class="token token key">value_template</span><span class="token token">:</span> <span class="token token">"{{ 100 - value_json.shut }}"</span>
</span><span>    <span class="token token key">position_open</span><span class="token token">:</span> <span class="token token">100</span>
</span><span>    <span class="token token key">position_closed</span><span class="token token">:</span> <span class="token token">0</span>
</span><span>    <span class="token token key">payload_open</span><span class="token token">:</span> <span class="token token">'{ "id": 3646, "shut": 0 }'</span>
</span><span>    <span class="token token key">payload_close</span><span class="token token">:</span> <span class="token token">'{ "id": 3646, "shut": 100 }'</span>
</span><span>    <span class="token token key">payload_stop</span><span class="token token">:</span> <span class="token token">'{ "id": 3646, "shut": "STOP" }'</span>
</span><span>    <span class="token token key">device_class</span><span class="token token">:</span> shutter
</span><span>    <span class="token token key">retain</span><span class="token token">:</span> <span class="token token">true</span>
</span><span>    <span class="token token key">optimistic</span><span class="token token">:</span> <span class="token token">false</span>
</span><span>    <span class="token token key">availability_topic</span><span class="token token">:</span> <span class="token token">"supla/channels/status/rollershutter/3646/online"</span>
</span><span>    <span class="token token key">payload_available</span><span class="token token">:</span> <span class="token token">'1'</span>
</span><span>    <span class="token token key">payload_not_available</span><span class="token token">:</span> <span class="token token">'0'</span>
</span><span>    <span class="token token key">qos</span><span class="token token">:</span> <span class="token token">1</span></span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Co dodałem względem Twojego oryginału (znowu — dla każdego nowego czytającego):</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">value_template</code> z inwersją</strong> — żeby suwak HA odzwierciedlał faktyczną pozycję zamiast wartości "shut"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">position_open: 100, position_closed: 0</code></strong> — explicit</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">payload_stop</code></strong> — żeby przycisk STOP w HA działał</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">availability_topic</code></strong> — HA wie kiedy device online vs offline (kluczowe dla automatyk: nie chcesz triggerować rolety która nie odpowiada)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">optimistic: false</code></strong> — HA czeka na potwierdzenie pozycji, nie zakłada że komenda się udała</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">qos: 1</code></strong> — at-least-once (przy <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">qos: 0</code> możesz stracić komendę jeśli broker będzie restartował się akurat w tym czasie)</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Stack 2 (PLC-based): Fatek / Wago / Siemens + HA przez Modbus TCP</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Architektura dla setupów wielostrefowych (5+ rolet). Brak MQTT, brak ESP w roletach — tylko PLC sterujący kasetkami przekaźnikowymi i HA czytający/piszący do PLC przez Modbus TCP.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Schemat rejestrów Modbus (dla N rolet, zakres <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R5000..R5000+N</code>):</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Rejestr</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Funkcja</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Zakres</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R5000+N</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">aktualna pozycja rolety N (R_POS_CUR)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">0-100</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R5100+N</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">docelowa pozycja rolety N (R_POS_TGT)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">0-100</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R5200+N</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">stan rolety N (R_STATE: 0=idle, 1=up, 2=down, 3=calib)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">0-3</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">M_NEED_CALIB</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">flaga "wymaga rekalibracji" rolety N</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">bit</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">W HA:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="yaml code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">yaml</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code class="language-yaml"><span><span class="token token key">modbus</span><span class="token token">:</span>
</span><span>  <span class="token token">-</span> <span class="token token key">name</span><span class="token token">:</span> fatek_plc
</span><span>    <span class="token token key">type</span><span class="token token">:</span> tcp
</span><span>    <span class="token token key">host</span><span class="token token">:</span> 192.168.1.50
</span><span>    <span class="token token key">port</span><span class="token token">:</span> <span class="token token">502</span>
</span><span>
</span><span><span class="token token key">cover</span><span class="token token">:</span>
</span><span>  <span class="token token">-</span> <span class="token token key">platform</span><span class="token token">:</span> template
</span><span>    <span class="token token key">covers</span><span class="token token">:</span>
</span><span>      <span class="token token key">roleta_salon</span><span class="token token">:</span>
</span><span>        <span class="token token key">friendly_name</span><span class="token token">:</span> <span class="token token">"Roleta Salon"</span>
</span><span>        <span class="token token key">position_template</span><span class="token token">:</span> <span class="token token">"{{ states('sensor.roleta_salon_pozycja_cur') | int }}"</span>
</span><span>        <span class="token token key">open_cover</span><span class="token token">:</span>
</span><span>          <span class="token token key">service</span><span class="token token">:</span> modbus.write_register
</span><span>          <span class="token token key">data</span><span class="token token">:</span>
</span><span>            <span class="token token key">hub</span><span class="token token">:</span> fatek_plc
</span><span>            <span class="token token key">address</span><span class="token token">:</span> <span class="token token">5100</span>   <span class="token token"># R_POS_TGT salon</span>
</span><span>            <span class="token token key">value</span><span class="token token">:</span> <span class="token token">100</span>
</span><span>        <span class="token token key">close_cover</span><span class="token token">:</span>
</span><span>          <span class="token token key">service</span><span class="token token">:</span> modbus.write_register
</span><span>          <span class="token token key">data</span><span class="token token">:</span>
</span><span>            <span class="token token key">hub</span><span class="token token">:</span> fatek_plc
</span><span>            <span class="token token key">address</span><span class="token token">:</span> <span class="token token">5100</span>
</span><span>            <span class="token token key">value</span><span class="token token">:</span> <span class="token token">0</span>
</span><span>        <span class="token token key">set_cover_position</span><span class="token token">:</span>
</span><span>          <span class="token token key">service</span><span class="token token">:</span> modbus.write_register
</span><span>          <span class="token token key">data</span><span class="token token">:</span>
</span><span>            <span class="token token key">hub</span><span class="token token">:</span> fatek_plc
</span><span>            <span class="token token key">address</span><span class="token token">:</span> <span class="token token">5100</span>
</span><span>            <span class="token token key">value</span><span class="token token">:</span> <span class="token token">"{{ position }}"</span>
</span><span>        <span class="token token key">stop_cover</span><span class="token token">:</span>
</span><span>          <span class="token token key">service</span><span class="token token">:</span> modbus.write_coil
</span><span>          <span class="token token key">data</span><span class="token token">:</span>
</span><span>            <span class="token token key">hub</span><span class="token token">:</span> fatek_plc
</span><span>            <span class="token token key">address</span><span class="token token">:</span> <span class="token token">800</span>   <span class="token token"># M800 = stop</span>
</span><span>            <span class="token token key">state</span><span class="token token">:</span> <span class="token token">true</span>
</span><span>
</span><span><span class="token token key">sensor</span><span class="token token">:</span>
</span><span>  <span class="token token">-</span> <span class="token token key">platform</span><span class="token token">:</span> modbus
</span><span>    <span class="token token key">name</span><span class="token token">:</span> roleta_salon_pozycja_cur
</span><span>    <span class="token token key">hub</span><span class="token token">:</span> fatek_plc
</span><span>    <span class="token token key">address</span><span class="token token">:</span> <span class="token token">5000</span>   <span class="token token"># R_POS_CUR</span>
</span><span>    <span class="token token key">unit_of_measurement</span><span class="token token">:</span> <span class="token token">"%"</span>
</span><span>    <span class="token token key">scan_interval</span><span class="token token">:</span> <span class="token token">1</span></span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Zalety vs stack MQTT:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Deterministyczne czasy — Modbus TCP ma &lt;50 ms round-trip, MQTT przez broker może być 200-500 ms (a przy odpalonym Frigate/Plex/inne → niestabilne)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Brak brokera w środku — mniej części, mniej awarii</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">PLC liczy pozycję sam, dokładność wyższa niż ESP (PLC nie ma garbage collectora, nie restartuje się przy aktualizacji)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Pozycja robi się <strong>w PLC</strong>, nie w HA — fizyczny włącznik na ścianie też ją aktualizuje</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Działa <strong>bez HA</strong> — fizyczne przyciski w pomieszczeniu reagują natychmiast, HA tylko orkiestruje</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Wady:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Wymaga PLC (3-5k zł na start) — nieopłacalne dla 2-3 rolet</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Trzeba umieć pisać ladder logic w WinProladder/CODESYS</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Modbus binding w HA jest bardziej "techniczny" niż auto-discovery MQTT</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Pułapki które złapałem przy 13 strefach</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Z 5 lat utrzymania produkcyjnego stack'a:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>HA Modbus "stuck flag" bug</strong> — przy restarcie HA czasem zostawia flagi M ustawione w PLC z poprzedniej sesji. Workaround: watchdog w ladderze, który co X sekund jeśli <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">HA_alive_flag == 0</code> (HA nie pisze) → RST wszystkich command-flags. U mnie to są flagi M1950-M1967</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Drift pozycji przy częstym stopowaniu</strong> — jeśli ktoś klika "stop, stop, stop" w połowie ruchu, pozycja drifftuje. Rozwiązanie: counter "ile razy zatrzymano w środku" → po przekroczeniu progu (np. 10) zapal <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">M_NEED_CALIB</code>. W praktyce u mnie ten mechanizm jest <strong>drugą linią obrony</strong> — pierwszą jest auto-kalibracja co noc (patrz sekcja niżej), więc <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">M_NEED_CALIB</code> rzadko ma okazję się zaświecić."Przy następnym pełnym ruchu góra/dół twardo zresetuj <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R_POS_CUR = 0</code> (na czujniku end-bottom) albo <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R_POS_CUR = 100</code> (na end-top). </li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Tilt dla żaluzji aluminiowych</strong> (martinsnow ma rolety zewnętrzne, więc go to nie dotyczy, ale wielu czytelników może mieć) — żaluzje z lamelami potrzebują <strong>drugiej wartości "tilt 0-100"</strong> obok pozycji. HA wspiera to przez <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">tilt_command_topic</code> i <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">tilt_position_topic</code>. W PLC robisz to osobnym rejestrem <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R_TILT</code>, sterowanie wymaga krótkich impulsów (~100-500 ms zamiast pełnej jazdy)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Rolety z silnikiem AC bez sygnału feedback</strong> — silnik kręci, ale jak roleta zablokowała się (śnieg, gałąź, dzieci podłożyły coś pod)? PLC nie wie. Workaround: prądomierz/pomiar PV silnika → jeśli prąd &gt; 50% nominalnego po końcu spodziewanego czasu → STOP + alarm. To "miękki" sensor zablokowania</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Konflikt komend</strong> — HA wysyła "pozycja 50%", w tym czasie ktoś klika fizyczny przycisk "góra". Kto wygrywa? U mnie w ladderze: <strong>fizyczny przycisk zawsze wygrywa</strong> (override). HA to "miła propozycja", którą ladder akceptuje tylko jeśli żaden fizyczny przycisk nie jest aktywny w danej chwili</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>MQTT retain dla pozycji</strong> — <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">retain: true</code> jest niezbędne dla <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">state_topic</code>, żeby HA po restarcie znało ostatnią znaną pozycję. Bez retain HA pokazuje "unknown" do pierwszej zmiany pozycji</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Zaokrąglanie pozycji</strong> — Supla wysyła <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">shut</code> jako integer 0-100. Jeśli zrobisz <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">value_template: "{{ 100 - value_json.shut }}"</code> i wartość wynosi 0 zamiast brak klucza → HA traktuje to jako "zamknięte". Zabezpieczenie: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">default(0)</code> w template</li>
</ol>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Best practice: auto-kalibracja co noc — dlaczego drift przestaje istnieć</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">To jest pattern, który u mnie rozwiązał problem driftu raz na zawsze i którego nie widziałem nigdzie opisanego po polsku, więc zostawiam tu w wątku. Idea jest prosta — zamiast walczyć z driftem (counter, flag "needs recalibration", user-prompt "podjedź do końca"), <strong>PLC kalibruje wszystkie rolety automatycznie w nocy</strong>, bez wiedzy mieszkańców.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Mechanizm:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">O godzinie X (u mnie 03:15, bo wtedy z wysokim prawdopodobieństwem nikt nie operuje roletami) PLC dla <strong>każdej</strong> rolety wykonuje sekwencję:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Sprawdza czy w ciągu ostatnich N godzin (u mnie 4h) nikt nie operował tą roletą ręcznie. Jeśli była zmiana — skip (ktoś nie śpi, nie chcemy go budzić nocnym ruchem)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Sprawdza czy roleta nie jest w <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">IGNORE_LIST</code> (osobny rejestr w PLC ustawialny z HA — np. "okno sypialni Ani, nie ruszać")</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Wystawia komendę "jedź w dół" przez <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">T_full_down + 5 sekund</code> (5s overshoot)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Po zakończeniu cyklu <strong>twardo ustawia</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R_POS_CUR = 0</code> (rolety i tak fizycznie blokują się na krańcowniku dolnym, więc 5 sekund nadmiaru nie szkodzi — silnik tylko gęściej hummi przed zatrzymaniem przez bezpiecznik termiczny w głowicy)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Loguje timestamp do <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">R_LAST_CALIB_N</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Przerwa 10 sekund między roletami (żeby nie ciągnąć prądu wszystkimi silnikami naraz — 13 rolet × ~300 W jednocześnie = ~4 kW startu)</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Rezultat:</strong> każdego ranka start dnia od zera kalibracji. Drift kumulowany z dnia poprzedniego = zresetowany. Nieważne ile razy ktoś klikał "stop, stop, stop" w połowie ruchu, ile razy HA wysłał komendę i się rozjechał, ile razy mikrokontroler w głowicy żółwią — <strong>o 7:00 każda roleta zaczyna dzień od pewnej, hardcoded pozycji 0</strong>.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Konsekwencje dodatkowe:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Czasowy model pozycji w ciągu dnia staje się dokładny</strong> (błąd &lt;5% przez cały dzień, bo kumuluje się tylko 16-18h zamiast tygodni)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">M_NEED_CALIB</code> flag nie jest już potrzebny do interakcji z userem</strong> (PLC sam o tym zadba) — zostaje tylko jako sygnał diagnostyczny dla loga</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Cykl życia silnika</strong> — paradoksalnie wydłuża się, bo zamiast wielu drobnych "stop w połowie ruchu" (każdy taki stop to inercja + mikro-zatarcie) silnik dostaje jeden pełen zamknięty cykl na koniec dnia, co czyści mechanikę</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Diagnostyka awarii</strong> — jeśli któraś roleta nie zakończyła kalibracji w spodziewanym czasie (np. czas jazdy 30s zamiast 22s) → flag w PLC + powiadomienie do HA → user dostaje rano "Roleta w pokoju Ani jechała 30% dłużej niż zwykle — sprawdź, czy nie ma blokady"</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Fragment ladder Fatek (uproszczony, dla 1 rolety):</strong></p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code><span>; Trigger nocny: RTC godzina 03:15
</span><span>|--------+
</span><span>|                                                            |
</span><span>|                                                            +------( SET M_AUTOCALIB )
</span><span>
</span><span>; Auto-kalib body — jedź w dół przez T_full + 5s
</span><span>|----+--( Y_dol )                  ; włącz silnik dół
</span><span>|                   +--( TMR T200 K=270 )         ; T200 base 0.1s, 270 = 27 sekund (T_full=22s + 5s)
</span><span>
</span><span>; Po T200 — zatrzymaj i twardo zresetuj pozycję
</span><span>|----+--( RST Y_dol )                     ; stop silnik
</span><span>|            +--( MOV K0 R_POS_CUR )              ; HARDCODED pozycja 0
</span><span>|            +--( MOV R_LAST_CALIB_TS R5500 )     ; log timestamp ostatniej kalibracji
</span><span>|            +--( RST M_AUTOCALIB )
</span><span>|            +--( SET M_NEXT_CALIB_DELAY )        ; trigger 10s przerwy przed następną roletą</span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Co kontroluje user z HA:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Switch <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">auto_calibration_enabled</code> (master on/off, np. wyjeżdżając na wakacje wyłączasz)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Switch per-roleta <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">roleta_X_autocalib_ignore</code> (np. okno przy łóżku Ani — nie ruszać o 3:15)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Sensor <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">roleta_X_last_calibrated</code> — pokazuje "kiedy ostatnio skalibrowane" (debug)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Time picker <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">autocalib_hour</code> — domyślnie 3:15, ale rodzina nocnego trybu pracy może ustawić na 14:00 (jak wszyscy w pracy)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Pułapka, na którą trzeba uważać:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Sprawdzaj czy roleta nie jest zablokowana (np. niedomknięte okno otwarte do środka i roleta o nie hakuje). Jeśli silnik ciągnie prąd przez czas dłuższy niż T_full + tolerancja, a <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">Y_dol</code> jest aktywne — STOP, alarm, <strong>nie wykonuj kolejnych kalibracji aż user potwierdzi w HA</strong>. Inaczej zniszczysz mechanizm rolety przez nocne wymuszanie ruchu na zablokowanym torze.<br /><br /></p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Integracja z pogodynką — daylight harvesting dla żaluzji fasadowych</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Dochodzimy do najfajniejszej części, czyli powodu, dla którego w ogóle warto ciągnąć skrętkę na dach pod własną pogodynkę i mieć kontrolę pozycji+tilt w PLC. To pattern znany w komercyjnych budynkach jako <strong>daylight harvesting</strong> (LEED EQ Credit 8.1), zaadaptowany do domu — i działa najlepiej z <strong>żaluzjami fasadowymi</strong> (Aluprof, Selt, Helar, Warema), które mają niezależne sterowanie wysokością (0-100%) i kątem lameli (0-90°). Zwykłe rolety zewnętrzne tego nie zrobią — to jest argument za żaluzjami fasadowymi w pomieszczeniach gdzie spędzasz najwięcej czasu z ekranem przed sobą (biuro, salon z TV, kuchnia z laptopem).</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Problem, który rozwiązuje:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Latem o 14:00 w słoneczny dzień natężenie na zewnątrz to 80-100 klx. Komfortowe natężenie do pracy z ekranem to 300-500 lx (norma EN 12464-1 dla biura). To <strong>różnica 200×</strong>. Trzy typowe scenariusze, wszystkie złe:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Żaluzje otwarte całkiem → oślepia, refleksy na monitorze, oczy bolą po godzinie</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Żaluzje zamknięte całkiem → ciemno, włączasz światło sztuczne, klimatyzacja musi pracować bo i tak duża masa termiczna fasady</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Ustawiasz ręcznie raz na 2 godziny → wzwy, męczące, nigdy nie idealne</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Rozwiązanie:</strong> PLC + pogodynka liczy w czasie rzeczywistym, jaki powinien być <strong>tilt lameli</strong> (a opcjonalnie też <strong>height</strong>) aby do pomieszczenia trafiało stałe natężenie ~400 lx, niezależnie od pogody na zewnątrz.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Wejścia algorytmu:</strong></p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Sygnał</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Źródło</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Częstotliwość</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Po co</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Lux outdoor</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Pogodynka (BH1750 lub Lumel)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">5-60 s</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">natężenie do skalowania</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Azimuth + elevation słońca</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">HA <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">sun.sun</code> component (oblicza z RTC + GPS)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">60 s</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">wiesz <strong>gdzie jest słońce</strong></td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Temp zewnętrzna</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Pogodynka (DS18B20 / BMP280)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">60 s</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">bonus: lato/zima inny target</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Stan zachmurzenia</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">OpenWeatherMap lub lux trend</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">5 min</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">gładkie przejścia</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Konfiguracja okna</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Per-roleta w PLC: azimuth fasady (np. południe=180°)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">static</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">kiedy słońce świeci w to konkretne okno</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">"Screen flag" pomieszczenia</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Per-roleta: M-bit "tu jest ekran"</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">static</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">agresywniejszy algorytm</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">User override timer</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Per-roleta: timer ostatniej manualnej operacji</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">per-event</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">szanuj decyzję usera przez 2h</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Algorytm (uproszczony, działa w lader Fatek):</strong></p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code><span>; Krok 1 — czy słońce świeci w to okno?
</span><span>; window_azimuth_min = 180-90 = 90° (wschód-południe-zachód)
</span><span>; window_azimuth_max = 180+90 = 270°
</span><span>; sun_in_window = (sun_azimuth ≥ 90 AND sun_azimuth ≤ 270 AND sun_elevation &gt; 10°)
</span><span>
</span><span>; Krok 2 — bazowy tilt z lux
</span><span>IF lux_outdoor &lt; 2000:        tilt_base = 0    ; pochmurno, otwórz max
</span><span>ELSE IF lux_outdoor &lt; 15000:  tilt_base = 30   ; jasno
</span><span>ELSE IF lux_outdoor &lt; 50000:  tilt_base = 50   ; bardzo jasno
</span><span>ELSE:                          tilt_base = 70   ; oślepiające
</span><span>
</span><span>; Krok 3 — korekta kąta padania
</span><span>; Gdy słońce świeci pod ostrym kątem (zachód), potrzebny większy tilt
</span><span>sun_correction = (90 - sun_elevation) / 3
</span><span>
</span><span>; Krok 4 — screen flag (biuro, salon z TV)
</span><span>screen_offset = (M_HAS_SCREEN AND sun_in_window) ? 15 : 0
</span><span>
</span><span>; Krok 5 — final tilt z saturation
</span><span>tilt_final = MIN(90, tilt_base + sun_correction + screen_offset)
</span><span>
</span><span>; Krok 6 — hysteresis (nie zmieniaj jeśli różnica &lt;5°)
</span><span>IF |tilt_final - tilt_current| &lt; 5: skip
</span><span>ELSE: MOV tilt_final R_TILT_TGT</span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Co to daje w praktyce u mnie:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">W biurze monitor zachowuje stałe natężenie ~400 lx przez cały dzień bez ręcznego dotykania niczego</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Klimatyzacja pracuje mniej (mniej promieniowania termicznego wchodzi przez okno; pomiar u mnie: -1,5 do -2°C latem w pomieszczeniu vs setup statyczny)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">W salonie podczas filmu wieczorem (M_TV_MODE) tilt zamyka się na 80° automatycznie, gdy ktoś włącza HA scenę "kino"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Zimą algorytm jest <strong>odwrotny</strong> — gdy słońce świeci, otwiera się max (passive solar heating, zwykle +2-3°C w pomieszczeniu o 12:00 w styczniu)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Hardware pogodynki — co zbudować na dachu:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Najprostszy zestaw na ESP32 (Raspberry Pi też się nadaje, ale ESP32 wystarcza):</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Czujnik</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Funkcja</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Cena</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">BH1750</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Natężenie światła 1-65535 lx</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">8 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">BMP280</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Ciśnienie + temp</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">12 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">DHT22 / SHT31</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wilgotność + temp</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">15-30 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Anemometr kubełkowy (impulsowy)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wiatr 0-30 m/s</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">80-120 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Deszczomierz tipping bucket</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Opady mm/h</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">50-100 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">UV index (VEML6075)</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Indeks UV</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">25 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">ESP32 + obudowa IP65 + zasilanie 24V→5V</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Sterownik</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">60 zł</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Razem</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">—</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>~250-350 zł</strong></td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Skrętka 4×2×0,5 mm² od dachu do szafy sterowniczej daje zasilanie + Modbus RS485 lub Ethernet (zależnie od konfigu). Jeśli na dachu jest miejsce w peszlu, dorzuć drugą skrętkę na zapas.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">ESP32 publikuje do MQTT broker w domu (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">pogodynka/lux</code>, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">pogodynka/wiatr</code>, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">pogodynka/uv</code> etc.), HA agreguje, oblicza orientację słońca przez <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">sun.sun</code> (wystarczy podać szerokość i długość w <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">configuration.yaml</code>) i wysyła do PLC docelowe wartości tilt+height przez Modbus.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Pomocniczy sygnał z pogodynki — automatyczne zamykanie przy burzy:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Killer feature, którego nie ogarniesz bez własnej pogodynki: gdy <strong>wiatr przekroczy 12 m/s</strong> (lub gradobicie wykryte z deszczomierza), PLC automatycznie:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Wciąga wszystkie żaluzje fasadowe na 100% w górę (chowa, żeby wiatr nie urwał lameli)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Zamyka markizy i wewnętrzne rolety okienne (ochrona przed gradem)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Wysyła push do HA: "wykryta burza, schowano X żaluzji"</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-">OpenWeatherMap też daje wiatromiar, ale opóźnienie do 30-60 minut. Własna pogodynka reaguje w 5 sekund. Jak był u nas w Wielkopolsce gradobicie w lipcu 2024, sąsiad miał 3 żaluzje do wymiany (12k zł). Moje schowały się 90 sekund przed pierwszą gradobicą — 0 zł szkód.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Pułapki, na które warto uważać:</strong></p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Hysteresis jest konieczna</strong> — bez niej algorytm w pochmurną pogodę będzie tańczyć tilt±15° co minutę. Serwomotor zżeresz w 6 miesięcy. Min 15 minut delay między zmianami + threshold |delta| &gt; 5°</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>User override</strong> — jeśli ktoś ręcznie ruszył tilt z poziomu HMI/przycisku, PLC wyłącza auto-correction dla tej rolety na <strong>2 godziny</strong> (timer w PLC). Inaczej user kliknie "otwórz", PLC za 5 sekund "zamknij bo lux wysoki", user się wkurzy</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Detekcja "zachód słońca vs burza"</strong> — gdy lux spada z 50 klx do 1 klx, mogą to być dwa scenariusze. Klucz: sprawdź <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">sun_elevation</code> z HA — jeśli &gt; 5° to chmura/burza (otwórz max, wykorzystaj resztki światła), jeśli &lt; 5° to zachód (PLC wykonuje <strong>definitive close</strong> na noc, według timera + sunset)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Konflikt z auto-kalibracją</strong> — sekcja powyżej. Auto-kalibracja resetuje pozycję na 0 nocą. Daylight harvesting nie może wystartować rano przed kalibracją. Solution: master state machine w PLC: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">IDLE → AUTOCALIB (03:15-03:45) → DAYTIME_HARVESTING (07:00-21:00) → EVENING_CLOSE (sunset) → NIGHT_IDLE → ...</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wycieki ciepła zimą</strong> — w nocy w styczniu chcesz żaluzje <strong>zamknięte</strong> (dodatkowa warstwa izolacji, U-value spada z ~1,1 na ~0,8 W/m²K). Algorytm: o 18:00 zimą wszystkie żaluzje zamykają się max (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded- px-1 py-px text-">tilt=90°, height=0%</code>), niezależnie od auto-kalibracji</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Pomieszczenia z roślinami</strong> — szczególnie storczyki, kaktusy. M-flag "tu są rośliny" → minimum tilt 20° (zawsze wpuszczaj rozproszone światło)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Sąsiad / prywatność</strong> — gdy słońce ma niski kąt (zachód, październik-marzec), tilt też kontroluje <strong>co widzą sąsiedzi</strong>. Lamela w pozycji "góra do wewnątrz" = nie widać do środka. M-flag "okno przylegające do działki sąsiada" → preferuj tilt-up nad tilt-down</li>
</ol>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Skutek użytkowy</strong> — i to jest dosłowny powód, czemu klienci zostają z tym systemem na lata:</p>
<blockquote class="ml-2 border-l-4 border-border-300/10 pl-4 text-text-300">
<p class="font-claude-response-body break-words whitespace-normal leading-">"Pierwsze 2 tygodnie nie zauważasz że coś się dzieje. Po miesiącu odkrywasz, że nie pamiętasz kiedy ostatni raz dotknąłeś przycisku rolety. Po pół roku ktoś przychodzi do Ciebie i mówi 'kurde, w Twoim biurze jest jakoś tak miło' — i nie potrafi powiedzieć czemu."</p>
</blockquote>
<p class="font-claude-response-body break-words whitespace-normal leading-">To jest moment, kiedy automatyka staje się niewidzialna, a to jest jej ostateczny test.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Pytanie: kiedy MQTT, kiedy Modbus, kiedy bezpośrednia integracja</h3>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Liczba rolet</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Stack rekomendowany</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">1-3</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Shelly Plus 2PM + native HA integration. Najprostsze, ZERO YAML</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">3-6</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Supla / Shelly + MQTT (jak masz @martinsnow)</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">5-12</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wago / Siemens LOGO + Modbus TCP do HA</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">10+</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Fatek FBs / Wago 750 + Modbus TCP + opcjonalnie HMI Weintek dla paneli ściennych</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Próg "kiedy PLC" jest dyskusyjny, ale moim zdaniem <strong>przy 5-6 roletach robi się sensownie</strong>, przy 10+ jest oczywiste — bo skala kasetek przekaźnikowych, czas okablowania i koszt 10 sztuk Shelly Plus 2PM (≈1500-2000 zł) zbliżają się do ceny PLC, a uzyskujesz znacznie wyższą niezawodność i autonomię.</p>
<hr class="border-border-200 border-t-0.5 my-3 mx-1.5" />
<p class="font-claude-response-body break-words whitespace-normal leading-">@martinsnow — fajnie że rozwiązanie zostawiłeś w wątku, to się bardzo przydaje. Pisz jakby kiedyś chciał pójść w stronę PLC + Modbus zamiast MQTT, bo jak masz Supla = masz dużo rolet = stack ESP czasem zaczyna zgrzytać przy 10+ urządzeniach. Trzymaj się.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Pozdrawiam, Darek (<strong>TechionGroup</strong> — automatyka PLC Fatek + HMI Weintek + SCADA + Home Assistant)</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Dariusz Niepiekło</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/main-category-home-assistant/pozycja-rolety-mqtt/#post-34829</guid>
                    </item>
				                    <item>
                        <title>ODP: Układ Fatek + DMX</title>
                        <link>https://www.smartnydom.pl/forum/sterowniki-plc/uklad-fatek-dmx/#post-34828</link>
                        <pubDate>Mon, 11 May 2026 18:54:40 +0000</pubDate>
                        <description><![CDATA[Odgrzebuję wątek po 4 latach — bo @zacofunny zadał wtedy bardzo dobre pytanie architektoniczne (&quot;chcę mieć mechanizmy wyprowadzone na Fateku, żeby bez OpenHAB też działało&quot;), a dyskusja się ...]]></description>
                        <content:encoded><![CDATA[<p class="font-claude-response-body break-words whitespace-normal leading-">Odgrzebuję wątek po 4 latach — bo @zacofunny zadał wtedy <strong>bardzo dobre pytanie architektoniczne</strong> ("chcę mieć mechanizmy wyprowadzone na Fateku, żeby bez OpenHAB też działało"), a dyskusja się urwała, zanim ktoś rozrysował to konkretnie. A Google ciągle podsyła ludzi tutaj na frazę "Fatek DMX", więc zostawiam podsumowanie dla tych, którzy trafią tu w 2026+ z tym samym dylematem.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Postaram się odpowiedzieć na to, co zacofunny chciał uzyskać, bo zrobiłem dokładnie taką architekturę u siebie (Fatek FBs jako master sceny, Promyk jako bridge Modbus→DMX, taśmy LED 24V przez sterowniki Dagon Lighting).</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Dlaczego architektura "Fatek master + Promyk slave" ma sens</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">@Alien zapytał "dlaczego nie chcesz korzystać z DMX binding". Odpowiedź jest taka, jaką dał zacofunny — i jest słuszna:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">DMX binding w OpenHAB / HA wymaga, żeby OH/HA był online</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Jeśli HA padnie (update, restart, zawiśnie integracja, padnie SD w Raspberry) — Twoje LED-y są w stanie ostatnio ustawionym, <strong>nie można ich nawet wyłączyć fizycznym przyciskiem</strong></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Jeśli logika scen siedzi w PLC, to fizyczny włącznik na ścianie (X-input Fateka) ma natychmiastową odpowiedź. PLC pisze przez Modbus do Promyk, Promyk wysyła nowe DMX-frame, koniec</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">HA dalej może działać równolegle i dodawać "bajery" (kolorowe efekty, sync z muzyką, fade na zachód słońca), ale <strong>warstwa fundamentalna jest niezależna od HA</strong></li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">To jest dokładnie ta sama filozofia co ze sterowaniem roletami przez PLC vs Shelly Wave — PLC zawsze działa, dodatki to bonus.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Architektura konkretnie</h3>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code><span>
</span><span>    │ Ethernet (Modbus TCP slave na porcie 502)
</span><span>    └─
</span><span>         ├─
</span><span>         │     │ DMX-512 (RS485, kabel XLR 3-pin lub CAT5 zakończony RJ45)
</span><span>         │     ├─
</span><span>         │     │       │ 12× wyjście PWM 24V, do 5 A/kanał
</span><span>         │     │       ├→ Taśma LED 24V w salonie (R)
</span><span>         │     │       ├→ Taśma LED 24V w salonie (G)
</span><span>         │     │       ├→ Taśma LED 24V w salonie (B)
</span><span>         │     │       ├→ Taśma LED 24V w salonie (W)
</span><span>         │     │       └→ pozostałe 8 kanałów dla innych stref
</span><span>         │     │
</span><span>         │     ├─ → kolejna strefa
</span><span>         │     └─ → max ~42 sztuki na jedną linię DMX (512/12)
</span><span>         │
</span><span>         └─
</span><span>                 ↑ łączy się z Fatekiem przez Modbus binding
</span><span>                 ↑ wysyła "wybierz scenę X" do Fateka
</span><span>                 ↑ Fatek sam ustawia kanały DMX przez Promyk</span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">@zacofunny pytał czy obrazek z kwmatik.com.pl jest prawidłowy — <strong>tak, dokładnie tak to wygląda</strong>, plus między Promykiem a taśmami LED faktycznie wpinasz moduły Dagon Lighting SPM-12 (albo Showmaster, albo dowolny inny DMX-decoder, byle 24V i z odpowiednią mocą).</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Konfiguracja w Fateku — tablica Modbus</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Promyk DX1/DX2 w trybie <strong>Modbus TCP slave</strong> udostępnia 512 holding registers — każdy odpowiada jednej wartości DMX (0–255). Fatek jako Modbus TCP <strong>master</strong> pisze do tych rejestrów.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Mapowanie u mnie:</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Rejestr Fatek</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Kanał DMX</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Funkcja</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R3000</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">1</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Salon R</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R3001</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">2</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Salon G</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R3002</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">3</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Salon B</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R3003</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">4</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Salon W</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">R3004</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">5</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Sypialnia R</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">...</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">...</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">...</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">R3000–R3839 są non-retentive w Fatek (wracają do 0 po power-off — co przy LED jest pożądane, nie chcesz żeby po awarii zasilania światło zaświeciło się ze stanu sprzed sekundy), więc to dobry zakres dla scratch DMX.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Ladder dla "scena kino" (przyciska X10):</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" role="group" aria-label="Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10">
<div class="relative">
<div class="transition-all opacity-100 scale-100"> </div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="transition-all opacity-0 scale-50"> </div>
</div>
</div>
</div>
</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" contenteditable="false"><code><span>|------|     ; gaszę kanał R
</span><span>|                    ; G
</span><span>|                    ; B
</span><span>|                    ; W na 30/255 = ~12% ciepłej bieli
</span><span>|                    ; sypialnia OFF</span></code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">W Fateku konfigurujesz <strong>FUN150 (M-BUS Master TCP)</strong> — Modbus master TCP, jako "client" do Promyka — czyta/pisze do jego holding registers (function code 16, write multiple registers). Cyklicznie albo na trigger.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Drobny detail: konfiguracja FUN150 w WinProladderze (Project → Configuration → Modbus Master) — wpisujesz IP Promyka (np. 192.168.0.50), port 502, station ID 1, mapping target = R3000–R3511 (512 rejestrów = 1 frame DMX-512).</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Konfiguracja Promyka</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">W WebUI Promyka (po wpisaniu jego IP w przeglądarce):</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Tryb: <strong>Modbus TCP slave</strong> (nie master!)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Mapping: holding register 0–511 → DMX channel 1–512</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Jeśli masz Promyk DX2 (dwa porty DMX): rejestr 0–511 → DMX1, 512–1023 → DMX2</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Optoizolacja: WŁĄCZ jeśli długi kabel DMX (&gt;10m); WYŁĄCZ tylko przy bardzo krótkich połączeniach (Promyk ma to przełącznikiem na obudowie w wersji 1.2)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Aktualizacja względem 2022 (Alien wspomniał o firmware z 16.04.2021): dziś <strong>Promyk ma już znacznie nowsze firmware</strong> (jest wsparcie ArtNet/sACN obok Modbus, są fade'y po stronie bramki, scene memory). Jeśli kupujesz w 2026 — dopytaj kwmatika o najnowszą wersję, bo niektóre niedostępne wtedy funkcje teraz są dostępne.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">HA jako warstwa orkiestracji (opcjonalna ale przydatna)</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">HA podpinasz do Fateka przez <strong>integrację Modbus</strong> (nie DMX binding). HA pisze do M-rejestrów Fateka (np. M500 = "scena kino", M501 = "scena praca", M502 = "scena romantyczna"), a Fatek po wykryciu narastającego zbocza takiego M ustawia kanały DMX przez Promyk.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Plus: w HA budujesz automatyki czasowe ("o 22:00 włącz scenę nocną"), nasłoneczniowe ("po zachodzie słońca scena ciepła"), nastrojowe ("Sonos gra muzykę → scena lounge"). HA decyduje <strong>kiedy</strong>, Fatek decyduje <strong>jak</strong>.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Jak HA padnie:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Fatek dalej reaguje na fizyczne włączniki</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Sceny zaprogramowane w ladderze działają</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Tracisz tylko automatyki czasowe i triggery z innych systemów (Sonos, kalendarz, kamery, czujki ruchu w Zigbee)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Jak Fatek padnie:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Tracisz wszystko — ale Fatek nie padnie. Mam swój 5 lat 24/7, zero reboot.</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Alternatywy w 2026, których nie było w 2022</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Wątek jest z 2022, więc warto wspomnieć co się zmieniło:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>WLED</strong> (open source, ESP32) — alternatywa do całego stack'a DMX dla <strong>adresowalnych LED-ów</strong> (WS2812B, WS2815, SK6812). Sterownik ESP32 za ~50 zł, wpinasz w sieć WiFi/Ethernet, sterujesz przez HA via JSON API. <strong>Nie zastępuje DMX</strong> dla zwykłych taśm 24V RGBW (DMX jest tu nadal najlepszy), ale dla efektów pikselowych jest znacznie lepszy</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>ArtNet / sACN zamiast Modbus TCP</strong> — Promyk w nowszych firmware obsługuje ArtNet. Dla setupów z &gt;1024 kanałów (kilka pomieszczeń, dużo stref) ArtNet jest naturalniejszy niż Modbus, bo to natywny protokół oświetleniowy. Fatek niestety nie ma ArtNet natywnie — w tym przypadku albo HA jest mostkiem (Fatek → Modbus → HA → ArtNet → Promyk), albo używasz drugiego ESP32 jako Modbus→ArtNet bridge</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Mean Well LCM-40DA / LCM-60DA</strong> — dla scen wymagających <strong>DALI</strong> zamiast DMX. Profesjonalna jakość, certyfikaty, prosta integracja w HA przez DALI USB. Drożej, ale dla rezydencji premium ma sens</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>OpenLighting Architecture (OLA)</strong> — open source DMX/ArtNet/sACN bridge na Raspberry Pi. Może działać obok HA jeśli ktoś chce zupełnie open-source stack</li>
</ol>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">Pułapki, na które warto uważać</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Z mojego doświadczenia z tej architektury:</p>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Adresacja DMX modułów Dagon</strong> — pamiętaj że każdy moduł SPM-12 ma DIP-switch ustawiający początkowy kanał. SPM-12 #1 startuje od kanału 1, #2 startuje od kanału 13 (nie 12, bo SPM-12 zajmuje kanały 1-12, kolejny startuje od 13). Łatwo się pomylić</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Zasilacze 24V do LED RGBW</strong> — kupuj <strong>z zapasem mocy 30%</strong>. RGBW LED przy pełnej jasności wszystkich 4 kanałów ciągnie więcej niż producent deklaruje. Mean Well HLG-240H-24A albo lepsze</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Kabel DMX</strong> — dedykowany <strong>DMX cable 110 Ω</strong> (np. Tasker C275 albo Klotz), nie zwykła skrętka. Skrętka Cat5e/6 (100 Ω) zadziała na krótkich dystansach (do 30 m), ale na 100 m masz odbicia i flickering. To samo dotyczy terminatora 120 Ω na końcu linii DMX</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Optoizolacja jest must-have</strong> dla setupów domowych — chroni Promyka przed problemami z masą gdy moduły LED siedzą w różnych obwodach</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Kolejność wpinania w Modbus</strong>: pamiętaj że Modbus TCP od Fateka do Promyka chce <strong>mieć stałe IP Promyka</strong> — koniecznie ustaw DHCP reservation w routerze albo statyczny IP w Promyku. Jeśli Promyk dostanie nowe IP, Fatek nie znajdzie go i sceny umrą po cichu</li>
</ol>
<hr class="border-border-200 border-t-0.5 my-3 mx-1.5" />
<p class="font-claude-response-body break-words whitespace-normal leading-">Mam nadzieję, że to się komuś przyda. @zacofunny — jeśli dalej zaglądasz po 4 latach i potrzebujesz kodu ladder, mogę podesłać przykładową strukturę projektu (mam to wszystko produkcyjnie zrobione). @alien — DMX binding jest świetny do orkiestracji, masz rację, ale dla zacofunnego "działa nawet jak padnie OH" było kluczowe i miał słuszność w upieraniu się przy Modbus.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Wątek do dyspozycji następnych, którzy trafią tu z Google.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Pozdrawiam, Darek (<strong>TechionGroup</strong> — Fatek PLC / Weintek HMI / SCADA / Home Assistant; sceny DMX 512 kanałów w domu wielostrefowym = mój chleb powszedni)</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Dariusz Niepiekło</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/sterowniki-plc/uklad-fatek-dmx/#post-34828</guid>
                    </item>
				                    <item>
                        <title>ODP: Nowy dom- wstępne założenia dla zielonego</title>
                        <link>https://www.smartnydom.pl/forum/dla-poczatkujacych/nowy-dom-wstepne-zalozenia-dla-zielonego/#post-34827</link>
                        <pubDate>Mon, 11 May 2026 18:42:29 +0000</pubDate>
                        <description><![CDATA[Cześć tasiu, gratulacje z budową — i przede wszystkim gratulacje z timingiem. Ławy fundamentowe to dosłownie najlepszy możliwy moment, żeby zadać te pytania. Za 3 miesiące już nie będziesz m...]]></description>
                        <content:encoded><![CDATA[<p class="font-claude-response-body break-words whitespace-normal leading-">Cześć tasiu, gratulacje z budową — i przede wszystkim <strong>gratulacje z timingiem</strong>. Ławy fundamentowe to dosłownie najlepszy możliwy moment, żeby zadać te pytania. Za 3 miesiące już nie będziesz mógł wielu rzeczy zrobić tanio, więc to co teraz przegapisz, później będzie bolało albo finansowo (kucie i ciągnięcie po powierzchni) albo funkcjonalnie (po prostu się odpuści).</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Postaram się dać Ci uporządkowaną mapę "od czego zacząć", bo widzę po Twoim opisie że masz mętlik typowy dla początku — 17 produktów dookoła i każdy obiecuje że "u nas wszystko działa".</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">1. Najważniejsze: myśl warstwami, nie urządzeniami</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">90% błędów na początku bierze się z tego, że ludzie wybierają najpierw urządzenia (Fibaro? Shelly? Supla?), a dopiero potem zastanawiają się, jak to całe spiąć. Odwróć to. Inteligentny dom składa się z <strong>czterech warstw</strong> i każdą wybierasz osobno:</p>
<div class="overflow-x-auto w-full px-2 mb-6">
<table class="min-w-full border-collapse text-sm leading- whitespace-normal">
<thead class="text-left">
<tr>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Warstwa</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Co robi</th>
<th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col">Dla Ciebie</th>
</tr>
</thead>
<tbody>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Krytyczna (PLC)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Rzeczy, które MUSZĄ działać nawet jak padnie internet, prąd, Wi-Fi</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Rolety, elektrozamek, ogrzewanie, automatyka drzwi/bram</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Orkiestrator (HA / OpenHAB)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">"Mózg" scen, automatyk czasowych, integracji z chmurą</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Wschody/zachody słońca, powiadomienia, statystyki</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Peryferia (Zigbee / Z-Wave)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujki, gniazdka, włączniki "miłe to mieć"</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Czujnik ruchu, czujnik dymu, sterowane gniazda dekoracyjne</td>
</tr>
<tr>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><strong>Interfejs (HMI / app / przyciski)</strong></td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">To czego dotyka palec lub oko</td>
<td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Panel Weintek w przedpokoju, app w telefonie, klasyczne włączniki</td>
</tr>
</tbody>
</table>
</div>
<p class="font-claude-response-body break-words whitespace-normal leading-">Twoje okno Fakro Z-Wave nie wymusza, żebyś budował cały dom na Z-Wave. <strong>Home Assistant obsługuje jednocześnie Zigbee i Z-Wave</strong> (osobne bramki, ten sam mózg). To jest właśnie pointe HA — łączy ekosystemy które normalnie się nie gadają. Fakro będzie pracować obok Aqary, IKEA Tradfri czy czegokolwiek innego.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">2. Etap "stan surowy" — co MUSISZ ciągnąć w ścianach teraz</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">To jest sekcja, którą warto przeczytać 3 razy, bo każdy pominięty kabel to za 2 lata albo bruzda, albo brak funkcji.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Zasilanie 230 V:</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Każdą rolet osobny obwód (silnik 230 V + neutralny + PE), kabel 3×1,5 mm², zakończony w szafie sterowniczej (nie w puszce nad oknem!)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Każdy obwód oświetlenia z <strong>przewodem neutralnym w puszce włącznika</strong> (kluczowe — wiele włączników smart wymaga "N", a tradycyjna instalacja go nie ma)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Rezerwa: do każdej puszki włącznika dodatkowa para żył (kiedyś będzie podświetlenie, sygnalizacja, cokolwiek)</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Skrętka komputerowa Cat6 (albo Cat6a "na zaś") — i tu jest sedno:</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Skrętki ciągnij <strong>wszędzie gdzie tylko może być sygnał</strong>, nawet jeśli dziś nie wiesz po co. Para Cat6 kosztuje 1,50 zł/m, robocizna po wykończeniu = setki złotych za każdy nowy kabel. Konkretnie:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Do każdej oprawy LED w suficie/ścianie</strong> — skrętka <strong>obok</strong> zasilania (osobny peszel, żeby nie indukowało). Po co? Cyfrowe sterowanie LED-ami (DALI, 0-10V, PWM, DMX, adresowalne WS2812/SK6812). Bez skrętki masz tylko on/off; ze skrętką masz dimming, scenę, kolor RGBW, efekty</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Do każdego "ważnego" gniazda 230 V</strong> — sterowane gniazda (lampka stojąca, telewizor, oczyszczacz powietrza, ładowarka). Sygnał ze sterownika w szafie → przekaźnik w puszce → gniazdo. Bez skrętki musisz dawać Shelly za 80 zł do każdego gniazda + Wi-Fi, ze skrętką wszystko wraca do PLC i nie ma żadnego radia</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Do każdej puszki kontaktronu w oknach i drzwiach</strong> — kontaktron magnetyczny (zwykły, kablowy, bezbateryjny, za 15 zł sztuka) wykrywa otwarcie/uchył. Ze skrętki dostaje sygnał do PLC, który wie wszystko: "okno w salonie otwarte 23 min", "wyjeżdżasz z domu a okno w pokoju Ani jest otwarte" → push do telefonu. <strong>To nie tylko wygoda, to bezpieczeństwo</strong> — gotowy fundament alarmu strefowego, bez kupowania osobnego centralnego systemu alarmowego za 5-10k zł</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Do drzwi wejściowych i bramy garażowej</strong> — automatyka (elektrozamek, czujnik pozycji bramy, sterowanie silnikiem). Skrętka + zasilanie. Plus skrętka do furtki (interkom video PoE, elektrozaczep)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Pod każdy narożnik domu i koniecznie nad wejściem głównym</strong> — kamera PoE. Jedna skrętka = zasilanie + obraz + sterowanie. Później dokupujesz kamerę za 300-800 zł i wpinasz w switch PoE w szafie. Jeśli ciągniesz teraz, potem nie kujesz elewacji</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Na dach (poddasze, jeśli płaski — to do warstwy hydroizolacji)</strong> — <strong>własna pogodynka</strong>: anemometr, deszczomierz, czujnik światła, czujnik temp. zewnętrznej. Po co własna a nie OpenWeatherMap? Bo gdy wieje 60 km/h na Twoim dachu, a kilometr dalej cisza, to OWM nie podniesie alarmu "schowaj markizy/zamknij okna dachowe". Skrętka + zasilanie 12V, ~150-300 zł czujników u Tinytrend / Eltrip / własny ESPHome. Nie zapomnij wkopać 2 arotów do bramy wjazdowej i ewentualnie kolejny pusty arot do przyłącza. Z doświadczenia wiem, że jak wpadniesz na genialny pomysł za kilka lat, to nie będzie trzeba ryć podwórka jak będziesz potrzebował odczyty z przyłącza, jakaś fotowoltaika, czy najzwyczajniej w świecie sterowanie i zasilanie bramy wjazdowej. Czemu 2 peszle? osobno sterowanie/telecom i osobno zasilanie. Prowadząc przewody po domu też pamiętaj aby trzymać się dobrej zasady przynajmniej pół metra od siebie przewody zasilające od sterowania. Niby nic ale ja u siebie położyłem w domku 15 km przewodów i w pewnym momencie robi się wąsko z przejściami.  </li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Killer-feature dla sufitów napinanych (PVC/PCV):</strong> jeśli planujecie sufity napinane w jakimkolwiek pomieszczeniu — daj na strop dodatkowy zapas skrętki (3-4 m zwinięte i zostawione w puszce). Potem <strong>bez kucia stropu możesz dorzucić cokolwiek pod sufit napinany</strong> (czujki, oprawa, głośnik) bo wystarczy zdjąć folię, dorzucić co potrzeba, naciągnąć folię z powrotem. Tylko musisz mieć ten kabel wcześniej pod sufitem. Tutaj warto zaznaczyć, że na etapie budowy warto dorzucić 1 bloczek do wysokości aby zostawić przestrzeń między napinanym sufitem, a stropem. Da Ci to dużo przestrzeni roboczej na pochowanie kabli, rur od rekuperacji itd.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Magistrale dedykowane (opcjonalnie ale warto):</strong></p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Jedna para skrętki jako rezerwowy KNX-bus (4 żyły) — nawet jeśli dziś nie używasz KNX, za 10 lat może się przydać przy sprzedaży / rozbudowie</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Para skrętki jako Modbus RS485 do urządzeń przemysłowych (licznik energii, falownik PV, pompa ciepła) — wszystkie nowoczesne pompy ciepła mają Modbus</li>
</ul>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">3. Co kupić i gdzie postawić — szafa sterownicza vs bramka</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Trzecia ważna decyzja: bramka Zigbee/Z-Wave + przekaźniki Shelly, <strong>czy szafa sterownicza z PLC</strong>?</p>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Przy Twojej liście wymagań (rolety, ogrzewanie wielostrefowe, elektrozamek, furtka, podlewanie, deszczówka)</strong> szczerze polecam: <strong>szafę sterowniczą z PLC + HA jako orkiestrator + Zigbee/Z-Wave dla peryferii</strong>. Powody:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Z rolety, ogrzewania wielostrefowego, elektrozamka i automatyki drzwi/bram robi się <strong>20-30 wyjść sterujących</strong> — to już nie jest "kilka Shelly", to klasyczna automatyka przemysłowa zminiaturyzowana do domu</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Awaria HA (restart, update, padnie SD karta w Raspberry) <strong>nie może</strong> wyłączyć Ci rolet i ogrzewania. PLC działa autonomicznie nawet bez HA. HA tylko orkiestruje sceny i dodaje "rozum"</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Rozbudowa przez lata = dodajesz tylko moduły I/O do PLC. Nie kupujesz co rok nowej generacji Shelly Wave/Plus/Pro</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-">Typowa zawartość szafy 36-zmodułowej:</p>
<ul class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">PLC (np. Fatek FBs-40MC + moduły, ~3-4k zł całość) lub Wago / Siemens LOGO — w zależności od budżetu</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Zasilacz 24 V DC, 5-10 A</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">UPS / zasilacz buforowy (dom bez prądu → rolety i drzwi jeszcze działają)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Switch PoE 8-16 portów (kamery + HMI)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Mini-PC z HA (Intel NUC ~1500 zł lub Raspberry Pi 5 z dyskiem SSD ~700 zł)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Bramka Zigbee (Sonoff ZB Dongle Plus, ~100 zł)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Bramka Z-Wave (Aeotec Z-Stick 7, ~300 zł, dla Twojego Fakro)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Przekaźniki interface'owe (Relpol RM85 albo Finder 40.52) na szynie DIN</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Roletter / rolet modul, bezpieczniki, ochronniki przepięciowe</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-"><strong>Lokalizacja szafy:</strong> najlepiej osobne małe pomieszczenie albo wnęka (kotłownia, pralnia, garderoba) z wentylacją. Wszystkie kable z całego domu spinasz właśnie tutaj. Każda skrętka kończy się tutaj, każde zasilanie ze sterowanych obwodów kończy się tutaj. <strong>Daj sobie zapas 30% miejsca</strong> w szafie na rozbudowę.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">4. Raspberry Pi vs NUC — krótko</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-">Raspberry Pi 5 z dyskiem SSD (nie karta SD!) jest OK do startu — wytrzyma 5-10 tysięcy encji w HA. Intel NUC / minisforum / podobne za 1500-2000 zł to klasa wyżej (więcej RAM, szybszy storage, lepsza obsługa add-onów typu Frigate dla kamer z AI, dłuższa żywotność dysków). Jeśli budujesz na 15 lat, NUC. Jeśli na start, RPi5+SSD spokojnie wystarczy.</p>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">5. Milestone'y budowy — co kiedy</h3>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Teraz (ławy/stan zerowy)</strong> — peszle pod fundamentami do furtki, garażu, pogodynki na dachu, podlewania w ogrodzie. Zakopane peszle są praktycznie niemożliwe do dorzucenia później bez wykopków</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Stan surowy (ściany, stropy)</strong> — całe okablowanie wewnątrz: skrętki, zasilanie sterowanych obwodów, neutralne w puszkach włączników, peszle do każdej puszki LED w suficie</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Sufit napinany / sufit gipsowy</strong> — ostatni moment na dorzucenie czegokolwiek, co miałoby być nad sufitem. Po zamknięciu sufitu = kucie</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Biały montaż + posadzki</strong> — instalacja podłogówki, kontaktrony do drzwi/okien, oprawy LED</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wykończenia</strong> — montaż szafy sterowniczej, paneli HMI, włączników, podłączenie wszystkiego do PLC</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Po wprowadzeniu</strong> — HA + automatyki + scenariusze + rozbudowa peryferii (Zigbee, Z-Wave)</li>
</ol>
<h3 class="text-text-100 mt-3 -mb-1 text- font-bold">6. Top 5 błędów do uniknięcia</h3>
<ol class=":mb-0 :mt-1 :gap-1 :pb-1 :pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wybór technologii przed planem funkcji</strong> — najpierw spisz wszystkie funkcje, potem dobieraj</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Wszystko na Wi-Fi</strong> — Wi-Fi padnie i nie zamkniesz drzwi. Krytyczne rzeczy MUSZĄ działać kablowo</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Brak rezerwy okablowania</strong> — 30% kabli więcej niż "myślisz że potrzebujesz" jest minimum</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Brak dokumentacji okablowania</strong> — opisz każdą skrętkę markerem permanentnym <strong>w trakcie</strong> kładzenia. Za 3 miesiące nie pamiętasz która jest która</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Brain (HA / PLC) za ostatnim Wi-Fi extenderem</strong> — szafa sterownicza musi być w środku domu, kablowo spięta z routerem, nie na końcu sieci</li>
</ol>
<hr class="border-border-200 border-t-0.5 my-3 mx-1.5" />
<p class="font-claude-response-body break-words whitespace-normal leading-">Wiem, że to jest dużo — ale szczerze, etap ław to jedyne okno czasowe kiedy można to wszystko ułożyć tanio. Jak będziesz miał konkretne pytania (typ skrętki, marka kontaktronów, model PLC, układ szafy) — wal śmiało. 2 lata temu przez to przechodziłem, więc jestem na świeżo :-)</p>
<p class="font-claude-response-body break-words whitespace-normal leading-">Pozdrawiam, Darek (<strong>TechionGroup</strong> — automatyka PLC Fatek / HMI Weintek / SCADA / integracja Home Assistant)</p>]]></content:encoded>
						                            <category domain="https://www.smartnydom.pl/forum/"></category>                        <dc:creator>Dariusz Niepiekło</dc:creator>
                        <guid isPermaLink="true">https://www.smartnydom.pl/forum/dla-poczatkujacych/nowy-dom-wstepne-zalozenia-dla-zielonego/#post-34827</guid>
                    </item>
							        </channel>
        </rss>
		
<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 53/58 objects using Memcached
Page Caching using Memcached (Requested URI contains query) 
Database Caching 7/36 queries in 0.025 seconds using Memcached

Served from: www.smartnydom.pl @ 2026-06-18 00:42:36 by W3 Total Cache
-->