Dimmer за 15$ теперь с Mqtt!

05 октября 2019, 17:56

Чуть меньше года назад у меня появился умный диммер из поднебесной. Я его закинул  в Homekit через HomeBridge, и худо-бедно он работал, до момента выхода IOS 13. После этого диммер превратился не то что в тыкву, а просто в неюзабельную фигню. О том, как это исправить, я расскажу ниже.

Подготовка к прошивке.

ВНИМАНИЕ!!!

Перед тем, как разбирать диммер, отключи его от сети!!!

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

Откручиваем крепежный болт и вынимаем плату из корпуса.


k01-1.jpg

Берем USB/UART конвертер ( у меня CP2102, версия 4.2, как на фото, с win10 x64), паяльник и немного проводов.

Устанавливаем драйвера для работы с CP2102 и паяем все по схеме ниже.

1600x_image.png?1570215168

  • VCC - 3.3v !!!
  • GND - GND - Gpio 0 (GND и Gpio 0 = esp в режиме прошивки)
  • TX - RX
  • RX - TX

Обратите внимание на левый верхний угол - там должна быть перемычка (просто соединяем).

Если вы все сделали правильно, загорится зеленый светодиод.

1600x_image.png?1570217412
1600x_image.png?1570219239

Можно отложить плату и скачать последнюю версию прошивки Tasmota, на данный момент это 6.6.0.14.

Вместе с прошивкой нужно скачать ArduinoIDE и установить ее.

После установки ArduinoIDE, переходим в место ее установки и создаем папку c названием "Portable".

Запускаем Arduino.exe и переходим в настройки.

o01-1.jpg

В строку "Дополнительные ссылки для Менеджера плат" необходимо добавить следующую ссылку:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Закроем Arduno.exe и зайдем в архив с прошивкой Tasmota, и разархивируем его. Потом заходим в папку "Lib", все содержимое которой необходимо выделить и скопировать.

Вернемся в папку, где установлена ArduinoIDE, пройдем по следующему пути:"Porable"-->"sketchbook"-->"libraries".

Сюда вставляем все, что скопировали ранее, выходим. Возвращаемся в папку, где лежит Tasmota, и запускаем Sonoff.ino. Сверху находим вкладку "my_user_config.h", откроем её.

k01-1.jpg

Нам необходимо указать имя вашей Wi-Fi сети и пароль.


k01-2.jpg

Если в школе прогуливали английский, то ищем ниже "Localization" и удаляем два слеша.

Заходим в инструменты.

Сверяясь с картинкой левее, настраиваем вариант прошивки.

  • Плата: "Generic ESP8266 Module"
  • Upload Speed: "11520"
  • Flash Size: "1m (noSPIFFS)"
  • Reset Method: "ck"
  • Порт: в какому порту подключен USB/UART конвертер, как узнать порт рассказал тут.

После того как убедились, что все выбрано верно, нажимаем "Загрузка".

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

1600x_image.png?1570224371

Если загрузка прошла удачно, можно закрыть ArduinoIDE, и отпаять провод от Gpio 0. Перемычку в верхнем левом углу тоже.

Проверяем, появилось ли новое устройство в Wi-Fi сети, с помощью программ или в настройках роутера. Если да, то переходим по IP адресу, где нас встречает интерфейс прошивки Tasmota.

1600x_image.png?1570226181

Переходим в "Конфигурация" --> "Конфигурация модуля"

Выставляем "Тип модуля" Tuya MCU (54)

  • Gpio 0 - кнопка 1
  • Gpio 1 - Tuya TX
  • Gpio 3 - Tuya RX
  • Gpio 14 - led1

Сохраняем, модуль перезагрузится. Нас выкинет на главный экран.

Подключим диммер к mqtt, заходим в "Конфигурация" --> "Конфигурация mqtt" и в поле хост вставляем адрес mqtt сервера. В графе топик пишем: Dimmer

О том, как установить mqtt сервер на ваш компьютер, можно прочитать тут.

На данном этапе можно отпаять все провода и вставить плату в корпус, закрыть и установить диммер в стену.

Можно нажать "Переключить",  если свет включился. Вы прекрасны, но это еще не все. Прошивка все еще думает, что это переключатель, исправим досадное недоразумение. На домашней странице заходим в "Консоль" Тасмоты и вводим следующее:

TuyaMCU 21,2

Диммер перезагрузится, и на нашем мониторе должен появится ползунок. Если ползунок работает и свет включается на заданную яркость, открываем "Консоль" вновь и вводим следующее правило:

Rule1 on Dimmer#State do publish stat/Dimmer/Dimmer %value% endon

Включим данное правило:

Rule1 1

Для чего это нужно? Во время интегрирования данного димера в HomeBridge, с помощью плагина mqttthing, встал вопрос обратной связи. Данное правило получает яркость диммера из топика Stat/Dimmer/RESULT и отдает их в Stat/Dimmer/Dimmer.

Как заставить mqttthing считывать яркость из топика RESULT - я не знаю, поэтому было добавлено данное правило. Коль заговорили про HomeBridge и mqttthing, перейдем к их настройке.

О том, что такое HomeBridge, для чего он нужен, и как его установить, я рассказывал недавно тут. Mqttthing же - лучший плагин для интеграции ваших устройств в HomeBridge, от телевизора до розетки.

Установка Mqttthing

Обладатели плагина HomeBridge Config UI X могут во вкладке Plugins просто ввести "Mqttthing" и установить данный плагин. А те, кто про данный Web интерфейс для HomeBridge не слышал, советую ознакомится с ним и установить компонент через консоль. Подключимся к вашему серверу по SSH и введем в консоль команду для скачивания плагина.

sudo npm install -g homebridge-mqttthing

После установки плагина заходим в Config.json, обладатели веб версии зайдут в один клик, а для остальных необходимо ввести в консоль данную команду:

sudo nano ~/.homebridge/config.json

Скопируем несколько строк для работы диммера и вставим их в аксессуары:

        {
            "accessory": "mqttthing",
            "type": "lightbulb",
            "name": "Лампочки",
            "url": "mqtt://127.0.0.1",
            "username": "admin",
            "password": "admin",
            "caption": "Sprut",
            "topics": {
                "getOn": "stat/Dimmer/POWER",
                "setOn": "cmnd/Dimmer/POWER",
                "getBrightness": "stat/Dimmer/Dimmer",
                "setBrightness": "cmnd/Dimmer/Dimmer"
            },
            "integerValue": "false",
            "onValue": "ON",
            "offValue": "OFF"
        }

  • Name - можете задать любое имя, но siri, по моему опыту, лучше понимает "лампочки".
  • URL - адрес вашего mqtt сервера, у меня mqtt сервер крутится там же, где и HomeBridge, поэтому я поставил 127.0.0.1
  • Username - логин для подключения к mqtt серверу.
  • Password - пароль для подключения к mqtt серверу.
  • getON - топик для получения состояния диммера (ON/OFF).
  • setON - топик для изменения состояния диммера (ON/OFF).
  • getBrightnessтопик для получения яркости диммера (0...100).
  • setBrightness - топик для изменения яркости диммера (0...100).

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

Итог

За 15 вечно зеленых долларов мы получаем сенсорный диммер, с помощью протокола mqtt его можно интегрировать практически в любую систему умного дома - Homekit, Google Home, Яндекс умный дом и т.д.

И скорость работы стала на высоте - практически минимальная задержка. На мой взгляд - это победа.

Ссылки на покупку диммера и USB/UART конвертера можно найти ниже.

Диммер ~ 1000 рублей.

CP2102 ~ 80 рублей.

Отдельную благодарность хочу выразить Антону (@Whilser) за помощь в настройке прошивки Tasmota. Без его знаний данный материал не увидел бы свет.

Демонстрация работы - картинка темновата, в жизни ярче.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Александр Жабунин (OXOTH1K)

    Отличное продолжение серии!

  2. Виктор Гараев (netRunner)

    Не совсем понятно, на что повлиял выход iOS13. Он перестал как диммер работать?

  3. Павел Ник (bj_tracer)
    Павел Ник (bj_tracer) 8 дней назад

    Если прямое управление не требуется, то есть нативная прошивка под хк, где пин шим только указывается. На али есп01с и диммер под шим покупаем и вуаля :)))

    • Vladislav Volchkov (vladislav_volchkov)

      Можно ссылку? Очень бы пригодилось данное устройство

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 7 дней назад

        Ее увы нет... случайно наткнулся на обсуждение в одном из репозиториев на гитхабе.

        Могу дать ссылку на репозиторий диммера. 

        Хотел сегодня запилить статью про это дело, собрал устройство для упаковки в корпус, да наступил на грабли. При чем на прототипе на проводочках все работало 🤣

        1000x_image.jpeg?15703911181000x_image.jpeg?1570391120

        https://github.com/curla92/LED...
        там в принципе все понятно из кода, закидывается эта прошивка через ота - я брал бин-файлы от равенкора, потом при первом подключении прописывал репозиторий диммера. настройка черезе eve - тип платы, пин диммера, пин кнопки-триггера и тп.

К списку статей

Скидки для сообщества

Ноотехника

+375 17 233-25-45
Промокод:
Sprut
Размер скидки:
10%
Действует у всех официальных представителей. Для применение необходимо указать в поле комментария или при звонке менеджеру.

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.