Tag Archives: ESPHome

Керуємо Home Assistant за допомогою голосу. Частина 2

Сьогодні продовжимо налаштовувати керування голосом в Home Assistant. Але вже цього разу нам знадобиться маленький і, в той же час, недорогий девайс з мікрофоном та динаміком «на борту». Будемо вважати, що всі попередні налаштування, про які я вже писав тут, вже зроблені.

Налаштовуємо і прошиваємо ATOM Echo

Отже, нам знадобиться пристрій, який можна придбати тут або тут, його вартість всього лише приблизно 13$.

Перейдіть за ось цим посиланням, на цій сторінці ви побачите кнопку «CONNECT».

Підключіть ATOM Echo до комп’ютера за допомогою USB-кабелю та натисніть кнопку «CONNECT».

Якщо ви раніше не завантажували прошивки на подібні девайси, мабуть, на вашому комп’ютері не встановлено usb-драйвер для таких пристроїв. Ви побачите спливаюче вікно, де є лише один стандартний COM-порт.

Натисніть «Скасувати», у відповідь з’явиться діалогове вікно, де вам запропонують завантажити і встановити відповідний драйвер.

Необхідно встановити драйвер для пристроїв CH342. Лише після цього з’явиться потрібний нам порт. Оберіть його та натисніть “Під’єднатися

Оберіть пункт «Install voice assistant»

Почнеться процес завантаження прошивки на девайс. Не закривайте вкладку браузера поки триває процес.

Після закінчення завантаження прошивки натисніть «Next»

На наступному кроці вам запропонують ввести пароль до вашої мережі Wi-Fi.

Натисніть на «Add to home assistant», щоб додати девайс в систему. На цьому кроці має з’явитися нове вікно, де вам запропонують додати інтеграцію ESPhome, якщо її ще немає.

Пристрій додано в інтеграції, можна обрати кімнату чи зону, за якою його буде закріплено.

Нижче, на зображенні можна побачити ATOM Echo серед інших пристроїв ESPhome.

В панелі ESPhome необхідно буде додати («ADOPT») ATOM Echo, після чого оновіть його прошивку до актуальної версії.

Тепер в інтеграцію додалися всі органи керування та сенсори. З випадаючого списку оберіть раніше створену мовну модель, натискайте на кнопку і дайте команду для Home Assistant. Тепер все має працювати.

Налаштовуємо слово-пробудження (wake word)

З останнім оновленням Home Assistant з’явилась можливість активувати наш «розумний спікер» взагалі без натискання руками. Насправді зробити це дуже легко, Відкрийте ваш add-on store (або натисніть кнопку нижче),

Встановіть аддон openWakeWord, а після цього натисніть «старт». Аддон не потребує налаштувань.

Після завантаження аддону відкрийте налаштування інтеграцій

Перейдіть до вибору голосових асистентів та клікніть по тому, який хочете редагувати

У спливаючому вікні оберіть Wake word engine і слово-пробудження зі списку праворуч. Натисніть «Update»

І останнє, що вам потрібно зробити, це перевірити чи було ввімкнено використання слова пробудження для вашого ATOM Echo. Після того, як увімкнете «Use wake word» ваш спікер засвітиться бузковим кольором, це значить, що він очікує вашої голосової команди. Нижче, в випадаючому списку можна обрати голосового асистента, з яким буде працювати саме цей девайс

В моїх наступних оглядах, я хочу показати як можна створити своє власне слово-пробудження, тому лишайтесь на зв’язку. Побачимось.

Налаштовуємо інтерфейс Lovelace UI на NSPanel

В одній з моїх минулих статей я познайомив вас зі способом прошивки NSPanel для більшої сумісності з Home Assistant. Тоді за основу ми брали ESPhome, яка керувала контролером ESP32. Але мікропрограму екрану девайсу ми лишили без змін, це дало змогу не міняти зовнішній вигляд інтерфейсу. В свою чергу екран з мікроконтролером «спілкувалися» між собою за допомогою NSPanel Protocol.

Припускаю, що комусь може не подобатися стандартний інтерфейс NSPanel. Можливо, вас навіть не влаштує обмеження в кількості екранів. Нагадаю, ви можете перемикати екрани інтерфейсу за допомогою свайпів, і цих екранів лише три.

Саме тому сьогодні я вам пропоную спосіб змінити інтерфейс NSPanel на альтернативний, який має назву NSPanel Lovelace UI.

Підготовка та прошивка NSPanel

За основну прошивку в NSPanel Lovelace UI вибрано Tasmota. Хоча існує можливість також додати спеціальний ESPHome component, з ESPHome у мене нічого не вийшло, і я вирішив налаштовувати Tasmota. Саме тому я розкажу вам саме про цю мікропрограму.

Отже, почнемо з прошивки Tasmota на контролер ESP32 в NSPanel. Якщо у вас, як і у мене, вже була раніше встановлена ESPHome на цьому девайсі, простіше всього буде «оновитися» по повітрю (OTA). Зайдіть в веб інтерфейс NSPanel, в нижній частині сторінки оберіть раніше завантажений файл прошивки з вашого комп’ютера і натисніть «Update». Приблизно через хвилину девайс перезавантажиться з вже новою прошивкою Tasmota

upload firmware Esphome

Якщо ж у вас ще оригінальна прошивка «з заводу», прийдеться розібрати NSPanel, і завантажити мікропрограму Tasmota за допомогою USB девайсу, що іноді називають TTL-converter. Як це зробити я вже розказував в цій статті

Після прошивки та перезавантаження девайсу мікроконтролер не під’єднається до вашої Wi-Fi мережі, адже він про неї ще нічого не знає. Він створить свою відкриту Wi-Fi точку доступу зі словом Tasmota в назві. Під’єднайтеся до нової мережі за допомогою, наприклад, смартфону, та введіть в браузері адресу 192.168.4.1, це тимчасова адреса нашої NSPanel. Тут ви можете обрати вашу основну Wi-Fi мережу і зберегти пароль. Збережіть налаштування, а вже після перезавантаження NSPanel під‘єднається до вашої Wi-Fi. Дуже рекомендую в налаштуваннях роутера вказати статичну адресу для нашого девайса.

Налаштування NSPanel з прошивкою Tasmota

Перше, що потрібно зробити, це вказати шаблон пристрою для Tasmota. Для цього перейдіть в браузері за IP адресою девайсу. В Configuration натисніть Configure Other і вставте наступний код шаблона:

{"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam 2,11200,10000,3950 | Sleep 0 | BuzzerPWM 1"}

Не забудьте залишити чекбокс «Activate»

Завантажте Berry Driver в Tasmota

  1. Завантажте файл autoexec.be з репозиторію Berry Driver
  2. В Tasmota перейдіть в Consoles > Manage File System і завантажте раніше вказаний файл.
  3. Перезавантажте свою NSPanel.

Оновлюємо мікропрограму екрану Nextion на NSPanel

Тепер оновимо прошивку екрана. Для цього в Tasmota перейдіть в Consoles > Console і в залежності від версії використайте одну з наступних команд:

EU Version: FlashNextion http://nspanel.pky.eu/lui-release.tft
US Version Portrait: FlashNextion http://nspanel.pky.eu/lui-us-p-release.tft
US Version Landscape: FlashNextion http://nspanel.pky.eu/lui-us-l-release.tft

Натисніть «Enter» після чого розпочнеться завантаження мікропрограми та прошивка екрану. В залежності від швидкості доступу до мережі, процес може тривати трохи більше п’яти хвилин. Дочекайтеся закінчення завантаження і перезавантажте пристрій.

Налаштовуємо Home Assistant

Встановлюємо плагін AppDaemon

Найпростіший спосіб інсталювати AppDaemon через Home Assistant Supervisor Add-on Store, тоді його буде автоматично підключено до вашого екземпляра Home Assistant.

Додаємо пакет babel до AppDaemon (необов’язково)

Для локалізації інтерфейсу (дата вашою мовою) вам потрібно додати пакет babel до вашого AppDaemon. У вкладці налаштувань AppDaemon в полі python packages введіть текст «babel» та збережіть налаштування.

Інсталюємо Studio Code Server та HomeAssistant Community Store

Для налаштування інтерфейсу NSPanel Lovelace UI необхідно буде редагувати файл apps.yaml. Редагування yaml файлів буде більш зручніше саме в інтерфейсі Studio Code Server.

HACS — це магазин спільноти Home Assistant, який дозволить легко оновлювати інтеграції та автоматизацію спільноти через веб-інтерфейс користувача Home Assistant. Ви будете сповіщені про оновлення, і їх можна встановлювати, просто натиснувши кнопку. Як встановити HACS я вже писав в одній з попередніх статей.

Встановлюємо Lovelace AppDaemon Backend Application

  1. Натисніть у веб-інтерфейсі Home Assistant на панелі меню ліворуч на HACS
  2. Натисніть «Automations» на правій панелі
  3. У нижньому правому куті натисніть “Explore & download repositories”
  4. Введіть NSPanel і натисніть NSPanel Lovelace UI Backend у списку, що з’явиться
  5. У нижньому правому куті панелі, натисніть «Download this repository with HACS».
  6. Тепер з’явиться панель підтвердження, натисніть «Download» та зачекайте завантаження.
  7. Backend Application тепер установлено, і HACS буде повідомляти вас, коли будуть доступні оновлення.

Налаштуйте MQTT на Tasmota і в конфігурації AppDaemon

Спочатку налаштовуємо з’єднання з вашим MQTT сервером у Tasmota.

Будь ласка, заповніть поле «Topic» таким, як він буде в конфігурації. Змініть «Topic» на щось унікальне саме для вашого девайсу, він знадобиться вам пізніше в налаштуваннях appdaemon/apps.yaml

Тепер налаштуйте з’єднання з MQTT в файлі конфігурації AppDaemon. Будь ласка, додайте конфігурацію вашого сервера mqtt, користувача та пароль до appdaemon.yaml. Потім перезавантажте контейнер AppDaemon після додавання конфігурації MQTT. Ви знайдете цей файл тут: config/appdaemon/appdeamon.yaml
secrets: /config/secrets.yaml

appdaemon:
  latitude: 52.0
  longitude: 4.0
  elevation: 2
  time_zone: Europe/Berlin
  plugins:
    HASS:
      type: hass
    MQTT:
      type: mqtt
      namespace: mqtt
      client_id: "appdaemon"
      client_host: 192.168.75.30
      client_port: 1883
      client_user: "mqttuser"
      client_password: "mqttpassword"
      client_topics: NONE
http:
  url: http://127.0.0.1:5050
admin:
api:
hadashboard:

Налаштування NsPanel в AppDaemon

Додайте наступну мінімальну конфігурацію до файлу apps.yaml, який знаходиться в config/appdaemon/apps/apps.yaml

nspanel-1:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/tasmota_your_mqtt_topic/RESULT"
    panelSendTopic: "cmnd/tasmota_your_mqtt_topic/CustomSend"

Вкажіть tasmota_your_mqtt_topic відповідно до топіка, що використовується в конфігурації Tasmota MQTT.

Якщо ваші налаштування і конфігурація правильні, ви повинні побачити такі екрани на NsPanel:

Знайомство з прикладом повної конфігурації NSPanel Lovelace UI

Нижче, під спойлером ви знайдете повний текст з файлу конфігурації моєї NSPanel. Також подивіться на зображення декількох екранів інтерфейсу саме мого варіанту конфігурації. Екран скрінсейвера з погодою можна побачити в шапці цієї статті.


На сьогодні все. Побачимось!

PS

На мою думку, після натискання кнопки-вимикача час відгуку реле девайса з прошивкою Tasmota став трошки більшим, ніж був з ESPhome. Можливо причина в тому, що NSPanel чекає команду на вмикання реле від Home Assistant. В той же час, в ESPhome вся “магія” відбуваеться лише в девайсі, тобто без очікування відповіді від Home Assistant.

Я вирішив відмовитися від Tasmota на борту NSPanel і, в решті решт, встановив ESPhome з компонентом Lovelace UI. Знайти файл конфігурації ESPhome ви можете в моєму Github репозиторії за ось цим посиланням. Тепер вимикачі працюють досить жваво, і, чесно-кажучи, налаштовувати ESPhome  мені більш звичніше.

Знайомимось з вимикачем NSPanel і прошиваємо ESPHome

Минулого року китайська компанія Sonoff розпочала краудфандингову кампанію, де представила цікавий розумний девайс. Вже наприкінці 2021 року Sonoff представила світу NSPanel. Цей девайс являє собою прямокутний пристрій з кольоровим сенсорним дисплеєм розміром 3,5 дюйма та двома фізичними клавішами.

Сенсорний дисплей теж було виготовлено компанією Sonoff, це модель Nextion.

Існує дві версії NSPanel, вони відрізняються лише розмірами. Одна призначена для американського ринку, інша, для європейських країн. Силова і логічна частини девайсів однакові. В якості “мозку” компанія обрала Espressif ESP32-DOWD V3, що дозволило працювати в мережах 802.11n/g/n WiFi 4. Bluetooth 4.2/5.x використовується тут лише для першого налаштування девайсу.

Підключаємо NSPanel до електромережі.

Для налаштування та керування пристроєм необхідно завантажити додаток eWeLink, він має бути вже знайомим для власників продукції Sonoff. Якщо у вас ще немає облікового запису, створіть його, або увійдіть до власного аккаунту. eWeLink дозволяє керувати приєднаними пристроями з будь-якої точки світу де є з’єднання з мережею інтернет.

Отже, для додавання NSPanel на телефоні необхідно увімкнути bluetooth, після цього необхідно підключити девайс до електромережі.

При роботі з високою напругою дотримуйтесь правил безпеки!

В програмі eWeLink натисніть в додатку “додати новий девайс”. Пізніше, на екрані ви побачите новий пристрій, виберіть його для додавання. Далі, можливо, необхідно буде ввести облікові дані вашої Wi-Fi мережі. Після під’єднання до мережі NSPanel скоріш за все “попросить” оновити власну мікропрограму. Зробіть це, адже оновлення може містити покращення роботи чи виправлення помилок. Оновлення може зайняти чимало часу.

Силова частина вимикача містить два реле, які здатні витримати струм до 16А. А це значить, що до нього можна підключити два електричних пристрої. Це можуть бути не лише освітлювальні прилади, а й, наприклад, контролер теплої підлоги. Нижче, на зображенні схема підключення вимикача.

Налаштовуємо NSPanel в eWeLink

В додатку eWeLink можна перемкнути одне з реле вимикача в режим термостату, тоді вбудований термодатчик зможе контролювати температуру в приміщенні. Для термостату оберіть режим нагріву або охолодження в залежності від того, який прилад плануєте підключити (нагрівальний чи охолоджувальний). Задайте цільову температуру в приміщенні і девайс вимкне прилад при досягненні заданої температури.

Щоб перейти до екрану термостата на вимикачі свайпніть по його екрану праворуч. Ще один свайп переведе вас до екрану віджетів. Це піктограми, за допомогою яких можна керувати іншими розумними девайсами. Так ви можете керувати розетками чи лампами, а також їхніми групами. Крім того, ви можете створити віджети для завантаження сцени.

Віджети необхідно створювати в додатку eWeLink. Максимальна кількість віджетів – вісім.

Щоб керувати девайсом за допомогою голосових асистентів Google чи Alexa створіть відповідну інтеграцію в додатку eWeLink. Крім того, Sonoff дозволяє керувати вимикачем в локальній мережі, що дає можливість інтеграцій до альтернативних систем управління розумним домом. Увімкніть відповідний пункт в налаштуваннях девайсу.

Підготовка до завантаження ESPHome

На мою думку, розумний девайс є дійсно розумним лише тоді, коли він може працювати незалежно від хмарних сервісів. NSPanel вміє працювати локально, але, на жаль, його віджети не працюють без підключення до мережі. По суті, через локальну мережу ви зможете керувати лише двома реле пристрою.

Як я вже казав вище, логічна частина вимикача – це дисплей Nextion, який підключений до контролера ESP32. Такий тандем дає нам надію на можливість легкого завантаження альтернативної прошивки Esphome. І дійсно, вже існує прошивка tasmota для NSPanel, також кипить робота по створенню компоненти “NSPanel” для Esphome

Давайте подивимось на друковану плату логічного блоку. Щоб зняти його, легко натисніть викруткою на паз в центрі. Не забудьте перед цим вимкнути живлення.

Далі необхідно викрутити два гвинти які тримають захисну пластину. Акуратно зніміть пластину, після цього ви побачите друковану плату з мікросхемою контролера esp32.

Ви можете побачити п’ять контактів в нижньому куті друкованої плати, вони позначені як 3V3, ESP_TX, ESP_RX, GND та IO0. Останній контакт – це “нульовий” пін контролера. Для того, щоб перевести контроллер в режим прошивки треба приєднати його до нульового дроту.

Для прошивки контроллера вам знадобиться перехідник usb2uart (usb – ttl converter). Перш ніж приєднувати його до комп’ютера, необхідно поставити перемичку на напругу 3,3v, це дуже важливо!

За допомогою дротів Dupont під’єднайте контакти перехідника з друкованою платою NSPanel: vcc – 3V3, GND -GND, RX – ESP_TX,TX – ESP_RX. Контакт IO0 на друкованій платі приєднайте до нульового проводу на контактному майданчику (зелений дріт на фото)

Зверніть увагу: якщо контакти дротів Dupont вийдуть за межі контактних отворів на платі, вони будуть торкатись металевої пластини дисплея. А це може призвести до короткого замикання і виходу зі строю як usb-перехідника так і мікросхем NSPanel. Щоб цього уникнути, відєднайте шлейф дисплея та вийміть друковану плату з корпусу.

Завантажуємо ESPHome на NSPanel

Тепер можна сміливо завантажувати прошивку esphome. Приєднайте usb-перехідник до комп’ютера, а в диспетчері пристроїв подивіться який com-порт він отримав. Тепер, в інтерфейсі Esphome можна створити новий вузол. Насправді достатньо буде завантажити порожній код на esp32, а далі працювати зі створеним вузлом через WiFi. Для цього виберіть варіант прошивки підключеного до комп’ютера esp-контролера. Далі, у спливаючому вікні, виберіть com-порт. Завантаження прошивки відбуватиметься декілька хвилин. Важливо щоб контакти в процесі прошивки не відєдналися.

Від’єднайте дроти та зберіть вимикач після закінчення завантаження . Після того, як підключите NSPanel до мережі з вимикачем можна працювати як зі звичайним контролером esp32. Тепер давайте завантажимо підготовлений код.


Після перезавантаження вимикач матиме знайомий інтерфейс. Єдине, хочу попередити, тут ще немає офіційної підтримки термостатів, тому я не додавав його в код. Термостат, як і деякі віджети, можна додати за допомогою json запитів. Який формат повинен мати json можна прочитати тут. А тут ви знайдете ще один варіант коду, вже з деякими віджетами і термостатом. Єдине, вам необхідно буде замінити ID пристроїв на ваші.

Для прикладу роботи віджетів-сцен я додав код, який вимикатиме мелодії на вбудованому в NSPanel бузері (п’єзодинамік). Ви можете додавати і завантажувати будь які власні сцени з HomeAssistant.

Відразу після офіційного виходу компоненти NSPanel для esphome я планую актуалізувати статтю, слідкуйте за оновленнями. Крім того, існує спосіб повністю поміняти інтерфейс на дисплеї і повністю відмовитись від NSPanel Protocol, адже на борту вимикача Nextion Display і ESP32, але то вже тема для іншої статті.