Полная и достаточно внятная поддержка ESPHome в Home Assistant пришла к нам с обновлением 0.85.
Что же такое ESPHome?
Если коротко, то это инструмент, который позволяет интегрировать в Home Assistant устройства, созданные на базе ESP8266 / ESP32.
Конечно, есть масса других проектов для подобных задач, таких как Tasmota, ESPEasy, WifiIot, ESPUrna, но основное их отличие от ESPHome заключается в том, что все они, для интеграции с любыми системами, используют MQTT, а вот ESPHome разрабатывался специально для Home Assistant и для интеграции используется Native API.
Я ни в коем случае не призываю отказываться от MQTT, но в связке ESPHome Home Assistant он просто не нужен.
Так же, нужно добавить, что еще одним преимуществом является то, что здесь мы имеем для всех задач, в том числе и создании внутренних автоматизаций, всего лишь один конфиг-файл, который использует YAML.
P.S. И в завершение краткого описания хочу сказать, если честно, проникся я этой системой, зацепила она меня. Вот уж действительно, в ней всё по-настоящему «Easy».
Как установить моды на Skyrim Как открыть строку Файлы в Лаунчере!
P.P.S. Статья будет большая, дабы не упустить важные моменты и показать максимум возможностей на старте.
Итак, в данной статье мы рассмотрим следующее:
- Установка ESPHome
- Создание файла конфигурации
- Прошивка платы
- Запуск
- Добавление датчиков
Приступим.
1. Установка ESPHome
Что использовал я?
У меня после переезда Home Assistant на Raspberry 3B остался не у дел Orange Pi LIte с 512 Мб и установленной DietPi на борту.
На этой плате и будем работать с ESPHome.
Следует заметить, что ESPHome может быть установлена на одном устройстве с Home Assistant. Но в моем случае обе системы находятся на разных устройствах.
Так же есть возможность работы системы в случае использования Hass.io .
Для работы системы понадобится предустановленный Python 2.7 ибо система использует platformio.
pip install esphome
Надеюсь во время установки ошибок не возникло. Переходим к следующему этапу.
2. Создание файла конфигурации
В ESPHome есть 2 варианта создания основного файла конфигурации:
Создание файла в консолиСоздание файла в Dashboard
Я расскажу про оба эти варианта.
Вариант первый. Создаем файл в консоли командой:
esphome test.yaml wizard
Где, test.yaml, это имя файла вашего проекта
Далее отвечаем на вопросы дружественного мастера установки:
Придумываем и указываем имя нашего проекта.Например, Test. Пишем с маленькой буквы.
Теперь нужно выбрать и ввести тип нашей платформы. Я буду использовать ESP-01 с объемом памяти 1 Мб, по этому выбираю ESP8266.
Не работает файлы в Launcher Skyrim
Далее выбираем тип платы. У меня esp01_1m.
Теперь вводим имя нашей точки доступа, к которой будет подключаться наша плата. Обратите внимание: и плата которую мы конфигурируем и сервер на котором сейчас создаем файл конфигурации должны находиться в одной сети.
Вводим пароль для указанной выше точки доступа.
Вводим пароль для последующего обновления прошивки по воздуху.
Итак, мы создали файл основной конфигурации.Теперь нужно его залить в плату.Сделаем это.
3. ПРОШИВКА ПЛАТЫ
Перед прошивкой подключаем TTL-конвертер к серверу, а плату к конвертеру.
Не забываем перевести плату в режим прошивки — замыкаем GPIO-0 на землю и подаем питание.
Прошивка устройства осуществляется командой:
esphome test.yaml run
После запуска скачиваются недостающие библиотеки и компилируется проект. Это займет какое-то время.
Потом система пытается залить скомпилированный файл в нашу плату.
Далее нам нужно выбрать, через что мы будем шить нашу плату: через TTL-конвертер или через ОТА.Первая прошивка должна заливаться только через TTL-конвертер.
Вот так выглядит заливка конфигурационного файла.
Далее, перезагружаем плату и по идее мы должны увидеть лог старта нашей платы.
На этом месте я прервусь, дабы перейти ко второму варианту создания конфигурационного файла.
Вариант второй. Создаем файл в Dashboard.
Для работы в Dashboard нам сначала нужно ее установить.
Сделаем это командой:
pip2 install tornado esptool
И запустим командой:
esphome config/ dashboard
После этого в браузере перейдем по адресу:
Где, «localhost», это адрес сервера, на котором мы работаем с ESPHome
В браузере нас встречает вот такая форма:
Нажимаем на » » что бы создать конфиг-файл.
Вводим имя проекта
Выбираем тип нашей платы
Вводим логин и пароль WiFi
В завершение видим сообщение, что у нас всё хорошо и мы готовы к прошивке устройства.
В выпадающем списке справа выбираем, через что будем шиться. Для первого раза выбираем TTL-конвертер
Итак, мы готовы шиться.
Но перед этим пару слов о кнопочках проекта:
UPLOAD — запускает процесс прошивки по выбранному интерфейсуEDIT — позволяет редактировать конфиг-файлSHOW LOGS — показывает лог работающего устройстваVALIDATE — проверяет на ошибки конфиг-файл после изменения.
Переводим плату в режим прошивки — замыкаем GPIO-0 на землю и подаем питание.
Жмем VALIDATE и если ошибок нет, жмем UPLOAD.
Все, что происходит далее, ничем не отличается от прошивки через консоль.
4. Запуск
После прошивки видим, что наш проект онлайн — это значит, что дальше мы можем прошивать устройство по ОТА.
Можем нажать SHOW LOGS и посмотреть, что там пишет наше устройство
После успешного старта проекта, пусть даже с пустой конфигурацией предлагаю заглянуть в Home Assistant.
Заходим в Настройки/Интеграции/Создать новую интеграцию и напротив строки ESPHome нажимаем НАСТРОИТЬ.
Вводим адрес платы. Можно посмотреть в логе
Вводим пароль, который мы указывали при создании конфиг-файла
Видим пока что, вот такую картину. А чего мы хотели, мы же еще не добавили ни одного датчика.
5. Добавление датчиков
Теперь откроем конфиг-файл и добавим веб-сервер и какие-нибудь внутренние датчики.
В Dashboard нажмем на EDIT.
web_server: port: 80
Добавляем датчик, который будет нам показывать статус подключения нашего устройства к сети
binary_sensor: — platform: status name: «Test»
Добавляем датчик, который будет нам показывать время работы устройства в сети.
sensor: — platform: uptime name: Test Uptime Sensor
Целиком конфиг-файл выглядит следующим образом:
esphome: name: test platform: ESP8266 board: esp01_1m wifi: ssid: ‘**********’ password: ‘********’ # Enable logging logger: # Enable Home Assistant API api: password: ‘*******’ ota: password: ‘*******’ web_server: port: 80 binary_sensor: — platform: status name: «Test» sensor: — platform: uptime name: Test Uptime Sensor
Сохраняем и нажимаем VALIDATE
Если ошибок нет, жмем UPLOAD для загрузки проекта в устройство.
После загрузки, система пытается подключиться к устройству и если подключение есть, то сразу же выводится в лог всевозможная информация, в том числе и статус подключения к Home Assistant.
Проверим, что там у нас в Home Assistant.
Теперь посмотрим на веб-сервер.
Для этого в браузере перейдем по адресу, который получило наше устройство.
Теперь можно добавлять в конфиг-файл различные сенсоры, бинарные сенсоры, Light-компоненты, свитчи, автоматизации и прочие фишечки.
Вот собственно и всё, что я хотел рассказать в первой части. Этого пожалуй достаточно для старта.
Во второй части я планирую рассказать уже о более конкретной задаче, которую я хочу реализовать на устройстве Sonoff Basic.
Ну и в завершение.
Если вдруг вы хотите перейти с уже существующего устройства в котором залита Tasmota
или ESPEasy или ESPurna, то создаете конфиг-файл, как описано выше, только не жмете UPLOAD, а нажимаете на три точки, справа от имени проекта. Затем на кнопку COMPILE.
После того, как скомпилируется ваш конфиг-файл вы можете скачать его и подсунуть для обновления прошивки вашего устройства в настройках той системы, которая сейчас установлена.
Ну и в завершение 2.
Если у вас возникли проблемы еще на первом этапе заливки основного конфиг-файла в устройство и проблемы эти связаны с Linux-системами, то можно скомпилировать файл и залить его из Windows программой esphomeflasher
В программе выбираете com-порт, к которому подключен TTL-конвертер, выбираете скомпилированный файл и жмете кнопку FLASH ESP
После удачной прошивки, устройство видится в Dashboard и с ним можно уже работать по ОТА.
Ну и в завершение 3. Бонус
Для автоматического запуска Dashboard, можно создать сервис в SystemD, например:
[Unit] Description=Dashboard After=network-online.target [Service] Type=simple User=%i ExecStart=/root/config esphome dashboard [Install] WantedBy=multi-user.target
Или добавить строку в rc.local
/usr/local/bin/esphome /root/config/ dashboard
Важный момент — обращайте внимание на пути, указанные в коде. Вы должны указать свои пути расположения ESPHome.
Вот теперь точно — всё!
Всем спасибо, кто осилил текст и дочитал до конца!
P.S. Статья обновлена 8.04.19 по причине критичных изменений в самом проекте ESPHome.
Изменения коснулись смены имени проекта. Раньше было ESPHomeLib, а теперь просто ESPHome.
Соответственно изменились основные команды и пути расположения файлов.
Источник: sprut.ai
Дружимся с ESP
Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее — Wi-Fi и пины для подключения периферии.
В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.
Несколько представленных в статье модулей (ESP-01, ESP-07, ESP-12E, ESP-12F) и плат (Goouuu Mini-S1, WeMos D1 mini и NodeMCU V2) базируются на контроллере ESP8266, использование которого позволяет простым и дешевым способом добавить в своё устройство беспроводную связь через Wi-Fi.
Так выглядит модельный ряд модулей на базе чипа ESP8266.
Последняя плата из тех, о которых я расскажу (ESP32 WROOM DevKit v1), построена на контроллере семейства ESP32 — более продвинутой по своим возможностям версии ESP8266.
Все представленные модели можно программировать и загружать прошивки через Arduino IDE точно так же, как при работе с Arduino.
Настройка среды программирования Arduino IDE
По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.
1) Открываем среду программирования Arduino IDE.
http://arduino.esp8266.com/stable/package_esp8266com_index.json, https://dl.espressif.com/dl/package_esp32_index.json
4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).
Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).
6) Надпись INSTALLED сообщает, что дополнения успешно установлены.
7) Аналогичным образом устанавливаем дополнение для ESP32.
8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.
9) Для подключения плат к платформе Интернета вещей используем библиотеку EspMQTTClient. Чтобы ее установить, в пункте меню Tools (Инструменты) выбираем Manage Libraries (Управлять библиотеками). Находим и устанавливаем библиотеку EspMQTTClient. Может появиться сообщение об установке дополнительных библиотек. Выбираем “Install all”.
Примечание — Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.
Код прошивки
Для прошивки всех используемых ниже модулей используем один и тот же код.
- Установка Wi-Fi соединения
- Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT
- Отправка рандомных значений по температуре («base/state/temperature») и влажности («base/state/humidity») каждые 5 секунд (PUB_DELAY)
- Получение сообщений о переключении света («base/relay/led1»)
#include «Arduino.h» #include «EspMQTTClient.h» /* https://github.com/plapointe6/EspMQTTClient */ /* https://github.com/knolleary/pubsubclient */ #define PUB_DELAY (5 * 1000) /* 5 seconds */ EspMQTTClient client( «», «», «dev.rightech.io», «» ); void setup() < Serial.begin(9600); >void onConnectionEstablished() < client.subscribe(«base/relay/led1», [] (const String Serial.println(payload); >); > long last = 0; void publishTemperature() < long now = millis(); if (client.isConnected() (now — last >PUB_DELAY)) < client.publish(«base/state/temperature», String(random(20, 30))); client.publish(«base/state/humidity», String(random(40, 90))); last = now; >> void loop()
Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка .
Прим. — Можно подключаться и к одному и тому же объекту, тогда можно использовать один и тот же код для прошивки всех плат без изменений, однако следите, чтобы в таком случае платы не подключались к одному и тому же объекту одновременно, иначе случится коллизия.
Модули на базе ESP8266
Для работы с модулями на базе ESP8266 есть два варианта:
- Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);
- Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).
В статье будем рассматривать второй вариант — прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:
- Через плату Arduino;
- Через USB-Serial адаптер.
Рассмотрим второй вариант — использовать адаптер на базе чипа CP2102 (например, такой https://www.chipdip.ru/product/cp2102-usb-uart-board-type-a?frommarket=https%3A%2F%2Fmarket.yandex.ru%2Fsearch%3Frs%3DeJwzSvKS4xKzLI
Изменения v2.4
— Добавлен раздел: Объединение двух и более ESP с помощью TES5Edit;
Изменения v2.3
— Дописан раздел 2: Добавлена регистрация BSA в Skirim.ini;
Изменения v2.2
— Добавлен раздел: Конвертируем ESP в ESM и обратно;
Изменения v2.1
— Добавлен раздел: Поиск необходимых текстур DDS используя NIF файлы;
— В архив добавлена программа: NifSkope;
Изменения v2.0
— Исправлены ошибки в 6 разделе;
— Добавлен раздел по изменению веса, стоимости и базового урона оружия;
— В архив добавлены утилиты: TES5Edit, OpenSky, BSAopt, BSA_Browser;
Изменения v1.1
— Дописал инструкцию по распаковке BSA;
Важно.
Я не модмейкер, не разработчик Skyrim и не истина в последней инстанции.
Возможно существуют ситуации когда не стоит паковать все ресурсы в BSA.
Всегда что то может пойти не так, так что сохраняйте исходную копию мода.
Все действия Вы выполняете на свой страх и риск, я за это ответственности не несу.
Мой девиз: «Твори, Выдумывай, Пробуй. «
Базовая информация об установке программы и создании плагинов
Первые вопросы, коими задаются новоиспечённые пользователи: где взять, как поставить, что это за зверь, где, как и что двигать, и делать? Кошмар. Вот какими мыслями обычно забита голова новичка и именно от них мы будем избавляться в первую очередь.
Итак, начнём с поиска и установки ККита.
Установка
Зайдите в ваш Steam аккаунт, затем найдите вкладку View (Вид), а в ней Tools (Инструменты):
В открывшемся списке всевозможных утилит ищем Creation Kit и нажимаем по строчке правой кнопкой мыши и в появившемся списке выбираем Install Game…
После установки редактора, запустить его мы сможем либо при помощи стима: TOOLS/Creation Kit и двойной клик по строке (то есть через тоже место где мы его и устанавливали), либо через C:Program FilesSteamsteamappscommonskyrimCreationKit.exe, но работать автономно в КК без Стима не получится, ибо программа привязана к стим аккаунту.
ESM Open (N+O или клик по значку папки)
В данном примере мы рассмотрим способ изменения показателя брони у кирасы (у бот перчаток и т.п. все по аналогии)
5.1 Открываем вкладку Armors
5.2 Кликаем по строке Chests
Открывается окошко со списком кирас используемых в моде:
В данной модификации 2 полностью идентичные кирасы: обычная и кольчужная, что бы было с чем сравнивать отредактируем показатель брони только 1ой, кольчужной.
6. Для этого кликаем 2 раза по строке DynastyChainCuirass и видим окно с параметрами брони:
В данном окне видим что:
Name — название брони в игре
Rating — показатель брони, в данном случае он равен 4600 — для моего персонажа со всеми перками и 100лвл он в игре при таком рейтинге показатель брони равен 65:
Value — стоимость брони
Armor type — тип брони (легкая/тяжелая/обычная)
Body parts — в какой части тела относится (тело, голова, щит и т.д.)
Давайте изменим рейтинг брони с 4600 на 46000 (увеличим в 10 раз)
7. Для этого в поле Rating вместо значения 4600 впишем 46000:
Теперь нам необходимо что бы изменения вступили в силу, для этого переходим к следующему пункту.
8. Жмем кнопку Apply затем Save, окошко автоматически закроется.
Видим что значение поля Rating изменилось, значит все сделали правильно.
9. Сохраняем изменения. Для этого жмем File—>Save (или ctrl + s или на иконку дискеты)
Вот и все, запускаем игру и смотрим на показатель брони:
Как видим броня стала 644, вместо 65. Все получилось.
Я не знаю точной и правильной формулы по которой расчитывается показатель брони из рейтинга, но путем несложных вычислений:
для стандартного рейтинга 4600 броня была 65 и если 4600/65=
после изменения 46000/644=
Можно сделать вывод что показатель брони предмета в игре равен примерно Rating/70 — но это лишь логика, не более.
Создание плагина
Как создать плагин ( esp ) без использования редактора Creation Kit
Автор материала: Demolir
Собственно,на поиски самого решения я потратил довольно много времени и вот случайно на форуме сайта bethsoft.com наткнулся на туториал «Making New Smithing Recipes (pre-CK) without the Creation Kit«. Так же, пользуясь случаем, хочу выразить благодарность bussareas за неоценимую помощь в разрешении этого вопроса.
В этом материале я опишу суть данного туториала вкратце, но для интересующихся подробностями вот ссылка: forums.bethsoft.com/index.php?/topic/1286593-tutorial-making-new-smithing-recipes-pre-ck/
Внимание! Оказывается уже есть полностью переведенная эта же статья. Ознакомиться можно здесь rumor.ru/wiki/Skyrim_CK:Руководство_по_созданию_..
С чего начать!
Создаем заготовку esp
— трехмерное пространство (или что-то вроде этого) ( Unknown ). Рекомендуется ставить значение 2048.
Таким же образом вы можете добавить в игру абсолютно любой предмет с самыми разными параметрами и избрать разные способы получения. Если идея покупки вас не прельщает, добавьте предмет в любой иной контейнер, или можно сделать так, чтобы он появлялся, к примеру, в трупе дракона.
Тестирование.
Ну что же, осталось только подключить esp и протестировать в игре:
Источник: boochi.ru