<?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>yaml &#8211; IoT-devices, LLC &#8211; Electronics manufacturer for IoT</title>
	<atom:link href="https://iot-devices.com.ua/tag/yaml/feed/" rel="self" type="application/rss+xml" />
	<link>https://iot-devices.com.ua</link>
	<description>Від модулів до складних пристроїв</description>
	<lastBuildDate>Sun, 07 Jan 2024 17:30:24 +0000</lastBuildDate>
	<language>uk</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://iot-devices.com.ua/wp-content/uploads/2020/05/iot-devices_logo_inversed_kromka_512x512_82ce62_white-100x100.jpg</url>
	<title>yaml &#8211; IoT-devices, LLC &#8211; Electronics manufacturer for IoT</title>
	<link>https://iot-devices.com.ua</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Термометр LM75: підключення  до ESP12.OLED_V1 у ESPHome</title>
		<link>https://iot-devices.com.ua/lm75-thermometer-connection-to-esp12-oled_v1-in-esphome/</link>
		
		<dc:creator><![CDATA[iot-guru]]></dc:creator>
		<pubDate>Sun, 07 Jan 2024 11:21:20 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Тестування]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ESP12.OLED]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[ESPHome]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[I2CHUB_V1]]></category>
		<category><![CDATA[LM75]]></category>
		<category><![CDATA[yaml]]></category>
		<guid isPermaLink="false">https://iot-devices.com.ua/?p=3223</guid>

					<description><![CDATA[Всі хто займається DIY IoT проектами знайомі з сенсором температури LM75. Термометр LM75 &#8211; це дешевий і зручний сенсор, який має достатню точність та діапазон вимірювання.&#160; Та найголовніша його перевага у тому, що він працює через I2C шину.&#160; Чому ці термометри є недооціненими Хтось може зауважити, що LM75 це не найкращий сенсор за своїми технологічними [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Всі хто займається DIY IoT проектами знайомі з сенсором температури LM75. Термометр LM75 &#8211; це дешевий і зручний сенсор, який має достатню точність та діапазон вимірювання.&nbsp;</p>



<p class="wp-block-paragraph">Та найголовніша його перевага у тому, що він працює через I2C шину.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/2IO_QsYCPegb15n4XkZZsZDiHSr8LHAXmo0eJKCdHTLIiyRERwwLw8AZLHsOyJnZ_85ciPBnnY23iEOM8HTMqSwMHFZrgcqfWqxqIV2IVVB4kx3fCC8g7F9LLwW0iX_haE7DYUq38NYbpO8Er0IQdGw" alt=""/></figure>



<h1 class="wp-block-heading">Чому ці термометри є недооціненими</h1>



<p class="wp-block-paragraph">Хтось може зауважити, що LM75 це не найкращий сенсор за своїми технологічними особливостями і виконанням у вигляді мікросхеми. І дійсно, є багато інших типів сенсорів температури, такі як <a href="https://esphome.io/components/sensor/dallas.html?highlight=wire#dallas-temperature-sensor" target="_blank" rel="noopener">1-Wire Dallas&nbsp; DS18b20</a>. Ці сенсори мають одно-провідне підключення та багато інших конструктивних переваг, таких як вологозахищені металізовані корпуси у вигляді капсули, тощо. На шину 1-Wire можливо підключити багато термометрів на одному дроті, 1Wire підтримує контроль помилок та ідентифікацію пристроїв, тощо, тощо.</p>



<p class="wp-block-paragraph">Але у шини 1-Wire є один і найголовніший недолік &#8211; для цієї шини не випускають інших пристроїв, крім термометрів. Точніше не так, їх випускають, але це настільки не популярний сегмент, що їх неможливо купити.</p>



<p class="wp-block-paragraph">Коли нам потрібно побудувати пристрій середньої складності, як-от метеостанція, одразу декілька різноманітних сенсорів та інших периферійних пристроїв необхідно підключати до головного контролера (перелік, наприклад):</p>



<ul class="wp-block-list"><li>Сенсор BME680 / BME280 I2C / SPI;</li><li>Сенсор DS18b20 1-Wire;</li><li>Дисплей SPI / I2C;</li><li>Сенсор блискавки AS3935 SPI / I2C;</li><li>Сенсор освітленості MAX44009 I2C;</li><li>Сенсор температури та вологості HDC1080 I2C;</li><li>Сенсор CCS811 I2C;</li><li>Сенсор SCD4X I2C;</li></ul>



<p class="wp-block-paragraph">І навіть в ситуації з потужним ESP32 (не кажучи про ESP8266 та подібні контролери, як-от Arduino чи RPI Pico W), ми будемо вимушені вирішувати задачу оптимізації кількості інтерфейсів та протоколів. Адже обробка кількох різних протоколів рано чи пізно вплине на нашу розробку і буде вимагати спрощення не лише на боці апаратного забезпечення (бюджет вільних портів вводу-виводу), а і програмної реалізації драйверів для різних протоколів та інтерфейсів, які мають крутитися паралельно в головному циклі контролера.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em><strong>Примітка.</strong> Про SPI ми не пишемо тут, адже це спеціалізований протокол з абсолютно іншим призначенням та сильними сторонами, які стосуються хіба що виключних ситуацій, коли йдеться про сенсори.</em></p></blockquote>



<p class="wp-block-paragraph">Тому, на нашу думку варто одразу обирати рішення, які буде можливо легко розширювати та експлуатувати в майбутньому. 1-Wire- та SPI- пристрої мало придатні до таких вимог і через це ми радимо їх не розглядати крім випадків, коли це дійсно необхідно (як у випадку з SPI: дисплеями високої роздільної здатності, чи вимірюванням величин з швидкостями наближеними до реального часу).</p>



<p class="wp-block-paragraph">Варто спробувати будувати оптимальне програмно-апаратне рішення &#8211; робимо крок у бік шини I2C. Тобто, оскільки у нас на головному контролері буде дисплей SSD1306 з I2C, кейпад <a href="https://iot-devices.com.ua/product-uk/i2cui4v1-user-interface-i2c-module-with-5keys-keypad-rgb-led-buzzer/">I2CUI4_V1</a> з I2C &#8211; навіщо нам ставити сенсори температури з якимось іншим інтерфейсом? &#8211; Так і вирішили, буде лише один інтерфейс: шина I2C. Всі з’єднання будуть через поділювач / хаб <a href="https://iot-devices.com.ua/product-uk/i2chub-v1-module-i2c-bus-interfaces-splitter/">I2CHUB_V1</a>, який підтримує підключення до контролера 5 пристроїв одночасно.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em><strong>Примітка.</strong> Нагадаємо, що I2C &#8211;&nbsp; чудова шина &#8211; дозволяє не лише підключати безліч пристроїв одночасно, а також надає можливості з ідентифікації пристроїв на шині, контролю помилкових даних та можливість гарячої заміни (підключення і відключення пристроїв користувачем на ходу).</em></p></blockquote>



<h1 class="wp-block-heading">Вбудовані у ESPHome драйвери</h1>



<p class="wp-block-paragraph">Втім, коли ми робимо пошук на сайті ESPHome, то виявляється, що сенсор LM75, який ми зібралися використати у проекті в якості термометрів, не підтримується &#8211; вбудованого драйвера немає.</p>



<p class="wp-block-paragraph">Починаємо проводити власне невелике розслідування щодо наявних драйверів у ESPHome для сенсорів температури подібних до LM75 (0.89 USD на Mouser). І виявляємо, що є два інші термометри, для яких вже написано вбудований драйвер у ESPHome:</p>



<ul class="wp-block-list"><li><a href="https://esphome.io/components/sensor/mcp9808" target="_blank" rel="noopener">MCP9808</a> (1.39 USD на Mouser)</li><li><a href="https://esphome.io/components/sensor/tmp1075" target="_blank" rel="noopener">TMP1075</a> (0.74 USD на Mouser)</li></ul>



<p class="wp-block-paragraph">Обидва сенсори нас би влаштували технічно. Вони є в наявності на Mouser та інших подібних майданчиках. Але ми не змогли знайти готові модулі з цими мікросхемами за ціною, яка була б наближено до ціни на модулі з LM75.&nbsp;</p>



<p class="wp-block-paragraph">Ми подумали, що це нас не влаштовує, як не влаштувало б і більшість наших читачів. З огляду на подібність цих чіпів, ніхто не воліє переплачувати за модуль термометра 5-10 разів, якщо у кожному магазині можна купити модуль на базі LM75.</p>



<p class="wp-block-paragraph">Цікаво, що сенсор TMP1075 є сумісним зі специфікацією LM75 (про це чітко вказано у даташит), яка дефакто є галузевим стандартом. Відтак, ми зробили висновок, що можемо спробувати підключити наш LM75-термометр з драйверами для TM1075, які є вбудованими у ESPHome.</p>



<p class="wp-block-paragraph">Але, на жаль, у нас не вийшло зробити таке підключення, навіть зважаючи на те, що адресація на шині, внутрішні регістри є тотожними у згаданих сенсорів. Єдине що їх відрізняє, так це те, що у TMP1075 також є спеціальний регістр ідентифікації, якого не має сенсор LM75. Але навіть спроби внести зміни у перевірку типу сенсора на рівні CPP-коду цього драйвера не дали нам змоги його застосувати з чипом LM75.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em><strong>Примітка.</strong> Чесно кажучи, нам досі не зрозуміло, чому розробники та контрибутори ESPHome, досі не зробили вбудованого драйвера для LM75. Нам би не довелося писати цю публікацію і проводити купу часу за дивними експериментами.</em></p></blockquote>



<p class="wp-block-paragraph">Тому ми повернулися у вихідну точку і зробили так, як потрібно було зробити з самого початку.&nbsp;</p>



<h1 class="wp-block-heading">Підключення драйвера ззовні</h1>



<p class="wp-block-paragraph">Як ви мабуть знаєте, в ESPHome є щонайменше два механізми підключення власних драйверів пристроїв ззовні: <a href="https://esphome.io/components/sensor/custom.html" target="_blank" rel="noopener">Custom Component</a> та <a href="https://esphome.io/components/external_components" target="_blank" rel="noopener">External Component</a>. </p>



<p class="wp-block-paragraph">Custom component наразі вважається застарілим варіантом інтеграції і не рекомендується документацією ESPHome до використання.&nbsp;</p>



<p class="wp-block-paragraph">Натомість, документація радить використовувати інший, альтернативний спосіб, який на наш погляд, є наразі єдиним, найпростішим та найкращим для виконання інтеграції драйверів власноруч &#8211; External Component.&nbsp;</p>



<p class="wp-block-paragraph">Відмінність External Component полягає у тому, що користувач ESPHome не прописує вручну інтерфейси для потоків даних з сенсора через манівці, а застосовує цілком регламентовані механізми, які до речі застосовуються також всіма іншими компонентами ESPHome:</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/fhNnFHCjYoYeeW3YgVORrZe0q2lyXcUaa4xA8T0t9_3djudr-Oh-DGAgBgDhDNXycpoDgDG9s8-TOZv4eebVcJ_4TYSi3_V_7k1PN8ohzUPVyY3GptHfUwkf9InA6ttQ86HDp9OkrFDhmrSe6FOTOlc" alt=""/></figure>



<p class="wp-block-paragraph">Отже, щоб підключити External Component, спочатку потрібно правильно описати його обвязку. Ми не будемо тут занурюватися у деталі програмування та конфігурацій, адже ми знайшли на GitHub вже готовий компонент для LM75.</p>



<p class="wp-block-paragraph">Щоб додати сенсори LM75, у YAML-конфіг пристрою в ESPHome, потрібно додати лише кілька рядків:</p>



<ul class="wp-block-list"><li>підключити зовнішній компонент (External Component):</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/GiggLaW8SoWJlEFXlWf7k0F6WK3AhbYfrN4R9S5W1FnR0UnApOTweIlfQ8pNje9f1YZFrwnXBVIoWiidj9D1r-9eVaScu6LnZc6xZvGNTWcdagqLFWJJDIXOGLf37IgnxLXaHlJa5sfalcPoYj0NQ_g" alt=""/></figure>



<ul class="wp-block-list"><li>додати сутності сенсорів LM75</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/l7JbCPB76qDdLuZWnWDmjvXdPfJS0COrbhYlSTKwOD-kiEt7DxrkwiUMFcYOvfVGLgImvW9zC7h8X3J3ViYwVggYGbuqlPpwfuLTE8TPDJHVq1E67OW8PRd__e0lSMbPyPUV6RVn8_zN4vaUVps700A" alt=""/></figure>



<p class="wp-block-paragraph">Для зручності ми форкнули репозиторій esphome-lm75, який надано <a href="https://github.com/btomala" target="_blank" rel="noopener">https://github.com/btomala</a> на GitHub у свій акаунт <a href="https://github.com/iotdevicesdev/esphome-lm75" target="_blank" rel="noopener">https://github.com/iotdevicesdev/esphome-lm75</a></p>



<p class="wp-block-paragraph">Приклад, як виглядає підключення драйверів LM75 для контролера ESP12.OLED_V1 виробництва IoT-devices, LLC у ESPHome:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># YAML Config Example
esphome:
  name: esp12oled-lm75
  friendly_name: esp12oled-lm75
  comment: "Configuration example of two LM75 for ESP12.OLED_V1 with ESPHome firmware"
  project:
    name: "iot-devices.esp12oled-lm75"
    version: "1.0.0"


external_components:
  - source: github://iotdevicesdev/esphome-lm75
    components: [ lm75 ]


esp8266:
  board: nodemcuv2


logger:


api:
  encryption:
    key: "8tDDLc3S5dnSjADItGR5+7KxoUBhUIqeOiJZIXy"


ota:
  password: "c15e9a44e1408352d945b8cd35b79"


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password


  ap:
    ssid: "Test-Node Fallback Hotspot"
    password: "rtF1XxDZ9"


captive_portal:


i2c:
  sda: 4
  scl: 5
  id: i2c_bus


sensor:
  - platform: lm75
    id: temperature
    name: "LM75 temperature"
    update_interval: 30s
    address: 0x48


  - platform: lm75
    id: temperature2
    name: "LM75 temperature2"
    update_interval: 30s
    address: 0x49
# END YAML Config Example
</pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em><strong>Примітка.</strong> Цей код також є на нашому GitHub: <a href="https://github.com/iotdevicesdev/ESP12.OLED_V1-LM75-ESPHome" target="_blank" rel="noopener">github.com/iotdevicesdev/ESP12.OLED_V1-LM75-ESPHome</a> </em></p></blockquote>



<h1 class="wp-block-heading">Склад проекту</h1>



<p class="wp-block-paragraph">1 x Модуль <a href="https://iot-devices.com.ua/en/product/esp12oled-universal-esp8266-mcuboard-oled-en/">ESP12.OLED_V1</a> з прошивкою ESPHome 2023.12.5;</p>



<p class="wp-block-paragraph">1 x Модуль <a href="https://iot-devices.com.ua/en/product/i2chub-v1-module-i2c-bus-interfaces-splitter/">I2CHUB_V1</a>;</p>



<p class="wp-block-paragraph">1 x Модуль LM75 (no brand);</p>



<p class="wp-block-paragraph">1 x Модуль CJMCU-75.</p>



<h1 class="wp-block-heading">Результати проекту</h1>



<p class="wp-block-paragraph">Головне, що ми хотіли вам розповісти у цьому тексті:</p>



<ol class="wp-block-list"><li>Ми підключили LM75 через механізм External Component настільки легко і просто, що самі не повірили у успіх після складних експериментів з драйвером для TMP1075.</li><li>Конфігурації підтягуються напряму з GitHub, або можуть лінкуватися з локального сховища на вашому ESPHome / HomeAssistant диску. Підключений таким чином External Component автоматично включається у прошивку під час її компіляції.</li><li>Ми перевірили, що з цим компонентом не виникає проблем з адресацією кількох сенсорів LM75 одночасно.</li><li>Все настільки ж просто, як підключити у ESPHome сенсор для якого є вбудований драйвер на кшталт BME280. Простота застосування готового компоненту через метод External Component не йде ні в яке порівняння з застосуванням застарілого методу Custom Component, який ми колись робили для інших своїх задач із сенсором ультрафіолету VEML6070.&nbsp;&nbsp;</li></ol>



<p class="wp-block-paragraph">Як можна бачити на наступних скріншотах, наш проект успішно виконано:</p>



<ul class="wp-block-list"><li>LM75 підключено до контролера ESP12.OLED_V1 з прошивкою ESPHome;</li><li>Два сенсори LM75 одночасно працюють з головним контролером. Там де працює два сенсори, може працювати і вісім (за потреби, LM75 має три піни конфігурації I2C адреси, що дозволяє одночасно працювати з вісьмома сенсорами на кожній шині I2C);</li><li>Дані з сенсорів потрапляють у Home Assistant та виводяться на Dashboard;</li><li>Далі значення сенсорів можуть або автономно виводитися на дисплей контролера ESP12.OLED_V1 засобами прошивки ESPHome, та/або можуть застосовуватися у сценаріях автоматизації Home Assistant.</li></ul>



<h2 class="wp-block-heading">Значення сенсорів LM75 на Dashboard сервера Home Assistant:</h2>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/acaO4mGBATm3R6jzes0mGzzjmRyzUxaL-6iyqv6N8WU7OFE9OMSp491EVcjqcoUL2GHRmAxIZWZJD9XeAB4dOspKdLGxDZWCB3UIDyG3vkJV7-xwE7sH3eahGRzSWIz3SupGSo_-pjFTKhunHcEo9EI" alt=""/></figure>



<h2 class="wp-block-heading">Графіки з Logbook сервера Home Assistant:</h2>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/ptCieHiX5fvP03Sls1EwV4lyliuggL_4NYJglhDjCkdg91jMyGi3wF-6hKYWzKgxDSWx8MRz1lAyHZNT9OI7g0krtebesXDgHHKJJUjNtEahWW_jL2xIx7jqzUDsyAudWB-GPFNB6tc6LTBZlw1dKKU" alt=""/></figure>



<h2 class="wp-block-heading">Значення сенсорів LM75 у меню Developer Tools сервера Home Assistant:</h2>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/D6khohe5sku1MkzapvAicnvyQcwPRACHO-GXe5PQARDyUtOy0FIlymy-ood33FKdA-Amjys9B9mMLQ8hot69UCZd6449YPOR1PjAHGc6ICtuCZt51_j-XG7l9hJSPqvOvQ9b_0GwdtUWBTTEqpms8vQ" alt=""/></figure>



<h2 class="wp-block-heading">Скріншоти консолі ESPHome:</h2>



<ul class="wp-block-list"><li>Пристрої знайдено під час сканування шини I2C (дисплей і два термометри)</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/NJerrlBsGoKpzLNQ5Pbv-erEZkMrZNETE3dMAzkqdfoCPEukPqyjZ8Qb9c7Kpx4pNYH1HSO9vxPxJJkdm5mp-aGXt1DtQK4-MZklgLQOiRsd83zjYum4m9UeYDY4IcFsnflwP-mbxyCiokCRWt0bbVI" alt=""/></figure>



<ul class="wp-block-list"><li>Драйвери для сенсорів LM75 ініціалізовано</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/Y7ulzeeq0M9KBePJRl0vvtU-EVObTNn3n-RDIPB-lsAx9rVp_xdmsYoW5_bpZKXzwm08S5ZVoeTRvkq7NZiFMph-ojmhF2yqRL0wJe4d5-wZwFr8yaTsQp0LINUNUIZBo_niNpuNh_BNlyaAY6-ybKU" alt=""/></figure>



<ul class="wp-block-list"><li>Дані з сенсорів отримує ESPHome та передає у Home Assistant</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/pySE4l9JF_jNWySJ03bDw-1hr8PlL6w6rLtDvjQY6HAwzeB0JFCVAF_7vR5Ypxn7K6Ccm4zrnKLoQqJmCiKCKPPzzfuQFCAB9ouBUG_m2V_R4u7-QxvvxcnrxD9CnVZvCGSb4RvcW2_K9EpbD3tFrw8" alt=""/></figure>



<p class="wp-block-paragraph">Це наразі все, що ми запланували розповісти за цією темою.</p>



<p class="wp-block-paragraph">Дякуємо за увагу!</p>



<p class="wp-block-paragraph">Бажаємо успіхів!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Про зміни у валідації конфігу ESPHome &#8211; Pin Reuse validation</title>
		<link>https://iot-devices.com.ua/about-changes-in-esphome-configuration-validation-pin-reuse-validation/</link>
		
		<dc:creator><![CDATA[iot-guru]]></dc:creator>
		<pubDate>Fri, 05 Jan 2024 13:05:44 +0000</pubDate>
				<category><![CDATA[Новини]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[ESPHome]]></category>
		<category><![CDATA[GGreg20_V3]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[yaml]]></category>
		<guid isPermaLink="false">https://iot-devices.com.ua/?p=3211</guid>

					<description><![CDATA[Нещодавно в прошивці ESPHome відбулися зміни, які тепер не дозволяють повторно застосовувати одні й ті ж порти вводу виводу контролера для створення різних сутностей. Цей механізм отримав назву Pin Reuse validation: https://esphome.io/changelog/2023.12.0.html#pin-reuse-validation Ці оновлення у версії ESPHome 2023.12.0 також торкнулися прикладів розроблених нашою компанією для продукту GGreg20_V3 Geiger counter ionizing radiation detector module.&#160; Відповідно до [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Нещодавно в прошивці ESPHome відбулися зміни, які тепер не дозволяють повторно застосовувати одні й ті ж порти вводу виводу контролера для створення різних сутностей.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/NbMNFqAgMd6hpZWh-NXKLErqXahzagxGzuFmMuTS-pOh1kLpEa0c3RNqNSzc3sHs_L5xhrqexi882bwe6vmlPBunFqvNpaia62ckDj0jKklpRWig2qTRTOSN_sgx3lsHbxyk9dNmbbe-ZTtzwnI6B8I" alt=""/></figure>



<p class="wp-block-paragraph">Цей механізм отримав назву Pin Reuse validation: https://esphome.io/changelog/2023.12.0.html#pin-reuse-validation</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/al5mD8CoLfniPx9Wa-BU1sn4zydlCeLW4Wf893gfEzsXhYkR9asb_Bz10rJvE1mCRTV_qMMjSbQNDINUbw8e9SLkCRnpZS3G2m0X1Vx_PiE0AjiYdQjptfwD_p974q91ikm2pzwRGOME8sPwvugsy8c" alt=""/></figure>



<p class="wp-block-paragraph">Ці оновлення у версії ESPHome 2023.12.0 також торкнулися прикладів розроблених нашою компанією для продукту GGreg20_V3 Geiger counter ionizing radiation detector module.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/5L3UxVVlENtNnMlume0WJMJHI37oR2ElKCXLiYYSn1VyfVqxqpPE4SjYiDFPUtmh6z9FuZedfXyP-8mJVI7m4go2yYCBGNLCewTZl7uowzU59TZHKDTWN8UMefsV8qoUlQai8VyhAEvcnMs9N2uITcA" alt=""/></figure>



<p class="wp-block-paragraph">Відповідно до звернення (https://github.com/iotdevicesdev/GGreg20_V3-ESP32-HomeAssistant-ESPHome/issues/2) користувача стосовно репозиторію для GGreg20_V3-ESP32-HomeAssistant-ESPHome ми внесли необхідні оновлення в конфігураційний YAML-файл.&nbsp;</p>



<p class="wp-block-paragraph">Тепер цей приклад буде нормально працювати з урахуванням нововведень у валідацію конфігурацій ESHome та ви зможете перейти на нові версії ESPHome без проблем.</p>



<p class="wp-block-paragraph">Ми також плануємо оновити інші репозиторії з цією проблемою.</p>



<p class="wp-block-paragraph">Ви також самостійно можете внести зміни у свої YAML-файли конфігурації у ESPHome.&nbsp;</p>



<p class="wp-block-paragraph">Станом на зараз нам відомо два шляхи виправлення конфігу так, щоб він проходив нові правила валідації конфігурації:</p>



<p class="wp-block-paragraph"><strong>Шлях №1.</strong> Якщо вам потрібно повторно використати pin, натомість використовуйте https://esphome.io/components/copy.html</p>



<p class="wp-block-paragraph">Це більш правильний шлях, який ми рекомендуємо застосовувати.</p>



<p class="wp-block-paragraph">Для сутностей сенсорів (sensor entities):</p>



<p class="wp-block-paragraph"><a href="https://esphome.io/components/copy.html#copy-sensor" target="_blank" rel="noopener">https://esphome.io/components/copy.html#copy-sensor</a></p>



<p class="wp-block-paragraph">для сутностей дискретних сенсорів (binary sensor entities):</p>



<p class="wp-block-paragraph"><a href="https://esphome.io/components/copy.html#copy-binary-sensor" target="_blank" rel="noopener">https://esphome.io/components/copy.html#copy-binary-sensor</a></p>



<p class="wp-block-paragraph">Приклад коду який ви маєте отримати наведено ось тут:</p>



<p class="wp-block-paragraph"><a href="https://github.com/iotdevicesdev/GGreg20_V3-ESP32-HomeAssistant-ESPHome/issues/2#issuecomment-1867814996" target="_blank" rel="noopener">https://github.com/iotdevicesdev/GGreg20_V3-ESP32-HomeAssistant-ESPHome/issues/2#issuecomment-1867814996</a></p>



<p class="wp-block-paragraph"><strong>Шлях №2.</strong> Ви також можете задіяти виключну можливість, описану у документі ESPHome Pin Schemma:</p>



<p class="wp-block-paragraph"><a href="https://esphome.io/guides/configuration-types#config-pin-schema" target="_blank" rel="noopener">https://esphome.io/guides/configuration-types#config-pin-schema</a></p>



<p class="wp-block-paragraph">config key: &#8220;allow_other_uses&#8221;</p>



<p class="wp-block-paragraph">Ви можете використати цей ключ налаштування щоб обійти контроль повторного застосування пінів у виключних ситуаціях.&nbsp;</p>



<p class="wp-block-paragraph">Зверніть увагу, що ключ потрібно вказати не лише в сутностях-дублях, а у кожній сутності, де застосовується конкретний пін, щоб конфігурація пройшла валідацію:</p>



<p class="wp-block-paragraph">Помилкові ключі:</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/brK3IMK56GkE7Naz0ylxpNNlaZTm-JOUG4uYq_uFc6Zq6XTr67ROnrjGh_jJOepI1EmVQ3lHEctRRHz0gLsEzCW6VkVYnW8g1qFLWjyaylBBnpE6bY2aBEqnJXnEpJi7wnP9eVHXtVHv3rfN4f1ULsI" alt=""/></figure>



<p class="wp-block-paragraph">Правильні ключі:</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/_3ZcmuT-cY6legairb3Ljg8eRLvQNcJSwg0NanYRmLRuSwUggLnJby9ezW7WNrGrrvPMRYH3iqQ0vsBppkuRMCO58xj70t7f3QGf3UG-LFUvgJvysG4eIIyAy1RVGJp8vCMDEPGNSMaz7dBbMm1Qc3c" alt=""/></figure>



<p class="wp-block-paragraph">У вас має вийти ось такий код із застосуванням ключа &#8220;alow_other_uses&#8221;:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># YAML code example:
- platform: pulse_counter
    pin: 
      number: GPIO2
      allow_other_uses: true
    state_class: "measurement"
    unit_of_measurement: 'CPM'
    name: 'Ionizing Radiation Power CPM'
    count_mode: 
      rising_edge: DISABLE
      falling_edge: INCREMENT # GGreg20_V3 uses Active-Low logic
  # It seems that only one instance of pulse counter internal filters can be set
  # So here no any debounce filters for CPM value 
    use_pcnt: False
    internal_filter: 180us
    update_interval: 60s
    accuracy_decimals: 0
    id: my_cpm_meter
 
  - platform: pulse_counter
    pin:
      number: GPIO2
      allow_other_uses: true
      inverted: True
      mode: 
        input: True 
        pullup: False
        pulldown: False
    unit_of_measurement: 'uSv/Hour'
    name: 'Ionizing Radiation Power'
    count_mode: 
      rising_edge: DISABLE
      falling_edge: INCREMENT
    update_interval: 60s
    accuracy_decimals: 3
    id: my_dose_meter
    filters:
  #    - sliding_window_moving_average: # 5-minutes moving average (MA5) here
  #        window_size: 5
  #        send_every: 1      
      - multiply: 0.0057 # or 0.00332 for J305 by IoT-devices tube conversion factor of pulses into uSv/Hour
# END of YAML code example
</pre>



<p class="wp-block-paragraph">Ви можете обирати, який із способів підходить до вашого DIY проекту.</p>



<p class="wp-block-paragraph">На цьому все. Бажаємо успіхів!</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
