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

<channel>
	<title>IOT - Hard Wired</title>
	<atom:link href="https://www.hardwired.dev/category/iot/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hardwired.dev</link>
	<description></description>
	<lastBuildDate>Mon, 18 May 2026 05:15:47 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.hardwired.dev/wp-content/uploads/2022/10/android-chrome-256x256-1-150x150.png</url>
	<title>IOT - Hard Wired</title>
	<link>https://www.hardwired.dev</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NTAG čipy a jak je naprogramovat z iPhonu</title>
		<link>https://www.hardwired.dev/2026/05/18/ntag-cipy-a-jak-je-naprogramovat-z-iphonu/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Mon, 18 May 2026 05:15:47 +0000</pubDate>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[maker]]></category>
		<category><![CDATA[návod]]></category>
		<category><![CDATA[NDEF]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[NFC tagy]]></category>
		<category><![CDATA[NFC Tools]]></category>
		<category><![CDATA[NTAG]]></category>
		<category><![CDATA[NTAG215]]></category>
		<category><![CDATA[NXP]]></category>
		<category><![CDATA[programování NFC]]></category>
		<category><![CDATA[rfid]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=3088</guid>

					<description><![CDATA[<p>Nálepka za pár korun, telefon, a najednou Vám URL otevírá samo. NFC tagy z rodiny NTAG patří k nejlevnějším způsobům, &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2026/05/18/ntag-cipy-a-jak-je-naprogramovat-z-iphonu/">NTAG čipy a jak je naprogramovat z iPhonu</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Nálepka za pár korun, telefon, a najednou Vám URL otevírá samo. NFC tagy z rodiny NTAG patří k nejlevnějším způsobům, jak fyzickému světu přidat softwarovou vrstvu — a přitom na to nepotřebujete pájku, kompilátor ani Arduino. Tenhle článek je hands-on návod, jak zapsat URL na NTAG215 přímo z iPhonu pomocí aplikace NFC Tools. Po cestě vysvětlím, co se v čipu při zápisu skutečně děje, protože pochopit, co máte v ruce, je polovina úspěchu příštího projektu.</p>
<h2>Co je NTAG a proč by Vás měl zajímat</h2>
<p>NTAG je rodina pasivních NFC čipů od firmy NXP Semiconductors. Pracují na 13,56 MHz, splňují standard NFC Forum Type 2 a ISO/IEC 14443-A, a nemají vlastní napájení — energii i hodinový signál si berou z magnetického pole čtečky (typicky Vašeho telefonu). To je důvod, proč Vám tag vydrží roky bez údržby a proč stojí v řádu korun.</p>
<p>Pro makery jsou zajímavé tři varianty:</p>
<table>
<thead>
<tr>
<th>Čip</th>
<th>User memory</th>
<th>Typické využití</th>
</tr>
</thead>
<tbody>
<tr>
<td>NTAG213</td>
<td>144 B</td>
<td>krátké URL, smart home triggery</td>
</tr>
<tr>
<td>NTAG215</td>
<td>504 B</td>
<td>vCard, Amiibo, delší konfigurace</td>
</tr>
<tr>
<td>NTAG216</td>
<td>888 B</td>
<td>rozsáhlejší data, více NDEF záznamů</td>
</tr>
</tbody>
</table>
<p>Čísla v praxi: do NTAG213 se vejde URL do zhruba 130 znaků (po odečtení NDEF režie), do 215 přibližně jeden plnohodnotný kontakt s telefonem a e-mailem, do 216 i krátká Wi-Fi konfigurace plus URL bokem. Nálepky se prodávají od 5 Kč za kus, kvalitní plastové karty od 15 Kč, klíčenky od 20 Kč. Pro experimenty se hodí balíček deseti kusů od českého dodavatele (neven.cz) nebo dvacet kusů z AliExpressu — cenový rozdíl je marginální, ale dodací doba zásadní.</p>
<p>Potkáte je všude. Marketingové nálepky v obchodech, vstupenky na lyžovačku, visačky na zboží proti padělání, Amiibo figurky od Nintenda, párovací tagy bezdrátových sluchátek. NXP udává životnost 10 let retence dat a 100 000 zápisových cyklů, což pro většinu maker projektů znamená „vydrží to déle než zájem o projekt&quot;.</p>
<h2>Anatomie čipu</h2>
<p>Vnitřek NTAG215 si lze představit jako sešit rozdělený na <strong>135 stránek po 4 bajtech</strong>. Některé stránky jsou Vaše hřiště, jiné jsou výrobní data, která nezměníte ani kdybyste chtěl.</p>
<pre><code>Page 0x00 – 0x02   UID a system bytes      (read-only)
Page 0x03          Capability Container    (jednou píšete, OR-uje se)
Page 0x04 – 0x81   User memory             (504 B, zde žije Vaše data)
Page 0x82          Dynamic Lock Bytes
Page 0x83 – 0x84   Konfigurace (AUTH0, ACCESS)
Page 0x85          PWD (heslo, 4 bajty)
Page 0x86          PACK (potvrzení, 2 bajty)</code></pre>
<p><strong>UID</strong> (Unique Identifier) má 7 bajtů a je z výroby spálené v křemíku — žádná aplikace ho nepřepíše. Slouží mimo jiné jako sůl pro výpočet hesla u Amiibo (ale o tom zase jindy).</p>
<p><strong>User memory</strong> je oblast, kam píšete přes NFC Tools. Data se ukládají ve formátu <strong>NDEF</strong> (NFC Data Exchange Format), což je standardizovaná obálka NFC Fora. Bez NDEF by si Váš iPhone se zápisem na Android tagem nerozuměl — díky NDEF rozumí oba.</p>
<p><strong>Configuration pages</strong> určují, jestli je čip chráněn heslem (registry PWD a AUTH0), jestli a od které stránky platí ochrana (AUTH0), a jestli má heslo limit neúspěšných pokusů (ACCESS bit AUTHLIM). Když na ně narazíte v NFC Tools, většinou se jim chcete vyhnout, dokud nevíte, co děláte — špatně nastavený AUTHLIM dokáže udělat z funkčního tagu drahou nálepku natrvalo.</p>
<p>NTAG215 navíc umí pár chytrostí navíc oproti staršímu NTAG203: 32-bitové heslo (PWD_AUTH), digitální podpis pravosti od NXP (ECC originality signature, který odlišuje pravé NTAG od čínských klonů) a tzv. UID mirror, kdy si do NDEF zprávy můžete nechat automaticky zrcadlit UID čipu — užitečné pro per-tag analytiku bez nutnosti programovat každý kus zvlášť.</p>
<h2>Co budete potřebovat</h2>
<p>K tomu, co budeme dělat, stačí překvapivě málo:</p>
<ul>
<li><strong>iPhone 7 nebo novější</strong> s iOS 13 a výš. Starší modely NFC sice mají, ale nepodporují třetí stranou ovládaný zápis. Pokud máte iPhone 13 a novější, bude čtení a zápis jednoznačně rychlejší a spolehlivější díky lepší anténě.</li>
<li><strong>NFC Tools</strong> od vývojáře Wakdev, zdarma z App Store. Existuje i placená „Pro Edition&quot;, ale pro zápis jednoduché URL ji nepotřebujete. Pro varianty jsou navíc plánovací funkce a profily — užitečné, až budete chtít sériově programovat víc tagů najednou.</li>
<li><strong>NTAG215 nálepku, kartu nebo klíčenku</strong>. Pro tento návod používám NTAG215, ale postup je identický pro NTAG213 i NTAG216, lišit se bude jen kapacita.</li>
</ul>
<p>Jedna technická poznámka k platformě: iPhone má NFC anténu v horní části zařízení, kolem objektivu kamery. Android telefony ji mívají vzadu uprostřed nebo dole. Pokud jste zvyklý držet Android telefon plochou stranou na tag, s iPhonem to nepůjde — musíte přiložit horní hranu. Začátečníci se tady často zaseknou na tom, že „tag prostě nefunguje&quot;, přitom jen čtou špatnou částí telefonu.</p>
<p>Druhá poznámka, méně příjemná: iOS je v NFC schopnostech rok zpátky oproti Androidu. Pro zápis NDEF a čtení standardních tagů je vše v pořádku, ale na low-level operace (přímý přístup k jednotlivým stránkám, práce s MIFARE Classic, dump celé paměti) potřebujete buď Android, nebo specializovaný hardware jako Proxmark3 či Flipper Zero. Pro náš úkol je iPhone naprosto dostatečný.</p>
<h2>Hands-on: zápis URL hardwired.dev</h2>
<p>Konečně k věci. Předpokládám, že máte NFC Tools nainstalovanou a v ruce prázdný NTAG215. Postup má pět kroků.</p>
<h3>Krok 1: Přečtěte tag</h3>
<p>Otevřete NFC Tools a v dolním menu zvolte záložku <strong>Read</strong>. Telefon se přepne do skenovacího režimu a nahoře vyskočí systémový dialog „Připraveno ke skenování&quot;. Přiložte horní hranu iPhonu k tagu a držte ji nehnutě zhruba sekundu. Telefon zavibruje a vrátí Vám informace o čipu.</p>
<p>V odpovědi uvidíte něco jako:</p>
<pre><code>Serial Number: 04:A3:B7:12:5F:80:C1
Tag type: ISO 14443-3A (NXP - NTAG215)
Technologies available: NFC A
Manufacturer: NXP Semiconductors
Maximum data size: 504 bytes
NDEF: Yes (writable, 0/504 bytes used)</code></pre>
<p>Tohle je výchozí stav nového čipu. UID začínající <code>04</code> je typické pro NXP. NDEF je deklarováno jako prázdné a zapisovatelné.</p>
<h3>Krok 2: Vytvořte záznam</h3>
<p>Přepněte se na záložku <strong>Write</strong>. Klepněte na <strong>Add a record</strong>. Otevře se seznam typů — vCard, Wi-Fi, Bluetooth pairing, e-mail, telefon, geolokace, a další. Vás zajímá první položka: <strong>URL / URI</strong>.</p>
<p>V dalším okně vyberte schéma. NFC Tools má rozbalovací menu s běžnými prefixy (<code>http://</code>, <code>https://</code>, <code>tel:</code>, <code>mailto:</code> a další), a zbytek URL napíšete do textového pole. Pro náš účel:</p>
<ul>
<li><strong>Schéma:</strong> <code>https://</code></li>
<li><strong>URL:</strong> <code>hardwired.dev</code></li>
</ul>
<p>Aplikace Vám pod políčkem ukáže, kolik bajtů záznam zabere — pro <code>https://hardwired.dev</code> to bude méně než 20 bajtů. Klepněte na <strong>OK</strong>. Vrátíte se na obrazovku Write, kde teď uvidíte jeden NDEF záznam typu <strong>URI</strong> připravený k zápisu.</p>
<h3>Krok 3: Zapište na tag</h3>
<p>Klepněte na velké tlačítko <strong>Write</strong>. Telefon znovu otevře skenovací dialog. Přiložte horní hranu iPhonu k tagu a držte. Zápis NDEF zprávy o 20 bajtech trvá zhruba 200 milisekund — celý dialog ale obvykle zmizí až po vteřině, protože iOS si dává malou rezervu na ověření.</p>
<p>Po úspěšném zápisu uvidíte zelenou hlášku <strong>Write complete</strong>. Pokud místo toho dostanete chybu, nejčastější příčiny jsou tři: tag je zamčený lock bytes (nelze nic dělat), tag má heslo (potřebujete ho zadat ve Security menu), nebo jste ho odtrhli moc rychle (zkuste znovu).</p>
<h3>Krok 4: Ověřte zápis</h3>
<p>Vraťte se na záložku <strong>Read</strong> a tag přečtěte znovu. Tentokrát uvidíte v odpovědi přibyl řádek navíc:</p>
<pre><code>NDEF: Yes (writable, 17/504 bytes used)

Record 0
  Type: URI
  URI: https://hardwired.dev</code></pre>
<p>Tag teď nese Vaši URL. 17 z 504 bajtů využito — zbytek paměti je stále volný a Vy můžete přidat další záznamy (např. WhatsApp link, kontakt, Wi-Fi heslo) bez omezení, dokud nevyplníte kapacitu.</p>
<h3>Krok 5: Otestujte v reálném světě</h3>
<p>A teď to nejlepší. Zamkněte iPhone (jen stisk power tlačítka, do podivných stavů ho dávat nemusíte) a přiložte ho horní hranou k tagu. Na zamčené obrazovce se objeví <strong>banner s URL hardwired.dev</strong>. Klepnutím se otevře Safari.</p>
<p>Tohle je důležitý moment: na iPhonu <strong>funguje background NFC scanning pouze pro NDEF záznamy standardních typů</strong> — URL, telefonní číslo, e-mail, geolokace a několik dalších. Wi-Fi konfigurace nebo vCard se zamčené obrazovce neobjeví, protože iOS je nevyhodnocuje na pozadí (z bezpečnostních důvodů). Pokud chcete, aby tag spustil Wi-Fi připojení, musíte mít NFC Tools otevřenou, nebo využít Shortcuts Automation, kterou iOS k NFC tagům umí přivázat (ale to je téma na samostatný článek).</p>
<p>Gratuluji — máte první funkční NTAG.</p>
<hr />

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2026%2F05%2F18%2Fntag-cipy-a-jak-je-naprogramovat-z-iphonu%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2026/05/18/ntag-cipy-a-jak-je-naprogramovat-z-iphonu/">NTAG čipy a jak je naprogramovat z iPhonu</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WireClaw: ESP32 jako AI agent, který vám neshodí topení, když spadne internet</title>
		<link>https://www.hardwired.dev/2026/05/12/wireclaw-esp32-jako-ai-agent-ktery-vam-neshodi-topeni-kdyz-spadne-internet/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Tue, 12 May 2026 09:51:29 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[nats]]></category>
		<category><![CDATA[openrouter]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=3062</guid>

					<description><![CDATA[<p>Představte si scénář: pošlete přes Telegram zprávu „dej mi vědět, když teplota čipu překročí 28 stupňů&#34;. Bot odpoví, že rozumí. &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2026/05/12/wireclaw-esp32-jako-ai-agent-ktery-vam-neshodi-topeni-kdyz-spadne-internet/">WireClaw: ESP32 jako AI agent, který vám neshodí topení, když spadne internet</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Představte si scénář: pošlete přes Telegram zprávu „dej mi vědět, když teplota čipu překročí 28 stupňů&quot;. Bot odpoví, že rozumí. Od té chvíle ESP32 hlídá teplotu sám. Bez cloudu, bez LLM volání, bez WiFi. Spadne vám internet? Hlídá dál. Restartujete ho? Po naběhnutí hlídá dál.</p>
<p>Tohle je WireClaw, open-source firmware od Maria Schallnera (na GitHubu <code>M64GitHub</code>), který vyšel poprvé veřejně 25. února 2026. Z hardware-first myšlení vznikla jedna z mála implementací AI agenta na MCU, která bere vážně otázku, co se stane, když AI selže. Tady si projdeme, jak to funguje, proč to vzniklo a kde to narazí.</p>
<h2>Dvě smyčky, jeden čip</h2>
<p>Klíčový designový trik: WireClaw na ESP32 logicky rozděluje práci na dvě nezávislé části.</p>
<p><strong>Rule loop</strong> běží neustále a nedotýká se sítě. Čte senzory, vyhodnocuje uložená pravidla, spouští akce. Žádný HTTP request, žádná LLM inference. Když teplota přeleze práh, rozsvítí se LED nebo přijde Telegram zpráva, to celé v řádu milisekund, lokálně.</p>
<p><strong>AI loop</strong> se probudí, jen když přijde zpráva přes Telegram, USB sériovku nebo NATS. Tehdy WireClaw udělá HTTPS na OpenRouter (nebo HTTP na lokální Ollamu), nechá LLM zformulovat odpověď a případně vytvořit nové pravidlo. Maximum je pět iterací s nástroji na jednu zprávu, pak se vše zabalí.</p>
<blockquote>
<p><em>„The AI creates the rules. The rules run without the AI.&quot;</em></p>
</blockquote>
<p>Tahle věta z dokumentace shrnuje celou filozofii. LLM se používá jako kompilátor lidského záměru do embedded logiky. Pravidlo, které vznikne, jde do flash paměti a od té chvíle žije svým životem. Reboot? Po načtení z flashe pokračuje, jako by se nic nestalo.</p>
<p>Pro někoho, kdo zkoušel postavit IoT s ChatGPT v hot loopu, je to úleva. Žádný API výpadek vám neshodí topení.</p>
<h2>Co se vejde do ESP32</h2>
<p>WireClaw potřebuje 4 MB flash a tři typy čipů: ESP32-C3, C6 nebo S3. Klasický ESP32 s Tensilica jádrem <strong>není</strong> podporován, kvůli OTA partition table requirementům. ESP8266 je mimo hru kvůli paměti.</p>
<p>Reálná spotřeba zdrojů podle oficiální dokumentace:</p>
<pre><code>RAM:   59,7 %  (196 KB z 320 KB)
Flash: 51,4 %  (1,3 MB z 2,5 MB)</code></pre>
<p>To je dost, ale ne na hraně. Zhruba 40 % RAM zbývá pro vaše vlastní rozšíření. Setup portal a webové GUI sedí v PROGMEM, takže RAM nežerou.</p>
<p>Doporučená volba je ESP32-C6 DevKit. Cena se v Číně pohybuje kolem 5–10 dolarů, RISC-V jádro je rychlé a WS2812B onboard LED rovnou slouží jako vestavěný actuator. ESP32-S3 dává smysl tam, kde plánujete složitější rule chains a chcete víc paměti.</p>
<h2>Pravidla v praxi</h2>
<p>Rule engine je dost expresivní. Pravidlo se skládá ze senzoru, podmínky (<code>gt</code>, <code>lt</code>, <code>eq</code> a další), prahu a akce. Vestavěných virtuálních senzorů je hned několik: <code>chip_temp</code> z interního čidla, <code>clock_hour</code>, <code>clock_minute</code> a chytrý <code>clock_hhmm</code>. Posledně jmenovaný kóduje čas jako <code>hodina × 100 + minuta</code>, takže 10:12 = 1012. Najednou jde plánovat přes prostou <code>eq</code> podmínku bez nutnosti řešit dvě pole zvlášť. Elegantní hack.</p>
<p>Akce zahrnují <code>led_set</code> (RGB LED), <code>gpio_write</code>, <code>telegram</code>, <code>nats_publish</code> a <code>serial_send</code>. V textových akcích funguje placeholder substituce: do zprávy můžete napsat <code>&quot;Teplota čipu: {chip_temp}°C&quot;</code> a engine to vyrenderuje z živých dat. Bez LLM, přímo v rule loopu.</p>
<p>Pokročilejší trik je rule chaining: jedno LLM volání může vytvořit multi-step sekvenci s non-blocking delays. Spustí se Telegram alert, po pěti sekundách se rozsvítí červená LED, po deseti se zhasne a publikuje se zpráva na NATS. Mezitím engine paralelně vyhodnocuje ostatní pravidla.</p>
<p>Co u všech těchto testovaných modelů funguje, a co ne, stojí za pozornost. Gemini 2.5 Flash zvládá chains excelentně za zhruba 4 sekundy. Claude Sonnet 4.5 taky, ale potřebuje 10 sekund. Qwen 2.5 7B selhává: chybějící kroky, špatné delays, někdy přímo syntax errors. Pokud vás zajímá cost/perf pro běžný hobby use, Gemini Flash přes OpenRouter je sweet spot.</p>
<h2>NATS jako páteř</h2>
<p>Tady WireClaw zachází dál než většina podobných projektů. NATS, lehký pub/sub broker, je integrovaný ve třech vrstvách.</p>
<p>První vrstva: <strong>virtuální senzory</strong>. Vytvoříte senzor typu <code>nats_value</code> se subscribe na subject, třeba <code>home.room.temp</code>. Cokoliv, co umí na NATS publishovat (Python skript, Home Assistant, jiný WireClaw, průmyslový PLC), najednou dodává data do rule enginu.</p>
<p>Druhá vrstva: <strong>tool-call protokol</strong>. Externí AI agent (nemusí to být OpenClaw, stačí jakýkoli NATS klient) může volat 19 dostupných nástrojů přímo na ESP32, bez nutnosti budit lokální LLM. Latence se podle landing page pohybuje kolem 30 milisekund. Číslo z marketingu, ale architekturou to dává smysl.</p>
<p>Třetí vrstva, <strong>HAL</strong> (Hardware Abstraction Layer), je nejnižší. Žádný LLM, žádný JSON. Pevně definované subjects typu <code>{device}.hal.gpio.5.set</code> s payloadem <code>&quot;1&quot;</code> a odpovědí <code>&quot;ok&quot;</code>. Pro programy v Pythonu nebo Go, které potřebují deterministickou latenci, je tohle správná vrstva. Tight loop přes ESP32 z notebooku, žádný overhead.</p>
<p>A pak je tu <code>remote_chat</code> — tool, kterým se jeden WireClaw může ptát druhého, jako by si chatovali. Edge AI mesh s federovaným reasoningem. Trochu sci-fi, ale funkční.</p>
<h2>Kde to narazí</h2>
<p>Žádný projekt není bez háčků a u WireClawa stojí za to vědět o pár věcech předem.</p>
<p>Tu hlavní jsem už zmínil: <strong>klasický ESP32 ne</strong>. Pokud máte zásobu starších DevKitů, smůla. Buď port, nebo nákup nových C3/C6/S3 boardů.</p>
<p>Bezpečnost. Setup portal je captive portal <strong>bez autentizace</strong>. Web GUI po setup taky bez autentizace. Kdokoli v LAN si může změnit system prompt (čili jailbreak agenta), upravit persistent memory nebo smazat pravidla. API key sedí na flashi v plaintextu. Pro lab a hobby OK, pro produkci to chce VLAN izolaci a u Telegram bota strict spending limit na OpenRouter účtu.</p>
<p>Conversation history je čtyřtahový kruhový buffer plus 512 bytů persistent memory. Agent si nepamatuje hlubší kontext, jen poslední pár výměn. Pro chat o teplotě dobré, pro komplexnější dialog málo.</p>
<p>A poslední věc: rule loop běží &quot;každou iterací loop()&quot;. Frekvence není v dokumentaci uvedená. Pro motorické řízení, audio nebo cokoli, kde záleží na sub-milisekundové determinističnosti, sáhněte po přímém low-level firmware. WireClaw je orchestrátor, ne real-time kontrolér.</p>
<h2>Komu to dává smysl</h2>
<p>WireClaw cílí na úzkou komunitu: bastlíře, kteří mají ESP32 v šuplíku a chtějí experimentovat s AI agenty bez nutnosti stavět cloudovou infrastrukturu. Pro lab automatizaci, kde Home Assistant je overkill, pro distribuovanou senzor mesh, pro vzdělávací demo.</p>
<p>Komunita je zatím malá. Patnáct hvězdiček, čtyři forky, žádné formální release. Záleží na jediném vývojáři. To se časem může změnit, ale dneska to ovlivňuje, jak hluboko se do toho pouštět.</p>
<p>Pokud máte ESP32-C6 v šuplíku a hodinu času, web flasher na <a href="https://wireclaw.io/flash.html">wireclaw.io/flash.html</a> udělá zbytek. Chrome nebo Edge kvůli WebSerial API, kabel, OpenRouter API key, a za pár minut si můžete přes Telegram říct prvnímu vlastnímu edge agentovi, co má sledovat.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2026%2F05%2F12%2Fwireclaw-esp32-jako-ai-agent-ktery-vam-neshodi-topeni-kdyz-spadne-internet%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2026/05/12/wireclaw-esp32-jako-ai-agent-ktery-vam-neshodi-topeni-kdyz-spadne-internet/">WireClaw: ESP32 jako AI agent, který vám neshodí topení, když spadne internet</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NAS systémy se znovu otevírají diskům třetích stran</title>
		<link>https://www.hardwired.dev/2025/10/11/nas-systemy-se-znovu-oteviraji-diskum-tretich-stran/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Sat, 11 Oct 2025 04:45:55 +0000</pubDate>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[2.5 palcové SSD]]></category>
		<category><![CDATA[3.5 palcové disky]]></category>
		<category><![CDATA[aktualizace DSM]]></category>
		<category><![CDATA[alternativy k Synology]]></category>
		<category><![CDATA[cloud vs NAS]]></category>
		<category><![CDATA[datové úložiště]]></category>
		<category><![CDATA[DIY NAS]]></category>
		<category><![CDATA[domácí server]]></category>
		<category><![CDATA[DSM 7.3]]></category>
		<category><![CDATA[firemní NAS]]></category>
		<category><![CDATA[flexibilní úložiště]]></category>
		<category><![CDATA[jak vybrat NAS]]></category>
		<category><![CDATA[kompatibilita disků]]></category>
		<category><![CDATA[lokální úložiště]]></category>
		<category><![CDATA[NAS disky 2025]]></category>
		<category><![CDATA[NAS do domácnosti]]></category>
		<category><![CDATA[NAS pro firmy]]></category>
		<category><![CDATA[NAS systémy]]></category>
		<category><![CDATA[open source NAS]]></category>
		<category><![CDATA[pevné disky pro NAS]]></category>
		<category><![CDATA[Seagate NAS]]></category>
		<category><![CDATA[síťové úložiště]]></category>
		<category><![CDATA[síťové zálohování]]></category>
		<category><![CDATA[storage řešení]]></category>
		<category><![CDATA[Synology disky]]></category>
		<category><![CDATA[Synology NAS]]></category>
		<category><![CDATA[Synology omezení]]></category>
		<category><![CDATA[Synology problémy]]></category>
		<category><![CDATA[Synology vs QNAP]]></category>
		<category><![CDATA[uzavřený ekosystém]]></category>
		<category><![CDATA[vendor lock-in]]></category>
		<category><![CDATA[Western Digital NAS]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2846</guid>

					<description><![CDATA[<p>Synology couvá: NAS systémy se znovu otevírají diskům třetích stran Konec kontroverzního omezení přichází rychleji, než firma očekávala Společnost Synology, &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/10/11/nas-systemy-se-znovu-oteviraji-diskum-tretich-stran/">NAS systémy se znovu otevírají diskům třetích stran</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><h1>Synology couvá: NAS systémy se znovu otevírají diskům třetích stran</h1>
<h2>Konec kontroverzního omezení přichází rychleji, než firma očekávala</h2>
<p>Společnost Synology, jeden z předních výrobců síťových úložišť (NAS), právě zveřejnila aktualizaci DSM 7.3, která ruší kontroverzní omezení zavedené začátkem letošního roku. Uživatelé modelů z roku 2025 mohou opět svobodně využívat pevné disky a SSD od libovolných výrobců, aniž by byli nuceni kupovat proprietární řešení nebo schvalované komponenty.</p>
<h2>Co se vlastně stalo?</h2>
<p>Na začátku roku 2025 provedlo Synology krok, který vyvolal vlnu nespokojenosti v komunitě. Firma totiž omezila kompatibilitu svých nových NAS systémů prakticky výhradně na vlastní disky nebo na úzce vymezený seznam certifikovaných modelů od vybraných partnerů. Vlastníci disků Western Digital, Seagate či jiných běžných značek se najednou ocitli před problémem - jejich osvědčená úložná zařízení již nebyla v nových systémech podporována.</p>
<p>Synology tento radikální přístup odůvodnilo snahou o zajištění vyšší kvality a spolehlivosti celého řešení. Argument zněl logicky: když kontrolujeme celý hardware stack, můžeme garantovat lepší výkon a minimalizovat riziko selhání. V praxi to však znamenalo významné dodatečné náklady pro zákazníky a omezení jejich svobody volby.</p>
<h2>Rychlý ústup od nepopulární strategie</h2>
<p>Pouhých několik měsíců po zavedení omezení přichází firma s verzí DSM 7.3, která celou situaci vrací do původního stavu. Změna se týká všech 3,5palcových pevných disků i 2,5palcových SSD disků ve strojích uvedených na trh v roce 2025. Synology nyní komunikuje, že ke změně došlo díky „spolupráci s výrobci disků na rozšíření seznamu certifikovaných zařízení&quot; a že nové řešení nabízí „větší flexibilitu bez snížení spolehlivosti&quot;.</p>
<p>Toto zdůvodnění je zajímavé svou diplomatičností. Ve skutečnosti firma čelila masivní kritice ze strany jak domácích uživatelů, tak především malých a středních firem, které NAS systémy běžně využívají pro zálohování a sdílení dat. Pro tyto zákazníky by přechod na proprietární disky znamenal nejen dodatečnou investici, ale i narušení stávajících záložních strategií postavených na konkrétních diskových modelech.</p>
<h2>Širší kontext: eroze konkurenční výhody</h2>
<p>Rozhodnutí Synology je třeba vidět v kontextu měnícího se trhu. Zatímco před deseti lety byla firma v segmentu uživatelsky přívětivých NAS řešení prakticky bez konkurence, dnes situace vypadá zcela jinak. </p>
<p>Na trhu se objevila celá řada alternativ - od specializovaných NAS systémů konkurenčních značek až po hybridní řešení, kdy některé routery nabízejí kvalitní NAS funkcionalitu. Navíc rostoucí popularita cloudových úložišť a jejich klesající ceny tlačí na tradiční lokální řešení ze zcela jiného směru.</p>
<p>V takovém prostředí byla strategie uzavření ekosystému extrémně riskantní. Právě otevřenost a flexibilita byly totiž jedním z hlavních důvodů, proč si uživatelé Synology volili. Možnost použít disky podle vlastního výběru, často ty nejvýhodnější z aktuálních nabídek nebo osvědčené modely se známými parametry, byla pro mnohé klíčovou výhodou.</p>
<h2>Poučení pro celý průmysl</h2>
<p>Tento příběh není jen o jedné firmě a její strategické chybě. Jde o širší varování před pokušením uzavřených ekosystémů v segmentech, kde zákazníci tradičně očekávají otevřenost a svobodu volby.</p>
<p>Apple může úspěšně provozovat uzavřený ekosystém, protože jej budoval od samého začátku a nabízí za to uživatelům určitou hodnotu v podobě integrace a user experience. Když se však firma, která svou pozici vybudovala na otevřenosti, pokusí přejít k uzavřenému modelu, reakce bývá téměř vždy negativní.</p>
<p>Synology to zjistilo vlastní kůží. Rychlost, s jakou firma od svého rozhodnutí ustoupila, naznačuje, že negativní dopad byl značný - ať už šlo o pokles prodejů, hromadící se stížnosti nebo případně i hrozbu hromadných žalob za zavádějící změnu podmínek.</p>
<h2>Co to znamená pro uživatele?</h2>
<p>Pro stávající i budoucí majitele NAS systémů Synology je tato změna jednoznačně pozitivní zprávou. Aktualizace DSM 7.3 je dostupná již nyní a uživatelé modelů z roku 2025 mohou opět bez omezení využívat disky své volby. </p>
<p>Ti, kdo odložili nákup nového NAS kvůli obavám z vendor lock-in, se nyní mohou rozhodnout s větším klidem. A firma sama snad získala cennou lekci o tom, jak důležité je naslouchat své zákaznické základně.</p>
<p>Otázkou zůstává, zda tato epizoda nezanechala trhlinu v důvěře uživatelů. Jednou provedená změna směrem k uzavření systému může vždy znovu přijít - a příště možná trvaleji. Pro konkurenci to každopádně může být příležitost zdůraznit svou otevřenost jako konkurenční výhodu.</p>
<h2>Závěr</h2>
<p>Zpátečka Synology je vzácným případem, kdy firma rychle reaguje na negativní zpětnou vazbu a je ochotna ustoupit od svého rozhodnutí. Místo zarputilého trvání na kontrole kvality přes proprietární hardware zvolila pragmatický přístup: vrátit uživatelům svobodu volby a důvěřovat, že si dokážou vybrat kvalitní komponenty sami.</p>
<p>Celá situace ukazuje, že i v roce 2025 platí staré pravidlo technologického byznysu: zákazníci ocení flexibilitu a otevřenost. A pokusy o vendor lock-in v segmentech, kde to uživatelé neočekávají, jsou riskantní strategií s často krátkodobým horizontem úspěchu.</p>
<p>Pro Synology je teď důležité obnovit důvěru a přesvědčit trh, že podobný experiment se už opakovat nebude. Kvalita a spolehlivost se dají zajistit i bez nuceného uzavření ekosystému - třeba důkladnějším testováním, lepší dokumentací kompatibilních disků a transparentní komunikací s uživateli.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F10%2F11%2Fnas-systemy-se-znovu-oteviraji-diskum-tretich-stran%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/10/11/nas-systemy-se-znovu-oteviraji-diskum-tretich-stran/">NAS systémy se znovu otevírají diskům třetích stran</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bezpečnostní rizika Bluetooth</title>
		<link>https://www.hardwired.dev/2025/07/20/bezpecnostni-rizika-bluetooth/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Sun, 20 Jul 2025 15:11:28 +0000</pubDate>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[aktualizace systému]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[bezdrátová komunikace]]></category>
		<category><![CDATA[bezpečnost]]></category>
		<category><![CDATA[BlueBorne]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[Bluetooth attacks]]></category>
		<category><![CDATA[BrakTooth]]></category>
		<category><![CDATA[chytrá zařízení]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[data protection]]></category>
		<category><![CDATA[digital hygiene]]></category>
		<category><![CDATA[digitální hygiena]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[kybernetická bezpečnost]]></category>
		<category><![CDATA[ochrana dat]]></category>
		<category><![CDATA[phone security]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[smart devices]]></category>
		<category><![CDATA[system updates]]></category>
		<category><![CDATA[útoky přes Bluetooth]]></category>
		<category><![CDATA[vulnerabilities]]></category>
		<category><![CDATA[wireless communication]]></category>
		<category><![CDATA[zabezpečení telefonu]]></category>
		<category><![CDATA[zero-click attacks]]></category>
		<category><![CDATA[zero-click útoky]]></category>
		<category><![CDATA[zranitelnosti]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2784</guid>

					<description><![CDATA[<p>Bluetooth bezpečnostní rizika: Jak se chránit před skrytými hrozbami Bluetooth se stal součástí našeho každodenního života – od připojení sluchátek &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/07/20/bezpecnostni-rizika-bluetooth/">Bezpečnostní rizika Bluetooth</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><h1>Bluetooth bezpečnostní rizika: Jak se chránit před skrytými hrozbami</h1>
<p><strong>Bluetooth se stal součástí našeho každodenního života – od připojení sluchátek po synchronizaci chytrých hodinek. Tato neviditelná technologie však skrývá vážná bezpečnostní rizika, která mohou ohrožovat naše osobní data i soukromí.</strong></p>
<h2>Skrytá hrozba v kapse</h2>
<p>Bluetooth technologie dnes běží na miliardách zařízení po celém světě. Její všudypřítomnost a schopnost navazovat spojení na dálku z ní však činí atraktivní cíl pro útočníky. Na rozdíl od tradičních kybernetických útoků, které vyžadují aktivní účast uživatele, mohou Bluetooth exploity zasáhnout bez jakékoliv interakce ze strany oběti.</p>
<p>Bezpečnostní experti varují, že i zdánlivě neškodné zapnutí Bluetooth může vystavit zařízení útoku. Stačí být ve špatnou chvíli na špatném místě – například v kavárně, na letišti nebo na zastávce.</p>
<h2>BlueBorne a BrakTooth: Reálné hrozby současnosti</h2>
<p>Mezi nejznámější Bluetooth exploity patří <strong>BlueBorne</strong>, poprvé detailně popsaný v roce 2017 výzkumníky ze společnosti Armis Labs. Tento typ útoku umožňuje útočníkovi získat přístup k zařízení přes aktivní Bluetooth bez nutnosti párování nebo jakékoliv akce uživatele.</p>
<p>BlueBorne původně ohrožoval přes 8,2 miliardy Bluetooth zařízení na platformách Android, iOS, Linux i Windows. Ačkoliv byl v mnoha systémech opraven, princip útoku zůstává aktuální i v roce 2025.</p>
<p>Novějším příkladem je <strong>BrakTooth</strong> – skupina zranitelností zveřejněná v roce 2021, která dokázala způsobit vše od odmítnutí služby až po vzdálené spuštění kódu na cílových zařízeních.</p>
<h2>Jak útoky fungují</h2>
<p>Problém nespočívá v konkrétních aplikacích, ale v samotném Bluetooth stacku – způsobu, jak zařízení spravují bezdrátové spojení. Pokud obsahuje bezpečnostní díru, může útočník pomocí speciálně upraveného signálu:</p>
<ul>
<li>Získat neautorizovaný přístup do systému</li>
<li>Spustit škodlivý kód</li>
<li>Proniknout na další zařízení v okolí</li>
<li>Ukrást citlivá data</li>
</ul>
<p>Dosah útoku je omezen pouze dosahem Bluetooth signálu – typicky 10 až 30 metrů.</p>
<h2>Proč jste stále v ohrožení</h2>
<p><strong>Trvalá připravenost</strong>: Většina uživatelů má Bluetooth zapnutý 24/7 kvůli připojeným sluchátkům, chytrým hodinkám nebo dalším gadgetům. Tato permanentní dostupnost poskytuje útočníkům neustálou příležitost.</p>
<p><strong>Zastaralé systémy</strong>: Miliony zařízení v Česku stále běží na starších verzích Androidu (verze 8 a nižší) nebo používají levnější hardware s neaktualizovaným Bluetooth softwarem.</p>
<p><strong>Zero-click útoky</strong>: Vývoj směřuje k útokům, které nevyžadují žádnou interakci uživatele – Bluetooth je pro tyto techniky ideálním nosičem.</p>
<h2>Praktická ochrana</h2>
<p>Efektivní ochrana proti Bluetooth útokům nevyžaduje technické znalosti, ale důslednost:</p>
<p><strong>Vypínejte Bluetooth, když ho nepotřebujete</strong> – zejména v noci a na veřejných místech. Znemožníte tím útočníkům vyhledávat vaše zařízení.</p>
<p><strong>Udržujte systém aktuální</strong> – bezpečnostní záplaty jako ty pro BlueBorne jsou účinné pouze u aktualizovaných zařízení.</p>
<p><strong>Omezte viditelnost</strong> – zkontrolujte nastavení, aby vaše zařízení nebylo trvale viditelné pro ostatní.</p>
<p><strong>Kontrolujte oprávnění aplikací</strong> – nepovolujte přístup k Bluetooth aplikacím, které ho skutečně nepotřebují.</p>
<p><strong>Buďte opatrní při párování</strong> – nepřipojujte se k neznámým zařízením, která mohou napodobovat legitimní hardware.</p>
<p><strong>Používejte Bluetooth selektivně</strong> – zvažte jeho použití pouze doma nebo v autě, nikoliv na veřejnosti.</p>
<h2>Závěr</h2>
<p>Bluetooth není nutné se bát, ale stejně jako u Wi-Fi nebo hesel platí základní pravidlo: bezpečnost začíná u správného nastavení a rozumného používání. S rostoucím počtem připojených zařízení a vývojem nových útočných technik se preventivní opatření stávají klíčovými pro ochranu našich digitálních životů.</p>
<p>Jednoduché změny v chování a nastavení mohou dramaticky snížit riziko a zajistit, že Bluetooth zůstane užitečným nástrojem, nikoliv bezpečnostní hrozbou.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F07%2F20%2Fbezpecnostni-rizika-bluetooth%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/07/20/bezpecnostni-rizika-bluetooth/">Bezpečnostní rizika Bluetooth</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MeshCore: Off-grid komunikaci prostřednictvím LoRa mesh sítí</title>
		<link>https://www.hardwired.dev/2025/07/20/meshcore-off-grid-komunikaci-prostrednictvim-lora-mesh-siti/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Sun, 20 Jul 2025 12:55:55 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HAM]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[Různé]]></category>
		<category><![CDATA[SDR]]></category>
		<category><![CDATA[868 MHz]]></category>
		<category><![CDATA[Andy Kirby]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[backup communication]]></category>
		<category><![CDATA[bateriové napájení]]></category>
		<category><![CDATA[battery powered]]></category>
		<category><![CDATA[BBS server]]></category>
		<category><![CDATA[bezdrátová komunikace]]></category>
		<category><![CDATA[ble]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[C++ library]]></category>
		<category><![CDATA[Česká republika]]></category>
		<category><![CDATA[chat aplikace]]></category>
		<category><![CDATA[chat application]]></category>
		<category><![CDATA[companion radio]]></category>
		<category><![CDATA[crisis communication]]></category>
		<category><![CDATA[Czech Republic]]></category>
		<category><![CDATA[decentralized network]]></category>
		<category><![CDATA[decentralizovaná síť]]></category>
		<category><![CDATA[digital signatures]]></category>
		<category><![CDATA[digitální podpisy]]></category>
		<category><![CDATA[disaster recovery]]></category>
		<category><![CDATA[Discord komunita]]></category>
		<category><![CDATA[dlouhý dosah]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[emergency communication]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[fixed routing]]></category>
		<category><![CDATA[flasher]]></category>
		<category><![CDATA[flood routing]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[ham radio]]></category>
		<category><![CDATA[Heltec]]></category>
		<category><![CDATA[hybrid routing]]></category>
		<category><![CDATA[infrastructure independent]]></category>
		<category><![CDATA[IoT network]]></category>
		<category><![CDATA[IoT síť]]></category>
		<category><![CDATA[Ještěd]]></category>
		<category><![CDATA[katastrofické scénáře]]></category>
		<category><![CDATA[Klínovec]]></category>
		<category><![CDATA[krizová komunikace]]></category>
		<category><![CDATA[long range]]></category>
		<category><![CDATA[LoRa mesh]]></category>
		<category><![CDATA[LoRa radio]]></category>
		<category><![CDATA[low power]]></category>
		<category><![CDATA[mesh networking]]></category>
		<category><![CDATA[mesh topology]]></category>
		<category><![CDATA[MeshCore]]></category>
		<category><![CDATA[meshcore.cz]]></category>
		<category><![CDATA[Meshtastic alternativa]]></category>
		<category><![CDATA[Meshtastic alternative]]></category>
		<category><![CDATA[MIT licence]]></category>
		<category><![CDATA[MIT license]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[mobilní aplikace]]></category>
		<category><![CDATA[multi-hop routing]]></category>
		<category><![CDATA[network technologies]]></category>
		<category><![CDATA[nezávislý na infrastruktuře]]></category>
		<category><![CDATA[nízká spotřeba]]></category>
		<category><![CDATA[nouzová komunikace]]></category>
		<category><![CDATA[off-grid communication]]></category>
		<category><![CDATA[off-grid komunikace]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[outdoor communication]]></category>
		<category><![CDATA[outdoor komunikace]]></category>
		<category><![CDATA[P2P komunikace]]></category>
		<category><![CDATA[packet radio]]></category>
		<category><![CDATA[paketové rádio]]></category>
		<category><![CDATA[path memory]]></category>
		<category><![CDATA[peer to peer]]></category>
		<category><![CDATA[platformio]]></category>
		<category><![CDATA[radioamatéři]]></category>
		<category><![CDATA[RAK Wireless]]></category>
		<category><![CDATA[repeater]]></category>
		<category><![CDATA[Říp]]></category>
		<category><![CDATA[room server]]></category>
		<category><![CDATA[samoléčící síť]]></category>
		<category><![CDATA[self-healing network]]></category>
		<category><![CDATA[šifrování]]></category>
		<category><![CDATA[síťová topologie]]></category>
		<category><![CDATA[síťové technologie]]></category>
		<category><![CDATA[solar powered]]></category>
		<category><![CDATA[solární napájení]]></category>
		<category><![CDATA[store and forward]]></category>
		<category><![CDATA[tactical radio]]></category>
		<category><![CDATA[taktické rádio]]></category>
		<category><![CDATA[tech blog]]></category>
		<category><![CDATA[technologický blog]]></category>
		<category><![CDATA[Telegram skupina]]></category>
		<category><![CDATA[telemetrie]]></category>
		<category><![CDATA[telemetry]]></category>
		<category><![CDATA[terminal chat]]></category>
		<category><![CDATA[USB komunikace]]></category>
		<category><![CDATA[vestavné systémy]]></category>
		<category><![CDATA[web aplikace]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[wireless communication]]></category>
		<category><![CDATA[záložní komunikace]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2788</guid>

					<description><![CDATA[<p>MeshCore: Revoluce v off-grid komunikaci prostřednictvím LoRa mesh sítí Představte si situaci: bouře vyřadí mobilní věže, internet je nedostupný, klasické &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/07/20/meshcore-off-grid-komunikaci-prostrednictvim-lora-mesh-siti/">MeshCore: Off-grid komunikaci prostřednictvím LoRa mesh sítí</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><h1>MeshCore: Revoluce v off-grid komunikaci prostřednictvím LoRa mesh sítí</h1>
<p>Představte si situaci: bouře vyřadí mobilní věže, internet je nedostupný, klasické komunikační kanály selhávají. Právě v takových chvílích oceníte technologie, které fungují nezávisle na centralizované infrastruktuře. A přesně to je oblast, kde se MeshCore etabluje jako game-changer.</p>
<p>V posledních letech jsme svědky dramatického růstu zájmu o decentralizované komunikační systémy. Ať už jde o přírodní katastrofy, výpadky infrastruktury, nebo jednoduše potřebu komunikace v odlehlých oblastech, tradiční řešení často selhávají právě tehdy, kdy je potřebujeme nejvíce. Zde vstupuje do hry mesh networking - technologie, která umožňuje zařízením komunikovat přímo mezi sebou, vytvářet samoléčící se sítě a poskytovat komunikační kanály tam, kde žádné neexistují.</p>
<p>MeshCore reprezentuje novou generaci této technologie. Zatímco jeho starší bratr Meshtastic si získal obrovskou popularitu a přinesl mesh networking do povědomí širší veřejnosti, zároveň odkryl některé fundamentální problémy škálovatelnosti. Právě tyto výzvy se MeshCore rozhodl řešit od základů - s čistším designem, efektivnějším routingem a architekturou pripravenou na budoucnost.</p>
<p><strong>Problém s přetížením sítí:</strong> Zatímco populární Meshtastic trpí problémy se zahlcováním sítě kvůli své architektuře, MeshCore přináší elegantní řešení těchto problémů od samého počátku.</p>
<h2>Co je MeshCore?</h2>
<p>MeshCore je multiplatformní systém umožňující bezpečnou textovou komunikaci využívající LoRa rádiový hardware. Jde o lightweight, open-source C++ knihovnu vytvořenou pro umožnění mesh networkingu přes LoRa a další packet-based rádia.</p>
<p>Hlavní charakteristiky MeshCore zahrnují:</p>
<p><strong>Multi-hop packet routing</strong> - zařízení mohou předávat zprávy přes více uzlů, rozšiřuje dosah nad rámec jednoho rádia. Systém podporuje konfigurovatelný počet hopů pro vyvážení efektivity sítě.</p>
<p><strong>Decentralizovaná architektura</strong> - nevyžaduje centrální server ani internet; síť je self-healing, což znamená, že pokud jeden uzel selže nebo se dostane mimo dosah, MeshCore najde alternativní cestu.</p>
<p><strong>Nízká spotřeba energie</strong> - ideální pro zařízení napájená z baterií nebo solárních panelů, což umožňuje dlouhodobé nasazení v odlehlých oblastech.</p>
<h2>Proč vznikl MeshCore?</h2>
<h3>Problémy Meshtastic</h3>
<p>Ačkoliv se Meshtastic stal velmi populárním (v České republice bylo registrováno přes 1110 zařízení), přinesl to i problémy:</p>
<p><strong>Zahlcení sítě:</strong> Radiokomunikační pásmo 868 MHz se rychle zahltilo kvůli architektuře, kdy se každá zpráva šíří z každého bodu na všechny dostupné body. Meshtastic ve skupině 10 zařízení funguje dobře, ale ve skupině stovek zařízení už zprávy často nedorazí nebo nedorazí potvrzení.</p>
<p><strong>Neefektivní provoz:</strong> Každá krabička se spojí s každou, což vytváří zbytečný síťový provoz a degraduje celkový výkon sítě.</p>
<p><strong>Problém s aktualizacemi:</strong> I když Meshtastic verze 2.6 slibuje vylepšení, musela by se nainstalovat na všechna existující zařízení - což u tisíců zařízení na stožárech a těžko přístupných místech představuje obrovský problém.</p>
<h2>Použití a aplikace</h2>
<p>MeshCore nachází uplatnění v široké škále scénářů:<br />
Může být použit pro off-grid komunikaci, emergency response &amp; disaster recovery, outdoor aktivity. Systém umožňuje zůstat v kontaktu i v odlehlých oblastech bez pokrytí mobilní sítě.</p>
<h3>Taktické a bezpečnostní aplikace</h3>
<p>Taktická bezpečnost včetně práva a pořádku a soukromé bezpečnosti - MeshCore poskytuje šifrovanou komunikaci pro profesionální použití.</p>
<h3>IoT a senzorové sítě</h3>
<p>Také IoT senzorové sítě - systém dokáže efektivně přenášet data ze vzdálených senzorů zpět do centrálního místa.</p>
<h2>Technické specifikace</h2>
<h3>Architektura a vývojové prostředí</h3>
<p>MeshCore je lightweight, portable C++ knihovna určená pro vývojáře, kteří chtějí vytvářet resilientní, decentralizované komunikační sítě bez internetu. Na rozdíl od Meshtastic, který je přizpůsoben pro casual LoRa komunikaci, nebo Reticulum s pokročilým networkingem, MeshCore balancuje jednoduchost se škálovatelností.</p>
<p><strong>Vývojové možnosti:</strong></p>
<ul>
<li><strong>Pro koncové uživatele</strong> - předkompilované firmware k přímému flashování</li>
<li><strong>Pro vývojáře</strong> - otevřená C++ knihovna pro custom embedded řešení</li>
<li><strong>MIT licence</strong> - volné použití pro osobní i komerční projekty</li>
</ul>
<h3>Podporovaná zařízení</h3>
<p>MeshCore podporuje širokou škálu LoRa hardware:</p>
<ul>
<li><strong>Heltec</strong> - V3 LoRa Boards, T114, V2</li>
<li><strong>RAK Wireless</strong> - RAK4631 (nejúspornější varianta)</li>
<li><strong>LilyGo</strong> - T3S3, TLora32 v1.6</li>
<li><strong>Xiaomi</strong> - XiaoS3 WIO (sx1262 combo), XiaoC3 (plus externí sx126x modul)</li>
<li><strong>Sensecap</strong> - T1000e</li>
<li><strong>Station G2</strong></li>
</ul>
<p>V České republice můžete zařízení zakoupit u specializovaných distributorů elektronických komponent jako je Pájeníčko.</p>
<h3>Protokol a routing</h3>
<p>MeshCore funguje jako mesh knihovna v jazyce C++ i jako hotový firmware, který stačí nahrát do podporovaného zařízení. Systém vytváří self-organizing mesh síť, kde každý uzel udržuje routing tabulku a může předávat pakety jménem ostatních uzlů.</p>
<p><strong>Klíčové funkce routingu:</strong></p>
<ul>
<li><strong>Flood a path memory</strong> - první soukromou zprávu posílá jako Flood, jakmile je zpráva doručena, zapamatuje si její cestu a pak ji posílá jen přes zapamatované uzly</li>
<li><strong>Fixed path routing</strong> - možnost ručně nastavit cesty pro zprávy, což vede ke spolehlivějšímu doručení ve složitějších topologiích</li>
<li><strong>Automatické routing</strong> - pokud doručení selže, posílá se znovu Flood</li>
<li><strong>Multi-hop routování</strong> - zprávy mohou cestovat přes více uzlů</li>
<li><strong>Rozlišení rolí</strong> - klient nebo router jsou oddělené role, routery jen přeposílají packety bez zbytečných funkcí</li>
</ul>
<h2>MeshCore vs. konkurence</h2>
<h3>Porovnání s Meshtastic</h3>
<p>Zatímco Meshtastic je nejpopulárnějším off-grid messaging řešením, MeshCore nabízí několik klíčových výhod a nevýhod:</p>
<p><strong>Výhody MeshCore:</strong></p>
<ul>
<li><strong>Vyšší flexibilita</strong> - díky otevřené knihovně mohou vývojáři tvořit specifická síťová řešení</li>
<li><strong>Vylepšené routování</strong> - možnost ručně nastavit cesty nebo využít efektivnější fixed path routing</li>
<li><strong>Méně zahlcení sítě</strong> - menší objem status provozu, výhodné v rozsáhlých sítích</li>
<li><strong>MIT licence</strong> - umožňuje použití i v komerčních projektech</li>
<li><strong>Strukturovanější přístup</strong> s pokročilými síťovými funkcemi jako static path optimalizace</li>
<li><strong>Oddělené role</strong> - routery jsou jen routery, klienti jen klienti</li>
<li><strong>Store-and-forward messaging</strong> - ukládání zpráv pro offline příjemce (mailbox funkce)</li>
<li><strong>Čistě mesh komunikace</strong> - žádné internetové propojení, funguje i bez elektriky jen se solárním napájením</li>
</ul>
<p><strong>Nevýhody MeshCore:</strong></p>
<ul>
<li><strong>Menší komunita</strong> - méně uživatelské podpory a návodů (ale rychle rostoucí)</li>
<li><strong>Statické role</strong> - nelze dynamicky měnit role uzlů bez reflashe firmware</li>
<li><strong>Menší podpora hardware</strong> - zatím podporuje méně zařízení než Meshtastic</li>
<li><strong>Chybí MQTT integrace</strong> - zaměřuje se čistě na mesh komunikaci bez internetového rozhraní</li>
<li><strong>Nekompatibilita</strong> - sdílí stejné frekvenční pásmo s Meshtastic, ale nejsou navzájem kompatibilní</li>
</ul>
<h3>Referenční aplikace</h3>
<p>MeshCore nabízí několik předkompilovaných firmware typů:</p>
<p><strong>Companion Radio</strong> - pro použití s externí chat aplikací přes BLE, USB nebo WiFi s podporou pro:</p>
<ul>
<li><strong>Web aplikace</strong> - app.meshcore.nz</li>
<li><strong>Android aplikace</strong> - dostupná v Google Play Store</li>
<li><strong>iOS aplikace</strong> - dostupná v App Store</li>
<li><strong>NodeJS a Python</strong> - pro vývojáře a automatizaci</li>
</ul>
<p><strong>Simple Repeater</strong> - rozšiřuje pokrytí sítě předáváním zpráv, konfigurovatelný přes web config tool nebo mobilní aplikaci</p>
<p><strong>Simple Room Server</strong> - jednoduchý BBS server pro sdílené příspěvky a store-and-forward messaging</p>
<p><strong>Simple Secure Chat</strong> - bezpečná terminálová textová komunikace přímo mezi zařízeními</p>
<h2>Boom MeshCore v České republice</h2>
<p>Červenec 2025 se stal přelomovým měsícem pro MeshCore v České republice. <strong>20. července 2025 se Ještěd přepnul na MeshCore</strong>, což spustilo lavinu dalších nasazení.</p>
<h3>Rychlý růst sítě</h3>
<p>Následovalo nasazení MeshCore na klíčových místech:</p>
<ul>
<li><strong>Říp</strong> - strategické místo pro severní Čechy</li>
<li><strong>Klínovec</strong> - nejvyšší hora Krušných hor</li>
<li><strong>Další menší vysílače</strong> po celé republice</li>
</ul>
<p>Za pouhý týden se pokrytí dramaticky zlepšilo a aktivita ukazuje, že trend pokračuje.</p>
<h3>Česká komunita</h3>
<p>Vznikl specializovaný komunitní web <strong>meshcore.cz</strong> s návody, tipy a triky. Telegram skupina <strong>meshcore_cz</strong> rychle roste a sdružuje nadšence po celé republice.</p>
<p><strong>Klíčové výhody oproti Meshtastic v ČR:</strong></p>
<ul>
<li><strong>Funkčnost</strong> - na rozdíl od přetížené Meshtastic sítě MeshCore skutečně funguje</li>
<li><strong>Méně telemetrie</strong> - síť není zahlcená zbytečnými daty</li>
<li><strong>Čistě offline</strong> - žádné internetové propojení, skutečná nezávislost</li>
<li><strong>Solární napájení</strong> - funguje i bez elektrické sítě, jen se slunečním svitem</li>
</ul>
<h3>Doporučené nastavení pro ČR</h3>
<p>Česká komunita se domluvila na těchto parametrech:</p>
<ul>
<li><strong>Frekvence:</strong> 869.525 MHz</li>
<li><strong>Bandwidth:</strong> 62.5 kHz  </li>
<li><strong>Spreading Factor:</strong> 7</li>
<li><strong>Coding Rate:</strong> 5</li>
<li><strong>Transmit Power:</strong> 22</li>
</ul>
<h3>Praktické nasazení v ČR</h3>
<ol>
<li><strong>Získání hardware</strong> - doporučujeme Heltec LoRa v3.1, dostupný u specializovaných distributorů jako je Pájeníčko</li>
<li><strong>Flashování firmware</strong> - využijte webový flasher na <a href="https://flasher.meshcore.co.uk/">https://flasher.meshcore.co.uk/</a>
<ul>
<li>Vyberte podporované zařízení</li>
<li>Zvolte typ firmware (Companion, Repeater, Room Server)</li>
<li>Klikněte FLASH</li>
</ul>
</li>
<li><strong>Připojení klientů:</strong>
<ul>
<li><strong>Web aplikace</strong> - app.meshcore.nz (funguje offline)</li>
<li><strong>Mobilní aplikace</strong> - Android/iOS z oficiálních obchodů</li>
<li><strong>Bluetooth pairing</strong> - PIN zobrazený na OLED displeji zařízení</li>
</ul>
</li>
<li><strong>Kontrola pokrytí</strong> - mapa uzlů dostupná na <a href="https://map.meshcore.dev/">https://map.meshcore.dev/</a></li>
</ol>
<p><strong>Důležité upozornění:</strong> Žádné zařízení s konektorem pro externí anténu nesmí být spuštěno bez připojené antény - hrozí zničení vysílací části čipu.</p>
<h3>Zdroje pro českou komunitu</h3>
<ul>
<li><strong>Oficiální web:</strong> <a href="https://meshcore.co.uk/">https://meshcore.co.uk/</a></li>
<li><strong>Česká stránka:</strong> <a href="https://meshcore.cz/">https://meshcore.cz/</a></li>
<li><strong>GitHub repository:</strong> <a href="https://github.com/ripplebiz/MeshCore">https://github.com/ripplebiz/MeshCore</a></li>
<li><strong>Webový flasher:</strong> <a href="https://flasher.meshcore.co.uk/">https://flasher.meshcore.co.uk/</a></li>
<li><strong>Web aplikace:</strong> <a href="https://app.meshcore.nz">https://app.meshcore.nz</a></li>
<li><strong>Telegram skupina:</strong> @meshcore_cz</li>
<li><strong>Discord komunita:</strong> Andy Kirby's Discord pro podporu vývojářů</li>
<li><strong>Mapa uzlů:</strong> <a href="https://map.meshcore.dev/">https://map.meshcore.dev/</a></li>
<li><strong>FAQ a dokumentace:</strong> GitHub wiki s detailními návody</li>
</ul>
<h3>Vzdělávací videa a tutoriály</h3>
<p><strong>Andy Kirby YouTube kanál</strong> - klíčový zdroj pro pochopení MeshCore:</p>
<ul>
<li><strong>MeshCore Intro Video</strong> - základní úvod do systému pro začátečníky</li>
<li><strong>Messaging System Tutorial</strong> - návod na používání komunikačního systému</li>
<li><strong>MeshCore Update série</strong> - pravidelné aktualizace o vývoji projektu</li>
<li><strong>Praktické testování</strong> - reálné testy dosahu a funkčnosti v terénu</li>
</ul>
<p>Andy Kirby byl instrumental v getting projects known out there a pro helping educate people s jeho videi. Jeho videa poskytují praktické návody od základního nastavení až po pokročilé konfigurace repeaterů.</p>
<p><strong>Doporučené sledování:</strong> Začněte s Intro Video, poté pokračujte tutoriály pro messaging systém a sledujte nejnovější update videa pro informace o vývoji.</p>
<h3>Vývojářské možnosti</h3>
<p>Pro pokročilé uživatele a vývojáře:</p>
<ul>
<li><strong>PlatformIO a Visual Studio Code</strong> - kompletní vývojové prostředí</li>
<li><strong>Open-source</strong> - MIT licence umožňuje modifikace a komerční použití</li>
<li><strong>Příspěvky do projektu</strong> - PR požadavky přes 'dev' branch na GitHubu</li>
<li><strong>Bug reporting</strong> - GitHub Issues pro hlášení chyb a feature požadavky</li>
</ul>
<h2>Závěr</h2>
<p>MeshCore představuje významný krok vpřed v oblasti decentralizované komunikace a v České republice už není jen teoretickou možností - <strong>je tu a funguje</strong>. Červencový boom ukázal, že česká komunita je připravena na alternativu k přetíženému Meshtastic.</p>
<p>Zatímco Meshtastic bojuje s problémy škálovatelnosti a čeká na nasazení verze 2.6 na tisíce existujících zařízení, MeshCore nabízí řešení těchto problémů od počátku. Jeho open-source povaha, nízké požadavky na energii, pokročilé mesh routing schopnosti a především <strong>funkčnost v reálném provozu</strong> z něj činí atraktivní volbu pro každého, kdo hledá spolehlivé off-grid komunikační řešení.</p>
<p>S rostoucím pokrytím a aktivní komunitou je MeshCore v České republice připraven stát se dominantní platformou pro decentralizovanou komunikaci. Jak říkají nadšenci: <strong>&quot;Meshtastic je mrtev, ať žije MeshCore!&quot;</strong></p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F07%2F20%2Fmeshcore-off-grid-komunikaci-prostrednictvim-lora-mesh-siti%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/07/20/meshcore-off-grid-komunikaci-prostrednictvim-lora-mesh-siti/">MeshCore: Off-grid komunikaci prostřednictvím LoRa mesh sítí</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ESP32 neobsahuje backdoor</title>
		<link>https://www.hardwired.dev/2025/03/10/esp32-neobsahuje-backdoor/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Mon, 10 Mar 2025 09:15:53 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Různé]]></category>
		<category><![CDATA[backdoor]]></category>
		<category><![CDATA[bezdrátová komunikace]]></category>
		<category><![CDATA[bezpečnost]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[elektronika]]></category>
		<category><![CDATA[embedded systémy]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[espressif]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[harvardská architektura]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[kyberbezpečnost]]></category>
		<category><![CDATA[mikrokontrolér]]></category>
		<category><![CDATA[Rootcon]]></category>
		<category><![CDATA[smart home]]></category>
		<category><![CDATA[soc]]></category>
		<category><![CDATA[Tarlogic]]></category>
		<category><![CDATA[Wi-Fi]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2672</guid>

					<description><![CDATA[<p>ESP32: Backdooru v populárním čipu Úvod V posledních dnech se odbornou i laickou veřejností šířily znepokojivé zprávy o možném backdooru &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/03/10/esp32-neobsahuje-backdoor/">ESP32 neobsahuje backdoor</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><h1>ESP32: Backdooru v populárním čipu</h1>
<h2>Úvod</h2>
<p>V posledních dnech se odbornou i laickou veřejností šířily znepokojivé zprávy o možném backdooru v čipu ESP32 od čínské společnosti Espressif. Vzhledem k tomu, že těchto čipů bylo celosvětově distribuováno přibližně miliarda kusů a nacházejí se v širokém spektru IoT zařízení, vyvolala tato informace značné obavy. Následující analýza objasňuje, co se skutečně zjistilo a proč se nejedná o závažné bezpečnostní riziko.</p>
<h2>Co je ESP32?</h2>
<p>ESP32 představuje tzv. &quot;system on chip&quot; (SoC) - kompletní mikrokontrolér integrovaný v jediném čipu o rozměrech přibližně 8×8 mm. Při maloobchodní ceně kolem 50 Kč nabízí mimořádný výkon a funkcionalitu:</p>
<ul>
<li>Velké množství vstupně-výstupních (GPIO) pinů pro připojení senzorů a ovládacích prvků</li>
<li>Integrovanou podporu Wi-Fi a Bluetooth pro snadné připojení do sítě</li>
<li>Podporu komunikačních standardů jako SPI, I2C, CAN-BUS a další</li>
<li>Vynikající dokumentaci a vývojářskou podporu</li>
<li>Příznivý poměr cena/výkon</li>
</ul>
<p>Díky těmto vlastnostem se ESP32 stal dominantním čipem v oblasti IoT zařízení, chytrých domácností a řady dalších aplikací. Jeho hlavními konkurenty jsou některé čipy od Texas Instruments a pravděpodobně Raspberry Pi Pico 2TV.</p>
<h2>Co bylo skutečně objeveno?</h2>
<p>Na konferenci Rootcon konané 6.-8. března v Madridu prezentovali dva španělští výzkumníci objev nedokumentovaných příkazů v čipu <a href="https://www.hardwired.dev/2024/10/13/zakladni-prehled-espcek/" title="ESP32">ESP32</a>. Tyto příkazy umožňují provádět některé nízkoúrovňové operace jako zápis do paměti nebo odesílání specifických Bluetooth paketů.</p>
<p><a href="https://www.hardwired.dev/wp-content/uploads/2025/03/diagram.webp"><img fetchpriority="high" decoding="async" src="https://www.hardwired.dev/wp-content/uploads/2025/03/diagram.webp" alt="" width="751" height="534" class="aligncenter size-full wp-image-2679" srcset="https://www.hardwired.dev/wp-content/uploads/2025/03/diagram.webp 751w, https://www.hardwired.dev/wp-content/uploads/2025/03/diagram-300x213.webp 300w" sizes="(max-width: 751px) 100vw, 751px" /></a></p>
<p>Je důležité zdůraznit, že existence nedokumentovaných příkazů je v hardwarových i softwarových řešeních běžná. Většina komplexnějších systémů obsahuje interní pomocné rutiny a metody, které nejsou určeny pro koncové uživatele, ale slouží k vnitřnímu fungování systému, ladění a podobným účelům.</p>
<h2>Proč se nejedná o bezpečnostní riziko?</h2>
<p>Klíčovým faktem je, že k využití těchto nedokumentovaných příkazů musí mít útočník již plnou kontrolu nad zařízením. To znamená:</p>
<ol>
<li>
<p><strong>Fyzický přístup k zařízení</strong> - Pro nahrání vlastního kódu do ESP32 je často nutné zařízení fyzicky rozebrat a připojit se k UART pinům na základní desce.</p>
</li>
<li>
<p><strong>Překonání bezpečnostních mechanismů</strong> - ESP32 umožňuje implementaci kontroly digitálního podpisu firmware, kdy čip odmítne spustit kód, který není podepsán správným klíčem.</p>
</li>
<li>
<p><strong>Harvardská architektura jako ochrana</strong> - Na rozdíl od běžných počítačů s von Neumannovou architekturou používá ESP32 harvardskou architekturu s oddělenou pamětí pro kód a data, což znesnadňuje spuštění škodlivého kódu.</p>
</li>
</ol>
<h2>Jak došlo k nedorozumění?</h2>
<p><a href="http://https://www.tarlogic.com/news/hidden-feature-esp32-chip-infect-ot-devices/" title="Společnost Tarlogic">Společnost Tarlogic</a>, mateřská organizace zmíněných výzkumníků, vydala původně bombastickou tiskovou zprávu hovořící o &quot;ohrožení stovek milionů IoT zařízení&quot;. Tuto zprávu převzal server Bleeping Computer, který v titulku navýšil počet potenciálně ohrožených zařízení na miliardy. Následně se informace lavinovitě šířila dalšími médii.</p>
<p>Po bližším prozkoumání problematiky byly původní články staženy a přeformulovány, aby lépe odrážely skutečnou závažnost situace. Nicméně, původní senzační zprávy už stihly vyvolat značné obavy.</p>
<p><a href="https://www.tarlogic.com/news/hidden-feature-esp32-chip-infect-ot-devices/" title="https://www.tarlogic.com/news/hidden-feature-esp32-chip-infect-ot-devices/">https://www.tarlogic.com/news/hidden-feature-esp32-chip-infect-ot-devices/</a><br />
<a href="https://www.bleepingcomputer.com/news/security/undocumented-commands-found-in-bluetooth-chip-used-by-a-billion-devices/" title="https://www.bleepingcomputer.com/news/security/undocumented-commands-found-in-bluetooth-chip-used-by-a-billion-devices/">https://www.bleepingcomputer.com/news/security/undocumented-commands-found-in-bluetooth-chip-used-by-a-billion-devices/</a></p>
<h2>Závěr</h2>
<p>Používání čipu ESP32 je nadále bezpečné. Přítomnost nedokumentovaných příkazů nepředstavuje sama o sobě bezpečnostní riziko, protože k jejich využití je nutná plná kontrola nad zařízením, což by útočníkovi umožnilo i mnohem závažnější zásahy do systému bez ohledu na existenci těchto příkazů.</p>
<p>Bezpečnost zařízení s ESP32 závisí primárně na kvalitě jejich návrhu:</p>
<ul>
<li>Zařízení, která byla navržena s důrazem na bezpečnost, zůstávají bezpečná i nadále</li>
<li>Zařízení s bezpečnostními nedostatky byla zranitelná již před tímto objevem</li>
</ul>
<p>Uživatelé zařízení s ESP32 mohou tedy pokračovat v jejich používání bez obav a vývojáři mohou nadále implementovat tento čip do svých konstrukcí.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F03%2F10%2Fesp32-neobsahuje-backdoor%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/03/10/esp32-neobsahuje-backdoor/">ESP32 neobsahuje backdoor</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SpaceSense: Žárovky, které vidí skrze WiFi</title>
		<link>https://www.hardwired.dev/2024/11/15/spacesense-zarovky-ktere-vidi-skrze-wifi/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Fri, 15 Nov 2024 10:49:41 +0000</pubDate>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[Různé]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[smart home]]></category>
		<category><![CDATA[smarthome]]></category>
		<category><![CDATA[wiz]]></category>
		<category><![CDATA[WiZ Home Monitoring Starter ki]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2435</guid>

					<description><![CDATA[<p>Chytré žárovky vybavené WiFi senzory přinášejí zásadní pokrok v oblasti domácí automatizace a bezpečnosti. Tyto inovativní světelné zdroje v sobě &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/11/15/spacesense-zarovky-ktere-vidi-skrze-wifi/">SpaceSense: Žárovky, které vidí skrze WiFi</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Chytré žárovky vybavené WiFi senzory přinášejí zásadní pokrok v oblasti domácí automatizace a bezpečnosti. Tyto inovativní světelné zdroje v sobě kromě klasického LED osvětlení ukrývají také sofistikovaný systém pro detekci osob, který využívá běžné WiFi signály. Princip jejich fungování je založen na analýze odrazů a změn WiFi signálu v prostoru, přičemž lidské tělo, které obsahuje vysoké procento vody, vytváří charakteristické vzory rušení těchto signálů.</p>
<p>Systém neustále monitoruje vzorce WiFi signálů v místnosti a porovnává je s referenčním stavem prázdného prostoru. Jakmile do místnosti vstoupí osoba, její přítomnost způsobí měřitelné změny v charakteristikách signálu, které žárovka okamžitě zaznamená a vyhodnotí. Tato technologie umožňuje nejen detekovat přítomnost osob, ale dokáže rozpoznat i jejich pohyb a v některých případech dokonce i základní aktivitu. Díky tomu mohou žárovky automaticky regulovat osvětlení, šetřit energii v nepřítomnosti osob a zároveň přispívat k celkové bezpečnosti domácnosti bez nutnosti instalace dodatečných pohybových čidel.</p>
<p>Jedním z trendů chytré domácnosti je zjednodušování již existujících věcí, jak při používání, tak instalaci. Třeba automatizované rozsvícení a zhasínání žárovek při příchodu do místnosti. Buď si vyberete model s PIR senzorem, který ale nemůžete umístit do většiny svítidel, protože kryt lamp funkci senzoru více či méně omezí. Anebo vyberete řešení s externím senzorem, který ale musíte někam umístit a nějak napájet.</p>
<p><strong>IP kamera WiZ Home Monitoring Starter kit (929003317801)</strong><br />
Tento článek se nevěnuje IP kameře ale jen systému žárovek.<br />
Úplně jinak na to jde systém SpaceSense, který do žárovek integrovala společnost Wiz, patřící pod mateřskou společnost Signify (ex Philips Lightning) – pro detekci přítomnosti osob v místnosti využívají wi-fi signál. V základním balení najdete tři žárovky s paticí E27. Není potřeba žádný hub nebo bridge, vše se spojí přímo s wi-fi routerem.</p>
<p><a href="https://www.datart.cz/ip-kamera-wiz-home-monitoring-starter-kit-929003317801-bila.html" title="Datart">Datart</a></p>
<p>V běžném provozu má systém fungovat jako žárovky s detektorem – přijdete do místnosti, rozsvítí se na přednastavený výkon a teplotu světla, a dokud se v místnosti hýbete, žárovky svítí. Jakmile odejdete, nebo se přestanete hýbat, začne běžet přednastavený interval, a když uplyne, aniž by detekovaly pohyb, žárovky zhasnou.</p>
<p><strong>Jak vlastně detekce funguje?</strong><br />
Detekční systém SpaceSense využívá wi-fi signálu, kterým se žárovky připojují k routeru. Wi-fi signál totiž pokrývá celou místnost, odráží se od objektů a stěn, prochází jimi a je i částečně pohlcován. A tyto změny umí komunikační čipy dobře měřit. S trochou nadsázky si tak SpaceSense můžeme představit jako echolokaci.</p>
<p><a href="https://www.hardwired.dev/?attachment_id=2438"><img decoding="async" src="https://www.hardwired.dev/wp-content/uploads/2024/11/wifidetekce.jpg" alt="" /></a></p>
<p>Žárovky je potřeba rozmístit do různých svítidel v místnosti, vždy aspoň dva metry od sebe, ale méně než šest metrů od sebe. Jedna žárovka funguje jako maják a dvě jako „procesory&quot;. To může být trochu háček, protože lampy/lustry mají běžně víc žárovek najednou a s tím pak detekční systém nefunguje. Do takové lampy tak dáte jednu žárovku se SpaceSense a ostatní pozice doplníte jinými žárovkami od Wiz, které pak systém bude ovládat, ale k detekci nevyužije. A v místnosti pak potřebuje další dvě samostatné lampy.</p>
<p>Při instalaci je potřeba udělat kalibraci, kde si systém bez vaší přítomnosti očuchá, jak vypadá wi-fi v klidu, aby měl lepší představu o podobě změny při příchodu osoby. Prostor, ve kterém funguje detekce, si můžete představit, jako když žárovky postavíte na pomyslnou kružnici – uvnitř kružnice pohyb detekovaný je, vně není. S tím je potřeba počítat.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F11%2F15%2Fspacesense-zarovky-ktere-vidi-skrze-wifi%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/11/15/spacesense-zarovky-ktere-vidi-skrze-wifi/">SpaceSense: Žárovky, které vidí skrze WiFi</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DIY Signal Light</title>
		<link>https://www.hardwired.dev/2024/10/23/diy-signal-light/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Wed, 23 Oct 2024 09:30:40 +0000</pubDate>
				<category><![CDATA[3D Tisk]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[3dprint]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[esp8266]]></category>
		<category><![CDATA[esphome]]></category>
		<category><![CDATA[homeassistant]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[pla]]></category>
		<category><![CDATA[soldering]]></category>
		<category><![CDATA[wemos]]></category>
		<category><![CDATA[wemosd1mini]]></category>
		<category><![CDATA[ws2812b]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2397</guid>

					<description><![CDATA[<p>V dnešním článku si ukážeme, jak vytvořit signalizační světlo napojené na Home Assistant. Článek ukazuje možnost, jak vyrobit zařízení, které &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/10/23/diy-signal-light/">DIY Signal Light</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>V dnešním článku si ukážeme, jak vytvořit <strong>signalizační</strong> světlo napojené na <a href="https://www.home-assistant.io/">Home Assistant</a>.</p>
<blockquote>
<p>Článek ukazuje možnost, jak vyrobit zařízení, které je připojené k elektrické síti. S tím jsou spojena určitá rizika. Článek je čistě informativní. Výroba a použití jsou na vašem uvážení a odpovědnosti.</p>
</blockquote>
<h1>Motivace</h1>
<p>Mám klasická, na dálku ovládaná garážová vrata. Potřeboval jsem nějakým způsobem monitorovat, zda jsou otevřená. Po vyzkoušení několika levných bezdrátových (bateriově napájených) čidel jsem zjistil, že zpravidla nepřežijí zimu. Proto jsem použil klasický magnetický spínač, natáhl dráty až do <a href="https://www.wemos.cc/en/latest/d1/d1_mini.html">Wemos D1 Mini</a> a tak informuji Home Assistant o stavu garážových vrat.</p>
<p>Celý modul je uzavřený v elektroinstalační krabici, kde je Wemos, trafo, relé a žárovka. Pokud se vrata otevřou, relé začne zapínat a vypínat červenou žárovku, která bliká. Tím se upozorní ostatní členové domácnosti, že jsou vrata otevřená. A tady začíná problém. Modul je s čidlem spojený drátem, což určuje jeho pozici, a není možné s ním hýbat. Vzhledem ke členitosti domu není signalizace vždy dostatečně efektivní.</p>
<p>Rozhodl jsem se vytvořit malé signalizační světlo, které lze umístit kamkoliv, kde je zásuvka.</p>
<blockquote>
<p>Ano, mohl bych si koupit nějakou chytrou žárovku, která je kompatibilní s Home Assistant. Ale to už není DIY <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nemohl bych si udělat vlastní design a už by to nebyla taková zábava.</p>
</blockquote>
<h1>Očekávání</h1>
<ul>
<li>Funguje všude, kde je Wi-Fi.</li>
<li>Je to levné, snadno a rychle vyrobitelné, takže je mohu strategicky rozmístit po domě.</li>
<li>nemá to vyloženě odpudivý design</li>
</ul>
<h1>Požadavky</h1>
<ul>
<li>Home Assitant + <a href="https://esphome.io/">ESP Home</a> rozšíření</li>
<li>3D Tiskárna</li>
<li>DIY svářečka aka tavná pistole <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>sada na pájení a lehce skill</li>
</ul>
<h1>Komponenty</h1>
<p><a href="https://www.wemos.cc/en/latest/d1/d1_mini.html">Wemos D1 Mini</a> je konkrétně pro tento případ ideální. Jinak mohu klidně použít <a href="https://www.espressif.com/en/products/socs/esp32">ESP32</a> Dev Kit nebo cokoliv kompatibilního s <a href="https://esphome.io/">ESP Home</a>. U <a href="https://www.laskakit.cz/wemos-d1-mini-esp8266-wifi-modul/">Lásky</a> je za 128 CZK, na <a href="https://vi.aliexpress.com/item/32787418018.html">AliExpressu</a> to jde najít za cca 2 USD.</p>
<p><a href="https://www.laskakit.cz/8x-inteligentni-rgb-led-neopixel-pasek--ws2812b--5050--5v/">WS2812B 8x LED 5V pásek</a> je ve skutečnosti PCB s osmi <a href="https://www.alldatasheet.com/datasheet-pdf/pdf/1179113/WORLDSEMI/WS2812B.html">adresovatelnými LED</a>. U <a href="https://www.laskakit.cz/8x-inteligentni-rgb-led-neopixel-pasek--ws2812b--5050--5v/">Lásky</a> je za 28 CZK, na <a href="https://vi.aliexpress.com/item/1005002763876887.html">AliExpressu</a> za necelý 1 USD.</p>
<p>Trocha drátu. Netuším náklady, já jednou rozebral asi 5 starých AT/ATX zdrojů a mám zásobu krátkých drátků asi na pár let dopředu.</p>
<p><a href="https://www.printables.com/model/1040409-wemos-d1-mini-signal-light-enclosure">3D tištěná krabička</a> sežere asi 33 g filamentu. Když vezmeme trošku dražší Průšův <a href="https://3dstisk.cz/produkt/prusament-pla-pristine-white-1kg">Prusament PLA Pristine White</a> za 799 CZK za 1 kg, vyjde nás krabička asi na 26 CZK + hoďka tisku. Při ceně 500 CZK za 1 kg jsme už na 17 CZK.</p>
<p>Micro USB kabel. U <a href="https://www.laskakit.cz/100cm-microusb-kabel">Lásky</a> za 28 CZK.</p>
<p>Napájecí zdroj 5V 1A. Když chceme &quot;vyhořet&quot;, tak třeba na <a href="https://allegro.cz/nabidka/napajeci-adapter-usb-nabijecka-5v-1a-5w-tpa-835100vu-b-16631628742">Allegro</a> za 29 CZK. Ale dají se najít za <a href="https://www.cool-ceny.cz/univerzalni-usb-adapter-nabijecka-5v-1a-3165">rozumnou cenu</a> do 50 CZK. Když ještě fungovalo CZC (nechť odpočívá v pokoji), koupil jsem velice levné nabíječky, otestoval je na umělé zátěži a všechny splnily předepsané parametry.</p>
<p>U Lásky to jde všechno koupit za 300 CZK (započítaná i 3D tištěná krabička, bez poštovného). Z Lidové Demokratické Republiky to může vyjít na 190 CZK i s krabičkou a poštovným. Ale určitě bych si dával pozor na ty nabíječky.</p>
<p>Pravdou ovšem je, že pokud doma něco trochu kutíte, většinu věcí už stejně máte doma.</p>
<h1>3D Tištěná Krabička</h1>
<p><a href="https://www.printables.com/model/1040409-wemos-d1-mini-signal-light-enclosure">Krabička</a> se skládá ze dvou dílů: základny a stínítka (návleku). Je navržená na jednoduchý tisk bez supportů. Rozměry stínítka jsou optimalizovány na tisk ve <a href="https://help.prusa3d.com/article/fuzzy-skin_246186">Fuzzy Skin</a> módu pro všechny stěny. Pokud nebude stínítko vytištěno jako Fuzzy Skin, bude příliš volné a nebude dobře držet.</p>
<p>Mechanika je naprosto primitivní: do základny se umístí elektronika a nasune se stínítko. Jednoduché a funkční.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/1000010594.jpg" alt="" /></p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/1000010576.jpg" alt="" /></p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/1000010571.jpg" alt="" /></p>
<h1>Sestavení</h1>
<p>Nachystáme si Wemos, LED modul a naměříme tři dráty, aby nám to pěkně vyšlo. Červený drát napájíme do Wemos 5V pinu a do VCC LED modulu. Černý drát připojíme do Wemos GND pinu a GND LED modulu. Pak libovolnou barvu připojíme do Wemos D5 (GPIO 14) pinu a DI (data in) LED modulu. Můžeme klidně zvolit jiný vhodný Wemos GPIO, ale musíme to zohlednit následně při konfiguraci.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/WeMos-D1-mini-esp8266-pinout-mischianti.png" alt="" /></p>
<p>Jak máme dopájeno, usadíme elektroniku do základny a připevníme ji pomocí tavné pistole. Osvědčil se mi následující postup:</p>
<ul>
<li>Vložíme elektroniku do základny.</li>
<li>Upravíme dráty, aby se všechno pěkně vešlo.</li>
<li>Připojíme přes otvor v krabičce micro USB, tím si vše trochu zafixujeme a víme, že půjde USB zapojit.</li>
<li>Následně zvednu Wemos, dám pod něj trochu tavného lepidla a usadím ho na místo.</li>
<li>Chvíli přidržím, až to zatuhne; takto budu mít jistotu, že to neujede a vždy se tam s micro USB kabelem dostanu.</li>
<li>Až je Wemos pevně uchycený, pomocí tavné pistole uchytím LED modul.</li>
</ul>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/1000010591.jpg" alt="" /></p>
<blockquote>
<p><strong>Upozornění:</strong> Zařízení je myšleno jako signalizační. To znamená, že signalizuje (je rozsvíceno) jen po dobu nezbytně nutnou, krátkou. Není to myšleno jako lampička. LEDky umí pěkně zatopit a vše je připevněno jen tavnou pistolí. Mějte to na paměti.</p>
</blockquote>
<h1>Instalace</h1>
<p>Připojíme zařízení pomocí USB k počítači. Musíme na zařízení nainstalovat firmware, aby ho mohl Home Assistant adoptovat. Web <a href="https://web.esphome.io/">https://web.esphome.io/</a> nám s tím pomůže. Budeme ale potřebovat prohlížeč, který podporuje <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API">Web Serial API</a>, takže Chrome, Brave, atd.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/01-web-esp-home.jpg" alt="" /></p>
<p>Dáme &quot;Connect&quot;.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/02-choose-device.jpg" alt="" /></p>
<p>V našem případě je to COM8. Po výběru zařízení zvolíme „Připravit pro první spuštění“.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/03-perepare-for-first-use.jpg" alt="" /></p>
<p>A potvrdíme instalaci.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/04-confirm-install.jpg" alt="" /></p>
<p>Začne se instalovat firmware.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/05-installing-firmware.jpg" alt="" /></p>
<p>Následně budeme vyzváni k nastavení Wi-Fi.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/06-connect-to-wifi.jpg" alt="" /></p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/07-connect-to-wifi-2.jpg" alt="" /></p>
<p>Nastaví a připojí zařízení na nastavenou Wi-Fi. Základní instalace je dokončena.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/08-flash-complete.jpg" alt="" /></p>
<p>Na zařízení od teď funguje jednoduchý webový server, který zobrazuje například výpis z konzole.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/09-visit-device.jpg" alt="" /></p>
<p>Když přejdeme do Home Assistant do ESP Home, uvidíme, že detekoval nové zařízení.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/10-esp-home-discovered.jpg" alt="" /></p>
<p>Zařízení můžeme adoptovat.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/11-esp-home-adopt.jpg" alt="" /></p>
<p>Potvrdíme, že chceme nainstalovat konfiguraci na zařízení.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/12-esp-home-install-configuration.jpg" alt="" /></p>
<p>Můžeme sledovat průběh kompilace a instalace firmwaru. Všechno se děje přes <a href="https://1nce.com/en-us/resources/iot-knowledge-base/iot-connectivity/iot-sim-card/what-is-ota">OTA</a>.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/13-esp-home-install-in-progress.jpg" alt="" /></p>
<p>Změny můžeme sledovat přes webové rozhraní zařízení.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/14-progress-in-device-web.jpg" alt="" /></p>
<p>Jakmile se instalace dokončí, je potřeba jít do <strong>Nastavení</strong> -&gt; <strong>Zařízení a služby</strong> a tam přes ESPHome integraci přidat zařízení do Home Assistant. Nové zařízení tam bude vidět. Následně se vrátíme do ESPHome rozšíření a u nového zařízení klikneme na <strong>Edit</strong>. Tím se dostaneme do definičního souboru, kde přidáme LED modul zařízení. Použijeme ESPHome modul <a href="https://esphome.io/components/light/neopixelbus.html">NeoPixelBus Light</a>. Je potřeba nastavit pin, přes který je LED modul připojený k Wemosu. V našem případě jsme použili D5 (GPIO 14). Konfigurace vyžaduje hodnotu GPIO. Nastavíme fyzický počet LED, v našem případě 8. Nesmíme zapomenout si LED modul pojmenovat. Pod tímto jménem ho následně uvidíme v Home Assistant.</p>
<pre><code class="language-yaml">light:
  - platform: neopixelbus
    type: GRB
    variant: WS2811
    pin: GPIO14
    num_leds: 8
    name: &quot;Signal Light 03&quot;</code></pre>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/15-esp-home-device-light-configuration.jpg" alt="" /></p>
<p>Uložíme a dáme instalovat. Zeptá se nás to, jakou metodou chceme instalovat nový firmware. Zvolíme bezdrátově.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/16-esp-home-install-prompt.jpg" alt="" /> </p>
<p>A počkáme, než se firmware zkompiluje a nahraje na zařízení. Tady to mají takové neintuitivní. Až doběhne instalace, pro pokračování a „odkliknutí“ tohoto dialogu musíme kliknout na tlačítko <strong>STOP</strong>. Ono je to připojené na sériový výstup zařízení, takže to asi znamená zastavení monitorování sériového výstupu zařízení.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/17-esp-home-ledstrip-install.jpg" alt="" /></p>
<p>Poté můžeme se zařízením pracovat a přidat ho do Dashboardu.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/18-add-to-dashboard.jpg" alt="" /></p>
<p>A začít ho ovládat.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/19-control-from-dashboard.jpg" alt="" /></p>
<p>Tímto je hotovo, zařízení je v Home Assistant a můžeme s ním pracovat.</p>
<p>Pro mě byl dalším krokem přidat zařízení do automatizace. Mám dvě automatizace. Když jsou garážová vrata otevřena, zařízení napojené na tuto automatizaci bliká červeně. Ve chvíli, kdy se změní stav z otevřeno na zavřeno, proběhne sekvence. LED modul se na zařízení vypne, rozsvítí se zelená barva a po nějaké době se vypne.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/20-add-to-automation.jpg" alt="" /></p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/21-automation-finished.jpg" alt="" /></p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/22-close-automation.jpg" alt="" /></p>
<p>Tohle je už opravdu vše. Od této chvíle je zařízení integrováno, a pokud bude mít šťávu a uvidí na Wi-Fi, tak bude signalizovat, jestli jsou garážová vrata otevřená, případně jestli došlo k zavření.</p>
<p><img decoding="async" src="https://cdn.hardwired.dev/eddy/wemos-d1-mini-signal-light/1000010610.jpg" alt="" /></p>
<h1>Bezpečnostní dodatek</h1>
<p>Pokud dostáváte návaly úzkosti, když nejste doma a běží tam vámi vytvořené zařízení, tady je pár tipů, jak úzkost zmírnit.</p>
<h1>Odpojení v nepřítomnosti</h1>
<p>Není asi nutné, aby světýlka blikala/fungovala, když není nikdo doma a nikdo nemá možnost zasáhnout, kdyby došlo k problému. Na to je docela přímočaré řešení. Použijte chytré zásuvky a nastavte, aby zapnuly signalizační modul jen ve chvíli, kdy se někdo nachází doma. Každopádně toto značně prodraží cenu jednoho signalizačního modulu.</p>
<h1>Samozhášivý filament</h1>
<p>U elektroinstalace se používají samozhášivé krabice z jasného důvodu. Pokud zařízení „blafne“, snižujeme pravděpodobnost vyhoření. Například PLA filament touto vlastností nedisponuje. Ovšem existují samozhášivé PETG filamenty. Například <a href="https://prusament.com/cs/materials/prusament-petg-v0/">Prusament PETG V0</a> je tak dvojnásobně dražší a komplikovanější na tisk, ale řešení pro klidnější spaní existuje.                                        </p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F10%2F23%2Fdiy-signal-light%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/10/23/diy-signal-light/">DIY Signal Light</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Základní přehled ESPček</title>
		<link>https://www.hardwired.dev/2024/10/13/zakladni-prehled-espcek/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Sat, 12 Oct 2024 22:51:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[ch340g]]></category>
		<category><![CDATA[cp2102]]></category>
		<category><![CDATA[devkit]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[esp8266]]></category>
		<category><![CDATA[soc]]></category>
		<category><![CDATA[wemos]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2390</guid>

					<description><![CDATA[<p>Základní přehled ESPček, už tak v tom může být docela guláš. Varianty SoC System on a Chip integráče pro velkovezíry &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/10/13/zakladni-prehled-espcek/">Základní přehled ESPček</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Základní přehled ESPček, už tak v tom může být docela guláš.</p>
<h1>Varianty</h1>
<h3><a href="https://www.espressif.com/en/products/socs">SoC</a></h3>
<ul>
<li>System on a Chip</li>
<li>integráče</li>
<li>pro velkovezíry <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>
<h3><a href="https://www.espressif.com/en/products/modules">Moduly</a></h3>
<ul>
<li>Připravené <a href="https://en.wikipedia.org/wiki/System_on_a_chip">SoC</a> v modulu</li>
<li>stíněné</li>
<li>certifikace <a href="http://cs.btf-lab.com/news/what-is-fcc-certification/">FCC</a></li>
<li>pro výrobce a <a href="https://cestina20.cz/slovnik/hobik/">hobíky</a></li>
</ul>
<h3><a href="https://www.espressif.com/en/products/devkits">Dev Kity</a></h3>
<ul>
<li>vývojová deska s modulem nebo <a href="https://en.wikipedia.org/wiki/System_on_a_chip">SoC</a></li>
<li>vyvedený piny</li>
<li>konektory</li>
<li>a další <a href="https://cestina20.cz/slovnik/ficura/">fičury</a></li>
<li>pro vývojáře a <a href="https://cestina20.cz/slovnik/hobik/">hobíky</a></li>
</ul>
<h1>Převodníky USB na UART</h1>
<h2>CP2102</h2>
<ul>
<li><a href="https://www.silabs.com/">Silicon Labs</a></li>
<li>1Mbps</li>
<li>podpora Win, macOS, Linux</li>
</ul>
<h2>CH340G</h2>
<ul>
<li><a href="https://www.wch-ic.com/">WCH (Nanjing Qinheng Microelectronics)</a></li>
<li>2Mbps</li>
<li>může vyžadovat instalaci ovladačů</li>
</ul>
<h1>Modely</h1>
<h2>ESP8266</h2>
<ul>
<li>32-bit Single Core Xtensa LX106 80 - 160 MHz</li>
<li>2.4 GHz Wi-Fi</li>
<li><a href="https://en.wikipedia.org/wiki/Serial_Peripheral_Interface">SPI</a></li>
<li><a href="https://en.wikipedia.org/wiki/I%C2%B2C">I2C</a></li>
<li><a href="https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter">UART</a></li>
<li><a href="https://en.wikipedia.org/wiki/I%C2%B2S">I2S</a></li>
<li>RAM 160KB - 64KB instrukce, 96KB Data</li>
<li>externí <a href="https://www.prodigytechno.com/qspi-protocol">QSPI</a> Flash pamět 512KB a 4MB</li>
</ul>
<h3>Espressif Systems</h3>
<ul>
<li><strong>ESP-WROOM-02</strong> - PCB anténa, 2MiB Flash</li>
<li><strong>ESP-WROOM-02D</strong> - PCB anténa, 2MiB Flash</li>
<li><strong>ESP-WROOM-02U</strong> - U.FL anténa, 2MiB Flash</li>
<li><strong>ESP-WROOM-S2</strong> - PCB anténa 2MiB Flash</li>
</ul>
<h3><a href="http://www.ai-thinker.com/">Ai-Thinker</a></h3>
<ul>
<li><strong>ESP-01S</strong> - PCB anténa, 1MiB Flash</li>
<li><strong>ESP-01M</strong> - PCB anténa, 1MiB Flash</li>
<li><strong>ESP-07S</strong> - U.FL anténa, 4MiB Flash</li>
<li><strong>ESP-08S</strong> - bez Wi-Fi, 4MiB Flash</li>
<li><strong>ESP-12F</strong> - PCB anténa, 4MiB Flash</li>
<li><strong>ESP-12S</strong> - PCB anténa, 4MiB Flash</li>
</ul>
<h3><a href="https://www.wemos.cc/en/latest/">WeMos</a></h3>
<ul>
<li><strong>D1 R2</strong> - PCB anténa, 1MiB Flash</li>
<li><strong><a href="https://www.wemos.cc/en/latest/d1/d1_mini.html">D1 mini</a></strong> - PCB anténa, 4MiB Flash</li>
<li><strong>D1 mini Lite</strong> - PCB anténa, 1MiB Flash</li>
<li><strong>D1 mini Pro</strong> - U.FL anténa, 16MiB Flash</li>
</ul>
<h2><a href="https://www.espressif.com/en/products/socs/esp32">ESP32</a></h2>
<ul>
<li>uvedena 2016</li>
<li>160 - 240 MHz</li>
<li>FPU</li>
<li>32-bit MCU Single &amp; Dual Core</li>
<li>2.4 GHz Wi-Fi</li>
<li>Bluetooth / Bluetooth LE</li>
<li>Camera Bus</li>
<li>Hall Sensor</li>
<li>SD Interface</li>
</ul>
<h3>Espressif Systems</h3>
<ul>
<li><strong>ESP32-WROOM-32</strong> - 240MHz, 520KB RAM, 4MB Flash, 2.4GHz, BLE 4.2, 26 GPIO</li>
<li><strong>ESP32-WROVER</strong> - 240MHz, 520KB RAM + 8MB PSRAM, 4MB Flash, 2,4GHz, BLE 4.2, 26 GPIO</li>
<li><strong>ESP32-PICO-D4</strong> - 240MHz, 520KB RAM, 4MB Flash, 2.4GHz, BLE 4.2, 19 GPIO, prcek</li>
<li><strong>ESP32-CAM</strong> - 240MHz, 520KB RAM, 4MB Flash, 2.4GHz, BLE 4.2, 9 GPIO, integrovaná kamera</li>
</ul>
<h2>ESP32-S</h2>
<ul>
<li>
<p>uvedena 2020</p>
</li>
<li>
<p>240 MHz</p>
</li>
<li>
<p>Camera Bus</p>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-s2">S2</a></h3>
<ul>
<li>32-bit Single Core MCU</li>
<li>2.4 GHz Wi-Fi</li>
<li>nemá Bluetooth</li>
<li>13-bit ADC</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-s3">S3</a></h3>
<ul>
<li>32-bit Dual Core MCU</li>
<li>2.4 GHz Wi-Fi</li>
<li>Bluetooth 5 (LE)</li>
<li>podporuje extérní paměť</li>
</ul>
</li>
</ul>
<h2>ESP32-C</h2>
<ul>
<li>uvedena 2020</li>
<li>RISC-V procesor</li>
<li>120 - 160MHz</li>
<li>jedno jádrové</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-c2">C2</a></h3>
<ul>
<li>32-bit RISC-V MCU</li>
<li>2.4 GHz Wi-Fi</li>
<li>Bluetooth 5 (LE)</li>
<li>náhrada za ESP8266</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-c3">C3</a></h3>
<ul>
<li>32-bit RISC-V MCU</li>
<li>2.4 GHz Wi-Fi</li>
<li>Bluetooth 5 (LE)</li>
<li>má RTC</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-c6">C6</a></h3>
<ul>
<li>32-bit RISC-V MCU</li>
<li>2.4 GHz <a href="https://cs.wikipedia.org/wiki/Wi-Fi_6">Wi-Fi 6</a></li>
<li>Bluetooth 5 (LE)</li>
<li><a href="https://en.wikipedia.org/wiki/IEEE_802.15.4">IEEE 802.15.4 (LR-WPAN)</a></li>
<li>podpora <a href="https://en.wikipedia.org/wiki/Thread_(network_protocol)">THREAD</a></li>
<li>podpora <a href="https://en.wikipedia.org/wiki/Zigbee">ZIGBEE</a></li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-c61">C61</a></h3>
<ul>
<li>uvedena 2024</li>
<li>160 MHz</li>
<li><a href="https://en.wikipedia.org/wiki/Wi-Fi_6">Wi-Fi 6</a></li>
<li>podpora <a href="https://cs.wikipedia.org/wiki/Matter_(standard)">Matter</a> (<a href="https://docs.espressif.com/projects/esp-matter/en/latest/esp32/">ESP Matter SDK</a>)</li>
<li>32-bit RISC-V MCU</li>
<li>2.4 a 5 GHz</li>
<li>Bluetooth 5 (LE)</li>
<li>může být použit jako koprocesor</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-c5">C5</a></h3>
<ul>
<li>uvedena 2024</li>
<li>240 MHz</li>
<li>32-bit RISC-V MCU</li>
<li><a href="https://en.wikipedia.org/wiki/Wi-Fi_6">Wi-Fi 6</a></li>
<li>podporuje <a href="https://www.ruijienetworks.com/support/faq/what-is-dual-band-wi-fi">Dual Band</a> - 2.4 a 5 GHz</li>
<li>Bluetooth 5 (LE)</li>
<li>podporuje externí flash paměť</li>
<li>může být použit jako koprocesor</li>
</ul>
<h2>ESP32-H</h2>
<ul>
<li>uvedena 2023</li>
<li>RISC-V</li>
<li>96 MHz</li>
<li>zaměření na IoT aplikace</li>
<li>podporuje <a href="https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/spi_flash/index.html">externí paměť</a></li>
<li>podpora <a href="https://en.wikipedia.org/wiki/Thread_(network_protocol)">THREAD</a></li>
<li>podpora <a href="https://en.wikipedia.org/wiki/Zigbee">ZIGBEE</a></li>
<li>
</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-h2">H2</a></h3>
<ul>
<li>32-bit RISC-V MCU</li>
<li>Bluetooth 5 (LE)</li>
<li><a href="https://en.wikipedia.org/wiki/IEEE_802.15.4">IEEE 802.15.4 (LR-WPAN)</a></li>
</ul>
<h2>ESP32-P</h2>
<ul>
<li>uvedena 2024</li>
<li>400 MHz</li>
<li>RISC-V</li>
<li>FPU</li>
<li>zaměřena na vysoký výkon</li>
<li>nemá Wi-Fi</li>
<li>nemá Bluetooth</li>
</ul>
<h3><a href="https://www.espressif.com/en/products/socs/esp32-p4">P4</a></h3>
<ul>
<li>32-bit Dual Core RISC-V MCU</li>
</ul>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F10%2F13%2Fzakladni-prehled-espcek%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/10/13/zakladni-prehled-espcek/">Základní přehled ESPček</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SSH připojení pomocí ESP32</title>
		<link>https://www.hardwired.dev/2024/09/25/ssh-pripojeni-pomoci-esp32/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Wed, 25 Sep 2024 12:09:47 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[espressif]]></category>
		<category><![CDATA[home-automation]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[libssh-esp32]]></category>
		<category><![CDATA[platformio]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[wifi]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2356</guid>

					<description><![CDATA[<p>V dnešním článku se podíváme na to, jak se z ESP32 development boardu připojit pomocí SSH ke vzdálenému počítači. Pro &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/09/25/ssh-pripojeni-pomoci-esp32/">SSH připojení pomocí ESP32</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>V dnešním článku se podíváme na to, jak se z <a href="https://vi.aliexpress.com/item/1005001621773806.html">ESP32 development boardu</a> připojit pomocí <a href="https://cs.wikipedia.org/wiki/Secure_Shell">SSH</a> ke vzdálenému počítači.</p>
<p>Pro vývoj je použito <a href="https://platformio.org/">PlatformIO</a>.</p>
<h1>platformio.ini</h1>
<pre><code class="language-ini">[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps = ewpa/LibSSH-ESP32@^4.2.0</code></pre>
<h1>main.cpp</h1>
<p>Jediná externí závislost je <code>libssh-esp32</code>. </p>
<pre><code class="language-cpp">#include &lt;Arduino.h&gt;
#include &lt;WiFi.h&gt;
#include &lt;libssh_esp32.h&gt;
#include &quot;libssh_esp32_config.h&quot;
#include &lt;libssh/libssh.h&gt;
#include &lt;vector&gt;
#include &lt;string&gt;</code></pre>
<p>Budeme potřebovat SSID WiFi sítě a heslo.</p>
<pre><code class="language-cpp">const char *ssid = &quot;ssid-vasi-wifi&quot;;
const char *password = &quot;vase-nejtajnejsi-heslo&quot;;</code></pre>
<p>Potřebujeme nastavit přihlašovací údaje pro SSH a příkaz který po přihlášení provedeme.</p>
<pre><code class="language-cpp">const int ssh_port = 22;
const char *ssh_username = &quot;pi&quot;;
const char *ssh_password = &quot;super-tajne-heslo&quot;;
const char *ssh_command = &quot;ls -l&quot;;</code></pre>
<p>Dále seznam IP adres serverů na které se chceme připojit.</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; server_ips = {
    &quot;192.168.1.254&quot;,
};</code></pre>
<p>Vytvoříme funkci pro připojení k WiFi. Na konci vypíšeme do konzole MAC adresu přístupového bodu, ke kterému jsme se připojili.</p>
<pre><code class="language-cpp">void connectToWiFi()
{
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(1000);
        Serial.println(&quot;Connecting to WiFi..&quot;);
    }
    Serial.print(&quot;Připojeno k AP s MAC: &quot;);
    Serial.println(WiFi.BSSIDstr());
}</code></pre>
<p>Ted ta nejdelší část. Funkce co vytvoří SSH spojení, provede příkaz a výsledek vypíše na standardní výstup. Funkce si po sobě uklízí.</p>
<pre><code class="language-cpp">/**
 * Execute SSH Command
 *
 * @param ip Server IP
 * @param username SSH Username
 * @param password SSH Password
 * @param command Command to execute
 */
void executeSSHCommand(const char *ip, const char *username, const char *password, const char *command)
{
    // Create a new SSH session
    ssh_session session = ssh_new();
    if (session == NULL)
    {
        Serial.println(&quot;Failed to create SSH session&quot;);
        return;
    }

    // Set SSH options for the session
    ssh_options_set(session, SSH_OPTIONS_HOST, ip);
    ssh_options_set(session, SSH_OPTIONS_USER, username);

    // Connect to SSH server
    int rc = ssh_connect(session);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to connect to SSH server&quot;);
        return;
    }

    // Verify the server&#039;s identity
    rc = ssh_userauth_password(session, NULL, password);
    if (rc != SSH_AUTH_SUCCESS)
    {
        Serial.println(&quot;Failed to authenticate&quot;);
        return;
    }

    // Create a new SSH channel
    ssh_channel channel = ssh_channel_new(session);
    if (channel == NULL)
    {
        Serial.println(&quot;Failed to create SSH channel&quot;);
        return;
    }

    // Open a new SSH session
    rc = ssh_channel_open_session(channel);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to open SSH session&quot;);
        return;
    }

    // Execute the command
    rc = ssh_channel_request_exec(channel, command);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to execute command&quot;);
        return;
    }

    // Read the output of the command
    char buffer[256];
    int nbytes; // Number of bytes read
    nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
    while (nbytes &gt; 0)
    {
        if (write(1, buffer, nbytes) != nbytes) // Write to stdout
        {
            Serial.println(&quot;Failed to write to stdout&quot;);
            return;
        }
        nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
    }

    // Check if there was an error reading from the channel
    if (nbytes &lt; 0)
    {
        Serial.println(&quot;Failed to read from SSH channel&quot;);
        return;
    }

    // Send EOF and close the channel
    ssh_channel_send_eof(channel);

    // Close the channel
    ssh_channel_close(channel);

    // Free the channel
    ssh_channel_free(channel);

    // Disconnect the session
    ssh_disconnect(session);

    // Free the session
    ssh_free(session);
}</code></pre>
<p>Teď potřebujeme funkci která provede SSH příkaz pro všechny naše servery, které jsou definované v <code>server_ips</code>.</p>
<pre><code class="language-cpp">/**
 * Execute SSH Command on all servers
 * 
 * @param username SSH Username
 * @param password SSH Password
 * @param command Command to execute
 */
void executeSSHCommandOnAllServers(const char *username, const char *password, const char *command)
{
    for (std::string ip : server_ips)
    {
        executeSSHCommand(ip.c_str(), username, password, command);
    }
}</code></pre>
<p>Teď už jen zbývá provést vše při startu ESPčka.</p>
<pre><code class="language-cpp">void setup()
{
    Serial.begin(115200);
    while (!Serial)
    {
        ; // Wait for serial to be ready
    }

    connectToWiFi();
    ssh_init();
    executeSSHCommandOnAllServers(ssh_username, ssh_password, ssh_command);
}</code></pre>
<p>Hlavní smyčku programu pro tento příklad necháme odpočívat.</p>
<pre><code class="language-cpp">void loop()
{
    delay(1000); // Delay for 1 second
}</code></pre>
<p>To je vše. Po kompilaci, nahrání kódu a spuštění ESPčka se připojí k WiFi a poté provede SSH připojení na zadané IP adresy a provede <code>ls -l</code> příkaz. Ten vypíše do konzole.</p>
<h1>main.cpp full</h1>
<pre><code class="language-cpp">#include &lt;Arduino.h&gt;
#include &lt;WiFi.h&gt;
#include &lt;libssh_esp32.h&gt;
#include &quot;libssh_esp32_config.h&quot;
#include &lt;libssh/libssh.h&gt;
#include &lt;vector&gt;
#include &lt;string&gt;

// WiFi Credentials
const char *ssid = &quot;ssid-vasi-wifi&quot;;
const char *password = &quot;vase-nejtajnejsi-heslo&quot;;

// SSH Credentials
const int ssh_port = 22;
const char *ssh_username = &quot;pi&quot;;
const char *ssh_password = &quot;super-tajne-helso&quot;;
const char *ssh_command = &quot;ls -l&quot;;

// Server IPs List
std::vector&lt;std::string&gt; server_ips = {
    &quot;192.168.1.254&quot;,
};

/**
 * Connect to WiFi
 */
void connectToWiFi()
{
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(1000);
        Serial.println(&quot;Connecting to WiFi..&quot;);
    }
    Serial.print(&quot;Připojeno k AP s MAC: &quot;);
    Serial.println(WiFi.BSSIDstr());
}

/**
 * Execute SSH Command
 *
 * @param ip Server IP
 * @param username SSH Username
 * @param password SSH Password
 * @param command Command to execute
 */
void executeSSHCommand(const char *ip, const char *username, const char *password, const char *command)
{
    // Create a new SSH session
    ssh_session session = ssh_new();
    if (session == NULL)
    {
        Serial.println(&quot;Failed to create SSH session&quot;);
        return;
    }

    // Set SSH options for the session
    ssh_options_set(session, SSH_OPTIONS_HOST, ip);
    ssh_options_set(session, SSH_OPTIONS_USER, username);

    // Connect to SSH server
    int rc = ssh_connect(session);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to connect to SSH server&quot;);
        return;
    }

    // Verify the server&#039;s identity
    rc = ssh_userauth_password(session, NULL, password);
    if (rc != SSH_AUTH_SUCCESS)
    {
        Serial.println(&quot;Failed to authenticate&quot;);
        return;
    }

    // Create a new SSH channel
    ssh_channel channel = ssh_channel_new(session);
    if (channel == NULL)
    {
        Serial.println(&quot;Failed to create SSH channel&quot;);
        return;
    }

    // Open a new SSH session
    rc = ssh_channel_open_session(channel);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to open SSH session&quot;);
        return;
    }

    // Execute the command
    rc = ssh_channel_request_exec(channel, command);
    if (rc != SSH_OK)
    {
        Serial.println(&quot;Failed to execute command&quot;);
        return;
    }

    // Read the output of the command
    char buffer[256];
    int nbytes; // Number of bytes read
    nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
    while (nbytes &gt; 0)
    {
        if (write(1, buffer, nbytes) != nbytes) // Write to stdout
        {
            Serial.println(&quot;Failed to write to stdout&quot;);
            return;
        }
        nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
    }

    // Check if there was an error reading from the channel
    if (nbytes &lt; 0)
    {
        Serial.println(&quot;Failed to read from SSH channel&quot;);
        return;
    }

    // Send EOF and close the channel
    ssh_channel_send_eof(channel);

    // Close the channel
    ssh_channel_close(channel);

    // Free the channel
    ssh_channel_free(channel);

    // Disconnect the session
    ssh_disconnect(session);

    // Free the session
    ssh_free(session);
}

/**
 * Execute SSH Command on all servers
 *
 * @param username SSH Username
 * @param password SSH Password
 * @param command Command to execute
 */
void executeSSHCommandOnAllServers(const char *username, const char *password, const char *command)
{
    for (std::string ip : server_ips)
    {
        executeSSHCommand(ip.c_str(), username, password, command);
    }
}

void setup()
{
    Serial.begin(115200);
    while (!Serial)
    {
        ; // Wait for serial to be ready
    }

    connectToWiFi();
    ssh_init();
    executeSSHCommandOnAllServers(ssh_username, ssh_password, ssh_command);
}

void loop()
{
    delay(1000); // Delay for 1 second
}
</code></pre>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F09%2F25%2Fssh-pripojeni-pomoci-esp32%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/09/25/ssh-pripojeni-pomoci-esp32/">SSH připojení pomocí ESP32</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
