Авторизация
Зарегистрироваться

Универсальный IR - WiFi шлюз (пульт), клон Gocomma R9 (разборка и перепрошивка на Tasmota)


Предлагаю почитать и посмотреть картинки в обзоре универсального ИК пульта дистанционного управления (далее — шлюз).
Это обзор-приквел, написан по следам другого обзора аналогичного аппарата Gocomma R9 от valendar.
Куплено за свои кровные $7,5 для интеграции в Homeassistant, аппарат после распаковки был незамедлительно вскрыт, обруган (см в тексте) и перепрошит на Tasmota версии ircustom-8.1.0.
В обзоре не рассматривается родное ПО.


ТТХ

Жирным выделил отличия от Gocomma R9.
Инфракрасный пульт дистанционного управления с функцией обучения.
Расстояние: до 10 метров, зона срабатывания — верхняя полусфера.
Частота модуляции ИК: 38КГц.
WiFi: 2,4 ГГц 802.11b/g/n.
Название приложения: Tuya Smart Life, есть для iOS 8 и выше, есть для Android 4.0 и выше.
Поддерживается голосовое управление через Siri, Alexa и Google Home.
Габариты: диаметр 67мм, высота 19 мм (на 10мм тоньше)
Вес продукта: примерно 50-60 грамм, утяжелители в днище отсутствуют.

Упаковка

Помятая коробка, в ней шлюз в тонком пакете, чуть ниже 2х проводной метровый шнур microUSB для питания и инструкция.


Корпус шлюза напоминает глянцевый приплюснутый пончик.
Верхняя часть пластик прозрачный в ИК диапазоне, нижняя — матовый пластик с противоскользящей вставкой из резины.
В этой модели шнур подключается с торца корпуса, напротив гнезда резиновая вставка отформована в толкатель кнопки сброса/сопряжения.


Корпус на защелках, внутри на плате «ромашка» из 7 инфракрасных светодиодов и модуль ИК-приемника.


На нижней стороне платы распаяны: модуль TYWE3S на базе ESP8266 с 2Мб SPI flash, импульсный DC/DC преобразователь 5->3.3 вольт (U1), по входу установлен «многоразовый» предохранитель (PTC) и супрессор (TVS), N-канальный MOSFET управления диодами (N1). Ну и обвязка по мелочи.


В целом схемотехника мне понравилась, в предыдущей модели все было проще.
Сравните с фото valendar


Ну и как все заметили — нигде нет никаких пятачков и гребенок с надписями 3.3-TX-RX-GND — за это и «спасибо».
Гуглим даташит на TYWE3S и смотрим нужную распиновку.


Попутно нужно вызвонить на какие GPIO заведены: кнопка, светодиод статуса, затвор полевика (IR-OUT) и вход приемника (IR-IN).
Оказалось тут все стандартно, никаких изменений.

Если кому интересно, светодиоды собраны в 3 группы: две по три штуки последовательно E1+E5+E6 и Е2+Е3+Е4 с токоограничивающими резисторами R5=R7=10Ом, и один диод Е7 включен через резистор R10=47Ом.

Любители повозиться могут перепрошить шлюз вообще не вскрывая, через Tuya-convert. Но мне нравится запах канифоли, да и по шнуру проще, кошернее и быстрее.
Паяем хвост 3.3-TX-RX-GND не забывая про GPIO0 (который при прошивке нужно кратковременно притянуть к GND).


На конец хвоста паяем гребенку под косичку USB-TTL конвертера и укладываем все обратно в корпус.


Шился через Flash Download Tool v3.6.7, предварительно сняв дамп утилиткой ReadFlash_ESP82XX
И вот здесь пришлось доставать бубен.
Ибо blank и сама прошивка заливалась без проблем, стартовала в режиме точки доступа и давала внести базовые настройки моей Wifi сети, после перезагрузки подключалась к точке доступа получала IP но не пинговалась по нему и не показывала свою вебморду. Все заработало только после ручной установки параметров и повторной прошивки.


После успешной загрузки устанавливаем тип модуля YTF IR Bridge


В разделе template аналогично (проверяем привязки GPIO)


И последним аккордом в console даем команду включения MQTT Discovery (иначе устройство не подхватит Homeassistant).
SetOption19 1


Дополнение

В последние сборки Tasmota включили по умолчанию функцию сброса на заводские настройки (навесили ее на один из GPIO, не суть важно какой).
Возникает такой эффект: если этот GPIO висит в воздухе (как например у ESP-01), то после первичной настройки и подключения к вашей вайфай сети через 1 мунуту произойдет сброс модуля на заводские настройки. ESP поднимет свою точку доступа, как после первичной прошивки Tasmota.
Для отключения этой фичи надо при первом подключении через роутер как можно быстрее зайти на модуль и в консоли выполнить две команды:
Setoption1 1
Setoption13 1 


Интеграция шлюза в систему Homeassistant, чтение пультов

Итак, шлюз прошит и при «обстреливании» пультиком в web интерфейсе (раздел Console) видны какие-то длинные строки. То есть шлюз ловит команды и пытается их раскодировать.
Для интеграции в Homeassistant (НА) необходимо предварительно настроить подключение шлюза к MQTT брокеру, это делается на вкладке Configure MQTT:

Здесь нужно вбить ip адрес MQTT брокера, номер порта и логин+пароль. Как правило брокер ставят на тот же хост где работает НА, в виде дополнения — docker контейнера Mosquitto broker. Настройки ИК шлюза должны совпадать с его конфигом.
По желанию можно изменить имя топика для ИК шлюза. После сохранения конфигурации и перезапуска в консоли ИК шлюза появится запись о подключении к брокеру:

...
09:18:13.002 MQT: Attempting connection...
09:18:13.028 MQT: Connected
09:18:13.031 MQT: tele/tasmota_2AD214/LWT = Online (retained)
...


Берем пульты от ваших устройств, открываем блокнот (например Notepad++, Excel и тп), заходим на консоль ИК шлюза, жмем кнопку и копируем в блокнот декодированную команду: ту часть JSON-строки которая начинается с {«Protocol.

Например пульт робота-пылесоса iLife50, кнопка „Старт/Стоп“ пульта в JSON выглядит так:
{"Protocol":"NEC","Bits":32,"Data":"0x2AA22DD","DataLSB":"0x405544BB","Repeat":0}


Соответственно в блокноте(Excel) пишем:
iLife 50
Старт/Стоп
{"Protocol":"NEC","Bits":32,"Data":"0x2AA22DD","DataLSB":"0x405544BB","Repeat":0}

На базу
{"Protocol":"NEC","Bits":32,"Data":"0x2AA8877","DataLSB":"0x405511EE","Repeat":0}

Локальная уборка
{"Protocol":"NEC","Bits":32,"Data":"0x2AA7788","DataLSB":"0x4055EE11","Repeat":0}

Полная уборка
{"Protocol":"NEC","Bits":32,"Data":"0x2AA9966","DataLSB":"0x40559966","Repeat":0}


Не нужно полностью копировать все кнопки, для управления хватит „базовых“.

Берем пульт от кондишена, так же жмем базовые кнопки:
Например Старт/Стоп какого-то нонейма выдает две разные команды на запуск и остановку:
Старт
{"Protocol":"COOLIX","Bits":24,"Data":"0xB29F70","DataLSB":"0x4DF90E","Repeat":0,"IRHVAC":{"Vendor":"COOLIX","Model":-1,"Mode":"Cool","Power":"On","Celsius":"On","Temp":22,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}

Стоп
{"Protocol":"COOLIX","Bits":24,"Data":"0xB27BE0","DataLSB":"0x4DDE07","Repeat":0,"IRHVAC":{"Vendor":"COOLIX","Model":-1,"Mode":"Cool","Power":"Off","Celsius":"On","Temp":22,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}


Предлагаю вам самостоятельно понять какой параметр за что здесь отвечает ;)
Пишем в блокнот эти две строки в блок „Кондиционер“.
И так далее…

Создаем виртуальные пульты в Homeassistant
В веб интерфейсе Homeassistant открываем для редактирования или (по желанию) создаем отдельную панель для пультов, на которой будем размещать кнопки. Для примера сделал два пульта: пылесос (4 кнопки) и кондиционер (2 кнопки):

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

Настраиваем кнопку под номером 1


Жмем „+“ и настраиваем кнопку 2 (и так далее если у вас много кнопок).

Подобрать иконки на все устройства можно из этого источника.

Перейти из визуального режима в текстовый можно нажатием на „Текстовый редактор“. При настройке многокнопочного пульта в нем намного удобнее работать.
Код пульта кондиционера в виде текста выглядит так:
type: horizontal-stack
cards:
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        topic: cmnd/tasmota_7F4377/IRsend
        payload: >-
          {"Protocol":"COOLIX","Bits":24,"Data":"0xB29F70","DataLSB":"0x4DF90E","Repeat":0,"IRHVAC":{"Vendor":"COOLIX","Model":-1,"Mode":"Cool","Power":"On","Celsius":"On","Temp":22,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}
      target: {}
    icon: mdi:air-conditioner
    icon_height: 48px
    show_name: true
    name: Старт
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        topic: cmnd/tasmota_7F4377/IRsend
        payload: >-
          {"Protocol":"COOLIX","Bits":24,"Data":"0xB27BE0","DataLSB":"0x4DDE07","Repeat":0,"IRHVAC":{"Vendor":"COOLIX","Model":-1,"Mode":"Cool","Power":"Off","Celsius":"On","Temp":22,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}
      target: {}
    icon: mdi:hvac-off
    icon_height: 48px
    show_name: true
    name: Стоп


Код пульта робота-пылесоса выглядит вот так:
type: horizontal-stack
cards:
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        payload: >-
          {"Protocol":"NEC","Bits":32,"Data":"0x2AA22DD","DataLSB":"0x405544BB","Repeat":0}
        topic: cmnd/tasmota_7F4377/IRsend
      target: {}
    icon: mdi:robot-vacuum
    icon_height: 48px
    show_name: false
    name: Старт-стоп
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        payload: >-
          {"Protocol":"NEC","Bits":32,"Data":"0x2AA8877","DataLSB":"0x405511EE","Repeat":0}
        topic: cmnd/tasmota_7F4377/IRsend
      target: {}
    icon: mdi:home-circle-outline
    icon_height: 48px
    name: На базу
    show_name: false
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        payload: >-
          {"Protocol":"NEC","Bits":32,"Data":"0x2AA7788","DataLSB":"0x4055EE11","Repeat":0}
        topic: cmnd/tasmota_7F4377/IRsend
      target: {}
    icon: mdi:record-circle-outline
    icon_height: 48px
    name: Локально
    show_name: false
  - type: button
    tap_action:
      action: call-service
      service: mqtt.publish
      service_data:
        payload: >-
          {"Protocol":"NEC","Bits":32,"Data":"0x2AA9966","DataLSB":"0x40559966","Repeat":0}
        topic: cmnd/tasmota_7F4377/IRsend
      target: {}
    icon: mdi:aspect-ratio
    icon_height: 48px
    name: Контур
    show_name: false


При копировании не забывайте менять имя топика tasmota_ХХХХХХ на ваш уникальный!

При написании автоматизаций, выполняющих управление какими-либо устройствами по ИК в пункт „Действие“ вписывается аналогичная пара Topic + Payload.
Например: автоматизация отслеживает уход из дома (BLE сканер фиксирует недоступность смартфона или браслета Miband) и через 5 мин отключает все освещение и кондиционер:


На этом все, спасибо за внимание.
Планирую купить +45 Добавить в избранное +28 +51
свернуть развернуть
Комментарии (75)
RSS
+
avatar
0
Самое интересное не рассказали, в прошивке уже добавлены коды кнопок, на сколько полный список? Как с кондиционерами легко подружить?
+
avatar
  • Harwest
  • 22 января 2020, 15:55
+1
в прошивке уже добавлены коды кнопок, на сколько полный список?
В самой прошивке насколько я знаю нет кодов (их же сотни). Выбор конкретного типа пульта происходит в родном приложении. У меня же из homeassistant через wifi по протоколу mqtt будет отдаваться команда для конкретного устройства для конкретного действия.

С кондишенами и другими аппаратами шлюз дружит. Есть режим обучения: сканирование и распознавание родных пультов, для этого там установлен модуль ИК приемника.
Тут главное чтобы совпадали тип модуляции в посылках 38КГц.
+
avatar
0
подскажите тогда пожалуйста, какого типа надо передавать сообщения по мктт, что бы прошивка Тосмата поняла и отправила ик сигнал.
+
avatar
  • Harwest
  • 22 января 2020, 16:47
+1
Сначала надо нагуглить список кодов для конкретного устройства по модели, либо для конкретного пульта.
То есть прям табличку: кнопка(действие) — код кнопки.
Очень много устройств имеют идентичные системы команд.
Например

Посылка кода из консоли из MQTT брокера mosquito (json формат):

mosquitto_pub -q 2 -t cmnd/sonoffIRBridge_1/IRSend -m '{"protocol": "NEC","bits": 32, "data": 0x20DF10EF}'
+
avatar
  • Ohus
  • 22 января 2020, 16:29
+1
Может кто подскажет прeимущества — недостаки данного пульта по сравнению с Xiaomi.
+
avatar
  • Harwest
  • 22 января 2020, 17:39
+1
Если не смотреть на дизайн и цену то по моему мнению — вся разница в родных приложениях. Так что вопрос в функционале: Tuya Smart life vs Mi Home.
И там и там — подгружаемые базы пультов.
+
avatar
0
Этот пульт через Tuya Smartlife можно интегрировать в Алису и Google Home для голосового управления.
Пульт от xiaomi точно не работает с алисой, с гуглом не знаю.
+
avatar
  • sinobi
  • 22 января 2020, 17:46
0
По идее, если срисовать схему-можно такой и самому сваять на esp8266?
+
avatar
  • Harwest
  • 22 января 2020, 17:49
0
Да легко.
Тут был обзор на самоделку с esp, nrf и zigbee модулем, с заказом несущей платы у китайцев.
Но мне проще купить за 500р и перешить.
Кстати в магазине такой пульт от Xiaomi или яндекса стоит в районе 1400руб.
+
avatar
  • sinobi
  • 22 января 2020, 18:09
0
Просто есть еsp, есть IR приемник и светодиоды, а здесь готовое месяц ждать.
+
avatar
  • non7top
  • 23 января 2020, 00:39
0
Для тестирования esp пойдет, но готовое устройство лучше взять из сабжа банально из-за хорошего корпуса.
+
avatar
0
hackaday.io/project/7858-zmote куча примеров такого, причем продают и дий комплекты с алексой и т.д
+
avatar
  • sinobi
  • 22 января 2020, 20:24
0
Я просто к тому, чтоб предположим подключить к приложению без костылей в виде mqtt
+
avatar
+2
Китайское облако — вот это костыли. А mqtt как раз правильный путь. Во-первых всё крутится локально, в доме, независимо от интернета. Во-вторых можно прикрутить любую систему автоматизации: openhab, homeassistant. Да просто linux или windows скриптами управлять. Ну и большой плюс tasmota — продвинутый веб-интерфейс.
+
avatar
  • sinobi
  • 22 января 2020, 18:11
0
А слитый дамп можно прошить в ESP? Как бы дублировать устройство на коленке?
+
avatar
  • Harwest
  • 22 января 2020, 18:17
0
Можно, только он у меня на 1Мб почему то получился. Там будет оригинальный id устройства который мне не нужен.
Завтра могу выложить если надо.
+
avatar
  • sinobi
  • 22 января 2020, 18:32
0
Если не трудно.Просто хотя бы попробовать подключится ли к приложению.
+
avatar
  • Harwest
  • 23 января 2020, 07:21
0
Дамп выложил на google disk
При считывании я тупанул и не поправил в скрипте размер: после ESP8285 остался параметр -s0x100000, то бишь 1Мб.
Глянул winhex — вроде размер оригинальной прошивки меньше 512КБ, пробуй.
+
avatar
  • sinobi
  • 23 января 2020, 18:40
0
Зашил в Nodemcu.Настройки как на скрине флэшера, в терминал сыпалось вот такая тряпка.Но Tuya smart не увидела… Выбрал поиск другого устройства wifi.
+
avatar
  • Harwest
  • 23 января 2020, 19:30
0
Не вижу лог — мелко слишком.
Там циклический ребут?
Gpio13 на 5-7 сек на землю сажал?
+
avatar
  • sinobi
  • 23 января 2020, 20:16
0
Да на землю садил.Но изменений нет.Лог вот в нормальном качестве ссылка
+
avatar
  • Harwest
  • 23 января 2020, 20:18
0
Ошибка 404
А текстом выделить?
DIO режим прошивки не пробовал?
+
avatar
  • sinobi
  • 23 января 2020, 20:59
0
Вот только проверил -скрин открывается.Текстом не выделяется в arduino ide, потому что постоянно в порт сыпется инфа
+
avatar
  • Harwest
  • 24 января 2020, 04:18
0
Все, теперь видно — циклический ребут :(
+
avatar
  • Dvornik
  • 22 января 2020, 22:20
0
Прошить то можно, но смысла нет. Прошивки привязаны к ID процессора и клон с родным приложением работать не будет. Вероятно. Ну если заменить ID и MAC адрес…
+
avatar
  • Harwest
  • 23 января 2020, 04:22
0
Да пусть попробует, это не долго прошить навесить кнопку да приложение запустить.
+
avatar
0
Люди добрые, подскажите, существует ли прибор — «репитер IR»?
Что должен делать — что по IR пришло, то продублировать на выходе также по IR. Смысл — околотелевизионная техника в закрытом шкафу, наружу торчит только хвостик-приёмник сигнала, передач ИК внутри дублирует все принимаемые сигналы на всю технику, которая там.

Я даун. Всё нашёл именно по словам IR repeater, хотя пробовал раньше искать по разным словам, не выходило :)
+
avatar
0
Может кто знает нормальный проект подобного пульта, но без умных домов и прочего. Меня вполне бы устроил скажем вебинтерфейс или приложение на андройд. Спасибо.
+
avatar
  • Harwest
  • 23 января 2020, 09:37
+1
Так в ТТХ указаны оригинальные приложения с вебинтерфейсами.
Есть проект wifi-iot, там есть поддержка пультов с самообучением. Но насколько помню этот модуль активируется платной pro лицензией (100р).
+
avatar
0
Т.е. имея в наличии ESP я могу накатить какую-то прошивку и воспользоваться Tuya Smart Life без чего-то дополнительного?
+
avatar
  • Harwest
  • 23 января 2020, 10:02
+1
Дамп выложил выше, пробуй :)
Если со стороны облачного сервиса Tuya нет привязки по уникальным id самого чипа — то все сработает. Но один раз ;)
По информации в сети уникальный id вшит в самой прошивке.
+
avatar
0
Спасибо.
+
avatar
0
Есть проектор и вт-бокс, которые работают с разных пультов, так есть обучаемый пульт, который подключен к боксу, а на кнопки запрограммировано включение проектора, в общем так и пользуюсь, по очереди все включаю, ладно хоть с одного пульта, так же после включение бокса включаются колонки, но это уже отдельная тема.Такой вопрос: могу ли я считать нужные мне коды этим шлюзом, так, чтобы после нажатия одной кнопки на пульте от отправлял сигналы на проектор и бокс, и на сервер, о том что кнопка нажата? Я правильно понимаю, что шлюз подключается по wifi через роутер к серверу MQTT брокеру и через него же управляется?
+
avatar
  • Harwest
  • 24 января 2020, 04:24
0
Я правильно понимаю, что шлюз подключается по wifi через роутер к серверу MQTT брокеру и через него же управляется?
Да, верно.
В случае с одновременным включением/выключением аппаратуры запускаются серии команд: для каждого устройства.
Пример показать не могу тк есть только телек.
В официальных приложениях тоже есть такая фишка, называется 'сценарии'.
+
avatar
0
Т.е. сканирую кнопку с пульта, далее ее нажимаю и на mqtt приходит кода нажатия? И после прошивки шлюз настраивается через веб-интерфейс или еще как-то, например конфигурация сервера mqtt?
+
avatar
  • Harwest
  • 24 января 2020, 17:03
0
сканирую кнопку с пульта, далее ее нажимаю и на mqtt приходит кода нажатия?
Врать не буду тк сам не пробовал.
По идее да, так и должно быть — esp выступает декодером ИК посылок выдавая hex коды нажатой кнопки.
Потом эти коды используются для автоматизации в Homeassistant, пересылаясь обратно на шлюз.

после прошивки шлюз настраивается через веб-интерфейс или еще как-то, например конфигурация сервера mqtt?
Да. Сразу после прошивки на Tasmota коробочка поднимает свою точку доступа 'tasmota-хххх' с веб страницей по адресу 192.168.4.1
Там настраиваются 1 или 2 подключения к домашним wifi сетям, после перезагрузки надо зайти на ip который выдал шлюзу домашний роутер, и там уже будут доступны все разделы настроек (их больше десятка).
+
avatar
0
Спасибо за ответы, заказал, буду пробовать настроить работу именно по такому сценарию. Пока что для себя самую большую сложность вижу в прошивке, а вы какой конвертер USB-TTL использовали, такой подойдет? aliexpress.com/item/32694152202.html
+
avatar
  • Harwest
  • 24 января 2020, 17:43
+1
Этот пойдет, есть подобный.
Питание 3,3в он выдает.
+
avatar
  • Sur_L
  • 22 июня 2020, 22:34
0
Моя история. Прибыла такая шайба, попалась нерабочая — не стартует родная прошивка, устройство подвешено в непонятном состоянии, горят все леды, на кнопку не реагирует.
Подпаял UART-USB от FTDI — программы не видят подключение, Но! при подключении этого адаптера и ресета — стартует родная прошивка, шайба в строю. Замкнул RX модуля на питание через 5КОм, работает.
Ладно, отпаял экран модуля, достал программатор (RT809F) и не выпаивая флеш-чип (25Q16, 2Mb) прищепкой считываю родную прошивку и заливаю тасмота-ir. Работает.

Спасибо за статью и комменты.
+
avatar
0
25Q16
В особо ответственных местах меняю на оригинальный Winbond, благо от роутеров после модернизаций остаются 4Mb чипы.
+
avatar
0
А есть обзор на ксяоми?
https://aliexpress.ru/item/item/4000303107953.html
из обзора 650, хяоми 850, и что сильно важнее — без «признака ширпотреба» — глянца. Или это тот самый «новый», который не умеет в кондеи? Как искать тогда которые умеют?
ещё есть https://aliexpress.ru/item/item/4000348313259.html, тут вообще 400р, но чуть отличается.
и даже такое https://aliexpress.ru/item/item/4000089221603.html, тут вообще 260, и кондеи заявлены в описании… В картинках — рулится через tuya app
+
avatar
0
из обзора 650, хяоми 850
Это новый, 2019.
400р
260
Доставка и рейтинг продавцов все убивает.
Два последних лота цена для Рф, но нет доставки из Рф в Рф
о_О
+
avatar
0
Да, глянул сейчас цену доставки за 260 который…
Доставка: 5 836,87 руб.
В Russian Federation через Seller's Shipping Method — RU
Поржал.
+
avatar
  • Sur_L
  • 24 июня 2020, 21:41
0
Что при таких настройках делает кнопка и как выключить синий светодиод, а лучше чтоб он отмаргивал, когда шайба принимает сигнал, но не горел постоянно?
+
avatar
0
Синий светодиод показывает статус вайфай соединения с точкой доступа.
Насчёт кнопки точно не уверен, наверное долгое нажатие вызывает сброс. Не пользовался ей.
+
avatar
0
А какой прошивкой в начале шили?
Или сразу tasmota-ircustom?
+
avatar
+1
Сразу тасмоту.
+
avatar
0
Всем привет. Пришел сегодня такой (пульт). Проблемы с подключением. В режиме AP находит только, если вплотную к телефону приставить. Вопрос такой. Если прошить Тасмоту, яндекс и туя будут видеть его? Или иожно про это забыть и использовать только типа с MQTT?
+
avatar
  • Harwest
  • 03 ноября 2020, 09:38
0
В режиме AP находит только, если вплотную к телефону приставить
Проблема с файфай модулем rvr/
Перепрошить можно, с полным стиранием флешки, хуже не будет.
+
avatar
  • PeterSV
  • 24 января 2021, 22:34
0
Вечер добрый.
А можно чуть подробнее про прошивку.
Начал что попроще — Тасмотизер — получил тоже поведение, что у вас в статье.
Скачал flash_download_tool_v3.8.5, и вот с ней не совсем понял, удалась прошивка или нет.
Зеленая полоска доходит до конца — и тишина.
CONNECT BAUD: 115200
============
.Uploading stub...
Running stub...
Stub running...
Changing baud rate to 1152000
Changed.
-----------------------
crc_efuse_4bit: 0
crc_calc_4bit: 12
48bit mac

 is stub and send flash finish

Если можно — то по шагам, как и что…
И где кстати blank брать?
И еще на попытку эрейза — ругалось
+
avatar
  • Harwest
  • 24 января 2021, 22:42
0
В режим прошивки правильно входит?
DIO выбран?
Бланк сейчас не нужен вообщем то, кнопка стирания добавлена.
И еще у тасмоты в релизах от 8.3 кажется добавлена автоматическая перезагрузка и сброс через минуту если gpio 1 висит в воздухе, там надо успеть ввести две команды в консоли.
+
avatar
  • PeterSV
  • 25 января 2021, 08:57
0
Спасибо за отзывчивость.
По итогу получается, что заходит в цикл неполного получения адреса по дхцп. Но перезагрузка роутера помогла, точнее помогает на один раз, следующий — надо снова.
Перевёл на статику, и все ок. Спасибо за статью
+
avatar
  • Harwest
  • 25 января 2021, 09:23
0
Нет, не так.
После прошивки модуль esp запускается в режиме точки доступа, ты к ней подключаешься, конфигуришь настройки своей вайфай точки доступа, сохраняешь настройки.
ESP уходит в перезагрузку получает от роутера IP адрес и становится доступна для дальнейшей настройки.
Но в последние сборки включили по умолчанию функцию сброса на заводские настройки и навесили ее на GPIO1 емнип.
Получается следующее: через минуту после подключения к роутеру таймаут истекает и происходит сброс, модуль опять поднимает в эфире свою точку доступа.
Для отключения этой фичи надо при первом подключении через роутер быстро зайти на модуль и в консоли выполнить две команды:
Setoption1 1
Setoption13 1
+
avatar
  • PeterSV
  • 25 января 2021, 10:29
0
Нет. Не сходится с тем что я видел в логах роутера, шёл бесконечный
DHCPDISCOVER,
DHCPOFFER,
Перегрузка роутера дала возможность его завершить, и дальше все было ок
+
avatar
  • Harwest
  • 25 января 2021, 10:37
0
А, значит это связка с роутером косячила.
+
avatar
0
Уважаемые, есть ли возможность ОТДАВАТЬ команды с IR-пульта? То есть чтобы с пульта запускать сценарий.
+
avatar
0
Что-то я не врубаюсь, как эксплуатировать этот пульт с прошивкой Tasmota.
С родной прошивкой и родным приложением всё понятно — добавляешь новое устройство (телевизор, медиаплеер и т.д.), выбираешь марку и модель, пробуешь, чтобы заработало. Если не работает, то вручную запоминаешь коды родного пульта и назначаешь их на экранные кнопки, изображающие пульт в приложении. Правда, жалко, что нельзя посмотреть и скопировать куда-нибудь эти самые коды.
А с Тасмотой как? Где интерфейс, который «изобразит» пульт с кнопками? Как обучить кнопку, отсутствующую в преднастройках? Неужели всё только через скрипты или REST-запросы? Ведь только у одного «среднестатистического» пульта порядка четырёх десятков кнопок. А если надо настроить два-три устройства (например, телевизор, абонентскую приставку и усилитель)? Не запутаемся во всех этих скриптах, не погрязнем в этой путанице?
+
avatar
  • Harwest
  • 25 августа 2021, 05:20
0
Интерфейс для этого шлюза создается в оболочке умного дома, и загружать полностью все кнопки всех пультов как правило не требуется.
В сети есть готовые базы кодов к пультам устройств, можно использовать их. Но мне проще было считать коды на вкладке Console: направил пульт на шлюз и нажимаю те кнопки которые в последствии будут нужны. Тасмота расшифрует и покажет код кнопки в json. И прямо эту же строку можно использовать как payload для управления.
+
avatar
0
То есть, никакого «интерактива» не будет, я правильно понимаю? Я тут ради интереса перепрошился в «tasmota-ir» и вот, что выяснил: даже в Web-интерфейсе самой Тасмоты вся информация будет только в консоли, где принятые и отправленные коды будут идти вперемешку с прочей служебной информацией, а если мы эти коды хотим где-то еще использовать, то их надо банально переписывать на бумажку или в лучшем случае «копипастить» из консоли куда-то еще. То есть, варианта, когда в главном окне отображается датчик и его значение (как например, датчик температуры), не будет.
Ко всему прочему, при интеграции в Home Assistant (хоть нативной, хоть через MQTT — зависит от параметра SetOption19) никакого «объекта», с которым можно было бы работать, не появится. Весь прием и отправка кодов — только через написанный ручками код в configuration.yaml.
Получается, действительно, что перешитый под Тасмоту пульт можно будет использовать чисто технически, в какой-либо автоматизации, для отработкии двух-трех команд. А про интерактивное управление через пульт можно забыть, ибо практически невозможно создать в Home Assistant'е интерфейс, через который было бы удобно «нажимать кнопки».
Ко всему прочему сюда добавится еще и проблема с задержкой выполнения, ибо сначала вы отправите команду на MQTT-брокер, а потом пульт будет ее оттуда читать и интерпретировать, а на это уходит время.
В-общем, какая-то мутная затея с неясными целями под лозунгом «перешьем в Тасмоту всё, что шевелится имеет ESP-чип».
+
avatar
  • Harwest
  • 25 августа 2021, 08:37
0
Web-интерфейсе самой Тасмоты вся информация будет только в консоли, где принятые и отправленные коды будут идти вперемешку с прочей служебной информацией, а если мы эти коды хотим где-то еще использовать, то их надо банально переписывать на бумажку или в лучшем случае «копипастить» из консоли куда-то еще. То есть, варианта, когда в главном окне отображается датчик и его значение (как например, датчик температуры), не будет.
Да все верно. Точно то же самое происходит в нативных приложениях (Туя и т.д.) — картинку рисует приложение которое выполняется на смартфоне, в ИК-шлюзе кнопочек нет. Интерактивности нигде не будет, так как обратная связь по ИК отсутствует.

практически невозможно создать в Home Assistant'е интерфейс, через который было бы удобно «нажимать кнопки».
Не надо создавать виртуальные дубликаты всех пультов в НА, это не наш метод :)
К примеру для управления ТВ (ресивером, медиаплеером) удобнее использовать голосовое управление или контроллеры типа кубика с базовыми командами (On+Off, Next+Prev, Mute-Pause, Vol+Vol-).

Для управления кондиционером например используется виртуальный переключатель сценариев On-Off-Auto где в автоматизации учитывается ряд условий: открыты ли окна, есть ли кто дома, температура и влажность в помещении, время суток.
Сработка кнопок практически мгновенная, брокер как правило докер-контейнер на том же хосте что и HA. Отправка на ИК шлюз идет сразу пакетом команд:
Код виртуальной кнопки ручного включения
— type: button
tap_action:
action: call-service
service: mqtt.publish
service_data:
topic: cmnd/tasmota_7F4377/IRsend
payload: >-
{«Protocol»:«COOLIX»,«Bits»:24,«Data»:«0xB29F70»,«DataLSB»:«0x4DF90E»,«Repeat»:0,«IRHVAC»:{«Vendor»:«COOLIX»,«Model»:-1,«Mode»:«Cool»,«Power»:«On»,«Celsius»:«On»,«Temp»:22,«FanSpeed»:«Min»,«SwingV»:«Off»,«SwingH»:«Off»,«Quiet»:«Off»,«Turbo»:«Off»,«Econo»:«Off»,«Light»:«Off»,«Filter»:«Off»,«Clean»:«Off»,«Beep»:«Off»,«Sleep»:-1}}
target: {}
icon: mdi:hvac
icon_height: 48px
show_name: true
name: Старт


Писать ручками код в configuration.yaml не требуется, payload скопирован в конструктор для «кнопок».
+
avatar
0
Писать ручками код в configuration.yaml не требуется, payload скопирован в конструктор для «кнопок».
Ну, а какая по сути разница, куда именно писать код — в общий файл configuration.yaml, или же в код кнопки? Все равно же писать ручками — со всеми этими JSON'овскими выкрутасами типа фигурных скобок, двоеточий и прочего.
В-общем, это тот случай, когда мы достаточно мощное и универсальное устройство используем на ноль целых, фиг десятых заложенного в него функционала. Вы же не станете покупать самосвал КамАЗ ради того, чтобы отвезти на дачу кошку, а обратно прихватить пару трехлитровых банок с вареньем.
Согласитесь — зачем покупать относительно дорогой универсальный пульт для реализации двух-трех команд? Не проще ли (и не дешевле ли) купить какой-нибудь ESP01 рублей за 80 и припаять к нему копеечный ИК-передатчик? Засунуть все это в миниатюрную коробочку и повесить рядом с кондиционером. И… вперёд и с песнями.
для управления ТВ (ресивером, медиаплеером) удобнее использовать голосовое управление
Ой, не смешите. Голосовое управление — это только в фильмах про Железного человека. На практике же хоть Алиса, хоть Гугл в 60% процентах тебя не понимают. К тому же я не представляю, с какой громкостью нужно орать команду, чтобы перекричать работающий телевизор или медиаплеер.
+
avatar
  • Harwest
  • 25 августа 2021, 12:03
0
Там не требуется прям «писать» код, самое сложное в фигурных скобках копипастится из одного окна в другое. Да, ESP01 применить можно — это будет тупой передатчик IRBlaster под который надо будет где-то искать коды команд для устройств, проверять на совместимость, делать корпус, блок питания.
А для ресивера, пылесоса, вентилятора — отдельные ESP01?

Две такие шайбы в 2х комнатах, благодаря круговой диаграмме «простреливают» всю площадь, можно перекрывать прямую видимость своей тушкой — пробьет через потолок.
Голосовое управление у меня активировано но выключено — кубиками управлять намного проще и интуитивнее, не требуется онлайн.
+
avatar
0
ESP01 применить можно — это будет тупой передатчик IRBlaster под который надо будет где-то искать коды команд для устройств
А какая разница, какое «железо» прошивать Тасмотой — будь то готовый ИК-пульт, какое-нибудь Sonoff-реле, или же ESP01? ESP01 можно точно так же прошить прошивкой в модификации «Tasmota-IR» — и у вас будет всё то же самое, что и с готовым пультом. Ну, придется припаять ИК-приемник и ИК-передатчик, стоящие смешные деньги.
Например, сейчас у меня на столе лежит NodeMCU с воткнутым ИК-приемником VS1838B — причём, без всяких дополнительных резисторов, конденсаторов и прочего — просто масса на массу, VCC на 3.3 вольта, сигнал на GPIO0. И прошивка стоит «Tasmota-IR». И я точно так же могу считывать и видеть в консоли принятые коды пультов.
А для ресивера, пылесоса, вентилятора — отдельные ESP01? Две такие шайбы в 2х комнатах, благодаря круговой диаграмме «простреливают» всю площадь,
Стоп-стоп-стоп! Вы же не далее, как вчера говорили, что пульт, перешитый «Тасмотой», не надо использовать для универсального управления. Что, типа, «Тасмота» нужна лишь для отработки буквально нескольких команд типа «включить-выключить». А теперь получается, что у вас там «зашиты» пульты и от ресивера, и от пылесоса, и от вентилятора. И уж точно вы по отношению к ресиверу не ораничиваетесь командами «вкл-выкл» — наверняка и громкость регулируете, и звуковые сцены меняете, и еще что-нибудь. И если прикинуть, то список команд, которые нужно хранить в Хоум-Ассистенте для того, чтобы в нужный момент отправить их на MQTT, набирается весьма приличный. :-)
P.S. На самом деле проблема решалась бы, если бы существовала полноценная интеграция Tuya для Home Assistant'а. Тогда не пришлось бы перепрошивать пульт на «Тасмоту» и рукоблудничать со скриптами и копипастами. Но к великому сожалению, на текущий момент интеграция Tuya поддерживает практически все виды устройств, кроме… ИК-пультов. Облом-с!
+
avatar
  • Harwest
  • 25 августа 2021, 18:44
0
По поводу сборки аналога: все верно можно собрать аналог из кучи компонентов. И я делал такие бластеры еще на RS232. Но 7,5 долларов за законченное решение имхо нормально, у меня две шайбы в 2х комнатах.

По поводу пультов читаем внимательно: я писал не надо создавать дашборды с полными клонами реальных пультов. Выбрал самые ходовые и забиндил на кнопки и контроллер. И да — у меня пульт пылесоса имеет 5 кнопок, кондишен две, всего пультов пять (пока), портировано команд с них от 2 до 9.

Возможно интеграция туи не поддерживает пульты так как надо где-то локально держать туеву хучу кодов на тысячи вендоров и десятки протоколов обмена. Да еще и обновлять эту базу.
+
avatar
0
Ладно, больше спорить не буду. В-общем, я-таки прошил свой HIPER HI-IR2 прошивкой Тасмота.
Но теперь ничего не понимаю, что дальше-то делать.
Ну, тыкаю кнопки на «родном» пульте, в консоли вижу считанные коды. А как эти коды в ХА увидеть? Перелопатил кучу источников — там толком никто ничего не объясняет, примеров применения не дает.
Насколько мне позволяет судить мой слабый разум, чтобы увидеть значение принятого кода в ХА, нужно (ручками) создать сенсор, где будет указано, из какого топика читать.
Но что именно должно быть прописано в YAML-файле?
Не можете дать примерчик, как это реализовано у вас?
Ну и соответственно, второй вопрос — обратная задача. Как публиковать на MQTT коды сигналов, которые будет «испускать» этот девайс? Тоже желательно на примере.
Благодарность моя не будет иметь границ (в разумных пределах).
+
avatar
  • Harwest
  • 27 августа 2021, 09:05
0
Все проще. Ничего читать, смотреть или создавать сенсоры в НА не надо.
Дополнил обзор блоком интеграции с Homeassistant и примерами как собирать коды с пультов и как их применять «в обратную сторону».
+
avatar
0
примерами как собирать коды с пультов и как их применять «в обратную сторону».
Спасибо огромное!!!
Ничего читать, смотреть или создавать сенсоры в НА не надо.
А вот с этим поспорю. Ведь через чтение кодов с оригинальных пультов можно запросто сделать управление какими-то приборами. Особенно, если в хозяйстве имеются ненужные ИК-пульты (например, пульт, оставшийся от сломанного и выброшенного телевизора).
Смысл такой: нажимаем кнопку на пульте. Наш универсальный перепрошитый пульт сохраняет считанный код в MQTT-брокере. Мы его получаем в ХА как значение сенсора, ну а дальше уже запускаем через автоматизацию какое-то действие, основанное на значении этого сенсора — например, включить свет в комнате (при условии, что свет включается через какое-нибудь умное реле типа Sonoff, прошитое всё той же Тасмотой). В итоге мы сможем с ИК-пульта управлять теми устройствами, которые в оригинале вообще не имеют ИК-управления.
P.S. Я вчера ковырялся с этим делом, но у меня никак не получается создать правильный сенсор.
Мой перешитый пульт при получении сигнала создает в топике tele/tasmota_036B3D/RESULT вот такой payload (к примеру):
{
             "IrReceived": {
                    "Protocol":"NEC",
                    "Bits":32,
                    "Data":"0xFDF00F",
                    "DataLSB":"0xBF0FF0",
                     "Repeat":0
                    }
            }

Я создаю в configuration.yaml вот такой сенсор:
sensor:
  - platform: mqtt
    name: "IrReceived"
    state_topic: "tele/tasmota_036B3D/RESULT"
    value_template: "{{ value_json.IrReceived.Data }}"

Иду в «Панель разработчика», выбираю там свой сенсор и получаю:


И всё! Куда дальше копать, я не знаю. Может, подскажете?
+
avatar
  • Harwest
  • 27 августа 2021, 12:19
0
Ведь через чтение кодов с оригинальных пультов можно запросто сделать управление какими-то приборами.
/.../
Смысл такой: нажимаем кнопку на пульте. Наш универсальный перепрошитый пульт сохраняет считанный код в MQTT-брокере. Мы его получаем в ХА как значение сенсора, ну а дальше уже запускаем через автоматизацию какое-то действие, основанное на значении этого сенсора — например, включить свет в комнате (при условии, что свет включается через какое-нибудь умное реле типа Sonoff, прошитое всё той же Тасмотой).
Прорабатывал такую идею, но мне проще оказалось взять два старых планшета, и расставить их в комнатах на «икеевские» подставки. На них homeassistant-клиент который дает полный контроль вплоть до трансляции видео с камер, LMS, контроль загрузка проца и памяти контроллера, статус и уровень заряда батареек датчиков и смартфонов.
В планах дополнительно прилепить на стены zigbee-контроллеры сцен на 12 действий, вот такие


Твой пример с sensor.irreceived смогу «раскурить» не раньше понедельника, т.к. шлюзы дома, а на работе спаять аналог уже не успею.

Но с моей точки зрения есть подводные камни:
1. Придется держать дополнительный пульт (-ы) и запоминать на каких кнопках что забиндено. Стикер на них не наклеить, лепить полоски с текстом над кнопками тоже не очень.
2. Нужно четко ориентировать шлюз глазком к пульту (-ам).
3. Если шлюз не один (2-3-4...), то надо под каждый создавать отдельный сенсор со своими топиками, и проверять их все, плюс следить чтобы зоны приема ИК-шлюзов не перекрывались — иначе будут двойные (тройные) сработки: одно нажатие кнопки пульта вызовет запись нескольких топиков от разных шлюзов.
+
avatar
0
смогу «раскурить» не раньше понедельника
Да не вопрос — подождём.
Я, кстати, и сам продвинулся в этом направлении. Оказывается, ХА читает из MQTT только пэйлоуды с атрибутом «retain». Пришлось в Тасмоту послать команду «ButtonRetain 1» — и всё заработало!
Нужно четко ориентировать шлюз глазком к пульту
У меня прекрасно «на отражёнке» срабатывает. Ну, то есть, пульт надо, конечно, направлять на приемник, но так, приблизительно.
Придется держать дополнительный пульт (-ы) и запоминать на каких кнопках что забиндено.
Ну, вот у меня есть пульт, с которого я медиаплеером управляю (Kodi). Там есть кнопка «Запись», которой я совсем не пользуюсь, ибо ничего записывать не надо. В настройках самого Kodi на эту кнопку повешена «пустышка» — чтобы запись не включалась. Ну а в ХА прописано, что по нажатию этой кнопки выключается свет в комнате. Типа, вечером лёг в кроватку, чтобы кино посмотреть — и прямо с пульта выключил свет и перешёл к просмотру фильма. Пульт всегда под рукой, никуда вставать и тянуться не надо. Опять же, и среди ночи, если, пардон, приспичило по нужде, можно включить свет и т.д.
+
avatar
  • Harwest
  • 27 августа 2021, 14:33
0
ХА читает из MQTT только пэйлоуды с атрибутом «retain». Пришлось в Тасмоту послать команду «ButtonRetain 1» — и всё заработало!
Ну класс )
Теперь ХА забирает все топики с префиксами /tele /stat и тд?

Я пару дней назад впаял ESP12 в свой увлажнитель воздуха Deerma F600 (тут есть обзор на него). И у меня баг с первым опросом датчика наличия воды после включения в сеть: mqtt событие формируется в момент изменения состояния этого датчика. Вот думаю решилось бы разбором /stat
+
avatar
0
Ну класс )
Теперь ХА забирает все топики с префиксами /tele /stat и тд?
Ну, я невеликий специалист в этих вопросах. Методом тыка выяснил :-)
+
avatar
  • kuzzmi
  • 28 августа 2021, 18:08
0
Первый раз прошивал устройство через TTL, огромное спасибо за инструкцию :)

Столкнулся с проблемой — команды не отправляются на кондиционер. IRrecv работает как положено — приёмник читает сигнал с пульта, но IRsend с тем же payload'ом не отправляются:

{"Protocol":"DAIKIN","Bits":280,"Data":"0x11DA2700C50000D711DA270042313CC111DA270000382E00A0000006600000C100003F","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Mode":"Cool","Power":"Off","Celsius":"On","Temp":23,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}


Я с электроникой на «Вы», поэтому пошёл топорным путём и попробовал проследить за IR через камеру и при передаче ничего не зажигается даже, то есть я могу сделать вывод, что IO неправильно выбраны в Tasmota. В то же время я пробовал устанавливать IRsend по очереди в разные GPIO, но результат тот же. До прошивки всё работало.

Любой совет, куда смотреть, будет бесценным.
+
avatar
  • kuzzmi
  • 28 августа 2021, 18:18
0
Попробовал пульт попроще, увидел через камеру, что сигнал передаётся. Осталось понять, почему данные для кондиционера не отправляются…

// АП

Ясно… Как всегда — спросил и сразу нашёл ответ. В итоге проблема оказалась в отправке не тех данных. Для кондиционера, оказалось, что нужно отправлять не через IRsend, а через IRhvac:

mosquitto_pub -h 192.168.8.12 -t cmnd/tasmota_35669D/IRhvac -m '{"Vendor":"DAIKIN","Model":-1,"Mode":"Cool","Power":"Off","Celsius":"On","Temp":23,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}'
+
avatar
  • Harwest
  • 29 августа 2021, 06:46
0
Для кондиционера, оказалось, что нужно отправлять не через IRsend, а через IRhvac:
Интересно… А профиль устройства выбран какой- YTF bridge?
Я кстати обновил через ОТА на прошивку tasmota-ir 9.5, все работает нормально.
+
avatar
  • sir90ha
  • 22 сентября 2021, 02:59
0

У меня чуть другой модуль с фишками:
Ик приемник
Ик излучатель
Rc433
Rc315
Ну и сама есп

И Гребёнка в моей выведена

А также же переключатель непонятный, скорее всего режим usb -uart

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.