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 или Instagram
Остались вопросы? Мы в Telegram - @Soprut

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

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

  2. Виктор Гараев (netRunner)
    Виктор Гараев (netRunner) 2 месяца назад

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

  3. Павел Ник (bj_tracer)
    Павел Ник (bj_tracer) 2 месяца назад

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

    • Vladislav Volchkov (vladislav_volchkov)
      Vladislav Volchkov (vladislav_volchkov) 2 месяца назад

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

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 2 месяца назад

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

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

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

        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
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit