Пропонуємо до вашої уваги процедуру підключення детектора (сенсора) GGreg20 у поєднанні з головним контролером ESP8266 чи ESP32 до сервера Home Assistant через плагін ESP Home.
Якщо ви вже маєте досвід налаштування та розгортання пристроїв у середовищі ESP Home під керуванням Home Assistant, можете пропустити вступні розділи та відразу переходити до прикладу yaml-файлу конфігурації, який ви можете взяти за основу для своєї власної системи і пристроїв.
Всі приклади файлів є робочими та працюють у реально розгорнутому сервері та контролері ESP8266 з детектором GGreg20. ESP32 також підтримується ESP Home і на прикладі ESP8266, читач може зробити варіант yaml-файлу для платформи ESP32. У даній публікації ми демонструємо роботу з ESP32 у обмеженому вигляді, оскільки з точки зору налаштувань ESP Home та Home Assistant, платформи ESP8266 та ESP32 майже не відрізняються.
Примітка. Дана публікація підходить для всіх версій детектора іонізуючої радіації виробництва IoT-devices: GGreg20_V1, GGreg20_V2, GGreg20_V3.
Оскільки вся лінійка даних детекторів орієнтована на трубку СБМ-20, усі версії пристроїв мають однаковий алгоритм та коефіцієнти розрахунку рівня потужності та дози іонізуючого випромінювання.
На точність вимірювання впливають лише індивідуальні властивості встановленої в кожен конкретний детектор GGreg20_V3 трубки СБМ-20. У технічних характеристиках виробника трубок вказано граничний діапазон точності вимірювань у 20%. На практиці це означає, що два однакові пристрої GGreg20, але з різними трубками СБМ-20, можуть давати результати (не білше ніж) із зазначеним відхиленням за кількістю імпульсів.
Кроки з підключення GGreg20 до Home Assistant
Далі ми докладно розглядаємо кроки з підключення детектора (сенсора) GGreg20. Чесно кажучи, нам доводиться наводити багато тексту та рисунків, щоб пояснити деякі важливі моменти – через це публікація здається процедурним жахом. Це не так! Всі ці кроки є простими, автоматизованими і виконуються за 15-20 хвилин.
Сервер
Крок 1. Встановити (або запустити) сервер Home Assistant
Якщо у вас вже встановлено сервер, просто запустіть його. Якщо ж вам потрібно розгорнути сервер, рекомендуємо переглянути розроблену нами інструкцію щодо розгортання Home Assistant у віртуальній машині під ОС Windows 10.
Плагін ESP Home для Home Assistant
Крок 2. Підключити розширення ESP Home для сервера Home Assistant через меню Supervisor -> Add-on Store
Процедура встановлення офіційного плагіна, як-от ESP Home, у Home Assistant доволі проста. Рекомендуємо переглянути Крок 8. Встановлення плагіну ESP Home (Опція) вже згаданої раніше інструкції.
YAML-конфіг нового пристрою ESP з GGreg
Це ключова частина даної публікації, яка нас цікавить більше, ніж всі інші загальні дані про підготовчі кроки середовища. На 3 і 4 кроках будемо розробляти власний конфіг для ESP з GGreg на базі реальних прикладів з нашого тестового сервера Home Assistant.
Крок 3. Скачати готовий приклад пакетного yaml-файлу конфігурації пристрою GGreg20_V3 для ESP8266 з нашого сайту
YAML-файл – це загальноприйнятий у Home Assistant текстовий скриптовий файл, у даному випадку з інструкціями для ESP Home, які застосовуються під час побудови прошивки.
Ми розробили такий файл для ESP8266 з GGreg20 та виклали його у себе на сайті для вільного скачування і використання усіма, кому потрібно підключити GGreg20 до Home Assistant через ESP Home. Скачати файл можливо за цим посиланням.
Повний файл який ви щойно скачали, має наступний вміст:
Розглянемо основні частини підготовленого нами файлу ggreg20_esp8266_esphome.yaml.
Для розрахунку значення потужності іонізуючого випромінювання мікрозіверт на годину, використовується Pulse Counter Sensor – компонент API плагіну ESP Home:
https://esphome.io/components/sensor/pulse_counter.html
За це відповідає ця частина yaml-коду:
sensor: - platform: pulse_counter pin: D3 unit_of_measurement: 'mkSv/Hour' name: 'Ionizing Radiation Power' count_mode: rising_edge: DISABLE falling_edge: INCREMENT update_interval: 60s accuracy_decimals: 3 id: my_doze_meter filters: - sliding_window_moving_average: # 5-minutes moving average (MA5) here window_size: 5 send_every: 5 - multiply: 0.0054 # SBM20 tube conversion factor of pulses into mkSv/Hour
Для розрахунку сумарної отриманої дози опромінення мікрозіверт, застосовується Integration Sensor, теж компонент ESP Home API:
https://esphome.io/components/sensor/integration.htm
За це відповідає ця частина yaml-коду:
- platform: integration name: "Total Ionizing Radiation Dose" unit_of_measurement: "mkSv" sensor: my_dose_meter # link entity id to the pulse_counter values above icon: "mdi:radioactive" accuracy_decimals: 5 time_unit: min # integrate values every next minute filters: # obtained dose. Converting from mkSv/hour into mkSv/minute: [mkSv/h / 60] OR [mkSv/h * 0.0166666667]. # if my_dose_meter in CPM, then [0.0054 / 60 minutes] = 0.00009; so CPM * 0.00009 = dose every next minute, mkSv. - multiply: 0.0166666667
Також, з метою можливості тестування лічильника імпульсів без сенсора GGreg20, у конфігурацію додано дискретний сенсор кнопки Flash ESP8266 – на той же GPIO0 (D3), що і Pulse Counter – але застосовується вже інший компонент ESP Home API, GPIO Binary Sensor:
https://esphome.io/components/binary_sensor/gpio.html
За це відповідає ця частина yaml-коду:
binary_sensor: - platform: gpio name: "D3 Input Button" pin: number: 0 inverted: True mode: INPUT_PULLUP
Плагін ESP Home має достатню документацію на ці компоненти з прикладами, тому ми не будемо вдаватися до детальних пояснень. Де ми вважали за потрібне, ми додали коментарі всереднині yaml-коду.
Крок 4. Створити (на базі прикладу) у ESP Home відповідний yaml-файл конфігурації
Після скачування готового файлу, пропонуємо вам відкрити його будь-яким текстовим редактором і ознайомитися з його вмістом.
Далі необхідно у інтерфейсі плагіну ESP Home на веб-сторінці Home Assistant з правами доступу адміністратора, створити свій власний yaml-файл натиснувши “+” і відповівши на кілька початкових запитань майстра.
Рис. Загальний вигляд інтерфейсу плагіну ESP Home у Home Assistant
Рис. Даємо назву нашому новому пристрою
Рис. Обираємо потрібну платформу відповідно до типу контролера
Рис. Вказуємо параметри WiFi-роутера та пароль для OTA оновлення
Після завершення роботи “майстра”, в інтерфейсі ESP Home з’являється створений нами файл з базовими параметрами, які ми вже налаштували. Тепер потрібно дописати в цей файл частини, які ви знайдете у файлі ggreg20_esp8266_esphome.yaml
Рис. Базова конфігурація для ESP8266 / NodeMCU що створює “майстер”.
Для прикладу наводимо аналогічний початковий yaml-файл для ESP32. Як можна бачити, він майже не відрізняється від файлу для ESP8266.
Рис. Базова конфігурація для ESP32 / WROVER що створює “майстер”.
Якщо скомпілювати такий початковий файл – він буде працювати і робити базові речі – з’єднуватися з сервером, піднімати точку доступу для налаштувань і тому подібне. Але такий контролер не буде виконувати жодних прикладних завдань.
Саме тому вам знадобиться розроблений нами файл – потрібно скопіювати решту налаштувань з нашого файлу у ваш. Також ви можете повністю замінити вміст у вашому файлі даними з ggreg20_esp8266_esphome.yaml, звісно, якщо у вас контролер ESP8266. Якщо ж у вас контролер відрізняється – потрібно замінити відповідні частини файлу, а решту залишити без змін.
Висновки
Ми виконали наступні кроки з підключення GGreg20 до Home Assistant:
Крок 1. Встановити (або запустити) сервер Home Assistant
Крок 2. Підключити розширення ESP Home для сервера Home Assistant через меню Supervisor -> Add-on Store
Крок 3. Скачати готовий приклад пакетного yaml-файлу конфігурації пристрою GGreg20_V3 для ESP8266 з нашого сайту
Крок 4. Створити (на базі прикладу) у ESP Home відповідний yaml-файл конфігурації
Далі ми докладно розглядаємо наступни кроки:
Крок 5. Обрати пін GPIO на контролері, який буде реєструвати імпульси від Ggreg20
Крок 6. Підключити до контролера ESP8266 детектор радіації GGreg20_V3 через роз’єм Out до обраного GPIO контролера
Крок 7. Побудувати і записати прошивку для контролера
Крок 8. Перевірити журнал нового контролера ESP8266 з підключеним Ggreg20
Крок 9. Перевірити, чи утворилися нові сутності на боці сервера
Крок 10. Додати на Дашборд віджети сенсора радіації Ggreg20
Крок 11. Додати скрипт автоматизації Push-нотифікації у додаток Home Assistant про перетин порогів
На цьому все. Бажаємо успіхів!