Блог

Чем я занимался прошлой ночью, или прошивка розетки DoHome

Привет все! Пишу от нечего делать, у меня выключили свет, позвонили в РЕС сказали до вечера не будет, интернета тоже нет (даже мобильного), благо ноут оказался заряжен. Ну вот и проведу время с пользой. Пишу в блог, так как вся информация по памяти, даже зайти не на одну ESP не могу, чтоб точнее посмотреть какую-либо информацию. Также эта статья будет содержать только одну фотографию, случайно сделанную в момент прошивки, как уже говорил, не планировал писать об этом.

Сначала небольшая предистория. Когда-то давно я заказал комплект из двух розеток Wi-Fi, которые якобы добавляются в приложение Дом нативно. Валялись они у меня долго без дела, применения я им так и не нашел, решил отдать знакомому для управления котлом (работало через контактор), вторая розетка управляла светом. Как такового умного дома у него нет, это были единственные аксессуары, которые его вполне устраивали. Так вот буквально вчера звонит он мне и жалуется, что розетка, которая управляла котлом, больше не работает. Точнее, на кнопку реагирует, а с телефона - нет. Повторное сопряжение не проходит, говорю – привози, посмотрю.

Что я только с ней не делал, так у меня ничего и не получилось, при сбросе она создает точку доступа и дальше никуда не двигается. Подключаюсь к ее точке, она пингуется по адресу 192.168.4.1, при этом категорически не хочет открыть веб-страницу. При сопряжении через ее родное приложение DoHome - выдает ошибку.

Время 01.30 ночи. Решил я, значит, ее расковырять и посмотреть, что внутри. А внутри нас ожидает обычная ESP8266, такая точно, как используется в практически любом Sonoff, реле на 16А (на корпусе написано тоже 15, не соврали), преобразователь питания с 220В, кнопка управления и светодиод. Не долго думая, решил подпаяться к плате и прошить ее во что-то человеческое. Благо даже распиновка на плате оказалась подписанной.

Прошивка

Подпаявши четыре проводка к плате, подключив к TTL, я предварительно, на всякий случай, сделал дамп прошивки, не думаю, что он когда-либо мне пригодится, но пусть будет. Во время подключения TTL к ПК нужно за плате розетки, заснуть GPO0 (обозначен на плате) на землю. Далее я задумался, нужно нагуглить GPIO реле, кнопки и светодиода, полез в интернет и буквально через пару минут получил информацию:

Реле: GPIO12;
Кнопка: GPIO4;
Светодиод: GPIO5.

Недолго думая, решил залить ESP_easy, все-таки она мне больше по душе, в отличии от Tasmota. Заливал прошивку, все прошло удачно с первого раза, после прошивки – ребут, появилась точка доступа, подключаемся к ней, пароль configesp. Далее все как обычно рассказывалось уже не один десяток раз на портале Sprut.ai

Настройка

Сразу перейдем к настройкам контроллера MQTT, вводим IP брокера, порт, логин, пароль и ставим галочку Enable.

Далее перейдем к настройкам девайсов. На вкладке Devices добавляем Switch, обзываем его Relay, указываем ему GPIO12, ставим галочку Enable и нажимаем кнопку Submit.

Добавляем второе устройство, также выбираем Switch, называем его Button, GPIO4, выбираем Active Low для правильного алгоритма работы (срабатывать только при нажатии, при отпускании кнопки ничего не происходит), ставим галочку Enable и нажимаем Submit.

Далее нам нужно связать кнопку с реле, для этого необходимо написать правило. Открываем вкладку Advanced, ставим галочку Rules, подтверждаем действие.

В ESP_Easy все действия сохраняются только после подтверждения, нажатием кнопки Submit

Обновляем страницу и видим новую вкладку Rules. Переходим и вставляем правило. Если делали все по скриншотам выше, то и скрипт у вас должен заработать. Опять же, подтверждаем свои действия и пробуем нажимать на кнопку. Реле должно переключатся, это слышно по характерному щелчку, светодиод при этом не загорается (позже поправлю правило).

On Button#State do if [Button#State]=0 gpio,12,0 else gpio,12,1 endif endon

Собираем розетку в корпус, немного суперклея и даже следов вскрытия практически не осталось.

Добавление в HomeBridge

Плагин mqttthing, config будет выглядеть так:

{ "accessory": "mqttthing", "type": "Outlet", "name": "Розетка", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "outlet/DoHome/Relay/Switch", "setOn": "outlet/DoHome/gpio/12" } }

Добавление в Home Assistant

В этом случае, конфиг будет выглядеть так:

- platform: mqtt name: "Outlet" state_topic: "outlet/DoHome/Relay/Switch" command_topic: "outlet/DoHome/gpio/12" payload_on: "1" payload_off: "0" optimistic: false qos: 1 retain: true

Ну а для себя я решил, так как у нового хозяина розетки нет никакого хаба с системой автоматизации, имеется только Apple TV. Есть у меня бесхозный Sonoff Basic, с уже перепиленными дорожками и переделанный под сухой контакт, при этом уберется контактор, чтоб не щелкал громко. Прошью его чем-то: или НАА или Ravencore, пусть пользуется. А розетке нашел уже новое место, будет у меня сетевой фильтр включать и управляться через Sprut.hub

P.S. после прошивки устройство получилось исправить недоразумение, аксессуар розетки в Apple HomeKit до прошивки выглядел как выключатель. Теперь же можно представить это устройство чем угодно.


а ESPHome не понравилась? она бы тоже отлично подошла.

ХА не использую как основную систему, поэтому не ЕСРНоме не очень актуально. но все есть устройства работающие на этой прошивке

"

у меня выключили свет, позвонили в РЕС сказали до вечера не будет, интернета тоже нет (даже мобильного), благо ноут оказался заряжен

"

Как близка эта фраза) Привет из г.Ровеньки.

Спасибо за статью, Дмитрий!

Приветствую всех любителей домашней автоматизации. Прошу вашего содействия.

Дано:

Когда-то давно на али приобрел пару умных выключателей от DoHome с одной релюшкой и esp8285 на борту. Выключатели эти успешно крутились на неизвестной мне прошивке для работы с HomeKit. Суть была проста. Закоротить контакты подписанные как "button", подключиться к своей wi-fi сети путем выбора из списка и ввода пароля в веб морде, добавить устройство в приложении "дом" на яблочном смарте и все. Свет включается, релюшки щелкают, дурачок радуется. Но беда пришла откуда не ждали. Посетило меня желание щелкать релюшками не только лишь у себя дома, а еще и в загородном бунгало. Для чего, собственно, был откопан из закромов родины старенький но живой недобук As@s T101MT и на него водружена Linux Mint. Затем установлен mqtt брокер mosquitto, HomeBridge с плагином mqttthing и вебмордой homebridge-config-ui-x. Один из выключателей успешно прошит на ESP Easy mega. Сделаны настройки из данной статьи (из документации на гитхабе к этим выключателям выяснилось, что от вышеуказанной розетки они отличаются только наличием отсутствия корпуса), а так же добавлено устройство в плагин mqttthing.

Выключатель включается и выключается по кнопке, висящей на GPIO-4. На вкладке Devices в вебморде ESP состояние реле меняется с 1 на 0 и обратно при включении и выключении. Так же реле прекрасно меняет свое состояние по url запросу.

Проблема:

В приложении "Дом" выключатель отображается. Его там даже подергать. Но при этом с физическим выключателем не происходит ничего. Никакой реакции.

Пошагово в общем я все действия приблизительно обрисовал. Подскажите, какой важный пункт я мог пропустить? Исходя из найденных мной инструкций сам я ошибку найти не в силах.

Рулес скорее всего не правильно написан. 

Но в Rules же мы просто связываем реле и кнопку. И эта функция как раз работает прекрасно. По кнопке состояние реле меняется.

Напиши в телеграм. Не очень понимаю в чем проблема 


Вернуться назад

Устройства


ITEAD

Sonoff Basic

(7 отзывов)

Вернуться назад