Yashalta2

<<< Назад

NodeMCU прошиваем Tasmota и подключаем к MD.

Прошиваем "NodeMCU" и подключаем в "MD" для ночичков от новичка!

Конструктивная критика приветсвуется, т.к. я новичек в этом деле! И более того, думаю, что моя инструкция не являются идеальным решением!

Нам понадобиться NodeMCU в моем случае это "NodeMCU D1 mini".

  1. Скачиваем прошивку
    Идем на сайт https://github.com/arendst/Tasmota там спускаемся до пункта
    Quick Install
    Кликаем по ссылке "Download one of the released binaries from https://github.com/arendst/Tasmota/releases ..."
    и скачиваем либо то, что я указал стрелкой либо то, что я подчеркнул. https://ibb.co/ckfw7tS
    Разницы нет ни какой между "tasmota-RU.bin" и "tasmota.bin" если не считать, что в первом случае у вас будет полностью русифицированный интерфейс.
  2. Скачиваем прогу tasmotizer-1.1a.exe для прошивки "NodeMCU" https://github.com/tasmota/tasmotizer/releases
    Я прошивал на Windows 10. Для Linux и Mac там решения есть при помощи pip3 install...
  3. Прошивка:
    a) Запустив скаченный файл tasmotizer-1.1a.exe у вас откроется окно прогрмаммы
    б) Подключите ваш "NodeMCU" к ноуту по "usb" и в программе "Tasmotizer" укажитее порт к торому подключен ваш "NodeMCU", если нет порта то, нажмите кнопку "Refresh"!
    в) Укажите путь до ранее скаченного файла "tasmota-RU.bin" или как в моем случае "tasmota.bin". Или можно при наличии интернет соединенния в разделе "Select image" установить "точку/галочку" в пунтке "Release X.X.X" на момент написания это был релиз "Release 8.5.0" и в выподающем меню выбрать нужный "tasmota-RU.bin" файл.
    г) Два пункта "Backup original firmware "Сохранить оригинальную прошивку" и "Erase before flashing"Стереть данные перед прошивкой" на Ваше усмотрение!
    Думаю это важно если вы перепрошиваете продукцию в кторой есть "заводская" прошивка которая конектится с серверами в китае, я про "Backup original firmware" "Сохранить оригинальную прошивку". В нашем случае у нас "NodeMCU" пустая и галочка не нужна! А вот в пункте "Erase before flashing" "Стереть данные перед прошивкой" поставьте галочку!
    д) Прошиваем! Жмем кнопку Tasmotize! https://ibb.co/Xy2g9N6

После того как прошили в Вашей WiFi сети появится новая сеть под названием "tasmota + номер" думаю цифры это последние цифры из Mac адреса устройства а может и нет. Это не важно! https://ibb.co/znW7cs0 Подключаетесь к этой сети у Вас должен открыться браузер, а в адресной строке http://192.168.4.1/ введите данные, пароль и логин от своей сети! Таким образом вы даете знать своему устройству "NodeMCU" куда ей подключатся.https://ibb.co/bvycxvr
У меня роутер выдает 2 частоты 2Mhz и 5Mhz поэтому я прописал их обе.

Все, готово!
Ниже я покажу пример как подключить два реле и две кнопки! При нажатии на кнопку №1 будет вкл/откл реле №1 и тоже самое со второй кнопкой. А т.к. в прошивке "Tasmota" вшита функция "MQTT" то, прошивка каждое изменение будет отправлять брокеру "MQTT" в нашем случае на "MD".

Настройка прошивки.

  1. Находим ваше устройство в настройках роутера и узнаем его "IP" адрес. Ну или любыми другими способами определяете "IP" вашей "NodeMCU"!
  2. Вбиваете "IP" адерес в браузере и попадает на прошивку "Tasmota"
  3. Прошивка заточена под БОЛЬШОЕ количество плат/устройств и каждое устройство имеет свое количество пинов и свой список возможной переферии! Поэтому первым делом нужно указать, что мы работаем с "NodeMCU"! Проделайте шаги согласно скрину https://ibb.co/vvHtLSp
    В браузере вбиваете "IP" адрес "NodeMCU" - "Configuration" - "Configure Module" - выбираете из списка "18 Generic" - жмете кнопку "Save".
  4. Теперь после того как мы указали прошивке с какой платой она взаимодействует. Скажем ей что у нас есть два реле которые управляются двумя кнопкаим и скажем где у нас в локальной сети MQTT сервер.
    Снова идем "Configuration" - "Configure Module" и выставляем такие значения https://ibb.co/s5hYKQh и сохраняемся!
    Здес не важно строго следовать моей расстановке пинов! У Вас может быть свое количество релей! Может 8 реле и ни одной кнопки, все управляется с веб. морды или "MD". Здесь вроде важно выбирать последовательность нумерации релей! Rele1, Rele2, Rele3... Что бы не было Rele1, Rele7, Rele5... (Хотя не уверен, отпишитесь если будете эксперементировать. Заранее благодарен!)
    Также указываем настройки для "MQTT" идем "Configuration" - "Configure MQTT" https://ibb.co/SK8Cxrm
    первым пунктом указываем "IP" "MajorDomo"
    и второй пункт не важный! я изменил на свой топик tasmota, по дефолту там указан топик tasmota с 6-ю цифрами от Mac адреса устройства.
    В итоге у Вас получится так https://ibb.co/fnDgpk1
  5. Теперь идем на "MajorDomo". У меня упрорно "MD" не хотел видеть сообщения от Tasmota! На какие только топики я не подписывался, ничего у меня не получалось! В итоге все заработало после того как я подписался на все топики! https://ibb.co/sK8DgZX
  6. А дальше как обычно!
    Я создал Новый "Класс" -ESP3266 в нем "Объект" - Nodemcu - а в объекте создал "свойства" https://ibb.co/8dTWS2c
    И привязался к этому объекту https://ibb.co/48KBMHv

Возможные баги: Все сделали но, MojorDomo не получает сообщения от "Nodemcu"! Я тогда просто убивал процесс и заново запускал его.

$ sudo service mosquitto stop
$ sudo service mosquitto restart

На последок, установим вход на веб. морду по паролю.https://ibb.co/LY2mmZM

PS - Tasmota ОЧЕНЬ жирная прошивка на наличие всяких плюшек! К примеру вы можете в самой прошивке указать, что при достижении такой то температуры отключить реле такое! Либо после того как отключат свет там то, включи здесь и т.д. и т.п. Все это описывается правилами "Rules" более подробно здесь https://tasmota.github.io/docs/Rules/
Tasmota поддерживает БОЛЬШОЕ количество устройств https://templates.blakadder.com/

Пример управления реле с "MD" если установлен пароль на веб. интерфейсе Tasmota.
Подробно здесь https://tasmota.github.io/docs/Commands/#with-web-...

Отключаем
getURL("http://192.168.18.107/cm?user=admin&password=PASWORD&cmnd=Power%20Off");
Включаем
getURL("http://192.168.18.107/cm?user=admin&password=PASWORD&cmnd=Power%20On");

Пример управления реле с "MD" если нет пароля на веб. интерфейсе Tasmota.

Включаем
getURL('http://192.168.18.107/cm?cmnd=Power%20On');
Отключаем
getURL('http://192.168.18.107/cm?cmnd=Power%20Off');

Пример, управление n-го количества реле с "MD" в команде дописываем номер реле"PowerX" которым управляем.

getURL('http://192.168.18.107/cm?cmnd=Power1%20Off');
getURL('http://192.168.18.107/cm?cmnd=Power2%20On');
getURL('http://192.168.18.107/cm?cmnd=Power3%20Off');

Пример получения статуса.

$V = getURL('http://192.168.18.107/cm?cmnd=status%20', 0);
echo $V;

если подключено несколько реле то:
$V = getURL('http://192.168.18.107/cm?cmnd=tele/tasmota/STATE', 0);
echo $V;
где tasmota - это ваш топик указанный в настройках MQTT

Пример управления при помощи терминала или "Bash"

mosquitto_pub -h 192.168.18.101 -t cmnd/tasmota/cmnd/Power -m off
mosquitto_pub -h 192.168.18.101 -t cmnd/tasmota/cmnd/Power -m on

Ссылка на список команд https://tasmota.github.io/docs/Commands/

Пишем свои правила: Более подробно здесь https://tasmota.github.io/docs/Rules/
К примеру Вам нужно каждый день включать "relay 1" в указаное Вами время! А "relay 2" и "relay 3" отключать!

  1. Нужно выяснить какое время установленно ва Вашем устройстве!
    Вводим команду "Status 7" https://ibb.co/kHRqfsg
    Если в выводе показывает отличное время от вашего то, при помощи команды "Timezone" установите свое правильное! К примеру "Timezone 2", установит Вам 2-ю временную зону.
    Для проверки снова вводите команду "Status 7"... Нужно, что бы время совподало с Вашим!
  2. В прошивке "Tasmota" 16 таймеров! https://ibb.co/F5tqFzH
    К примеру мы хотим установить таймер под номером 5.
    Вы можете настроить таймер с веб. морды а можно сделать это в консоле введя команду.
    Timer5 {"Arm":1,"Mode":0,"Time":"14:00","Days":"1111111","Repeat":1,"Action":3}

    В команде прописанно:
    Устанавливаем таймер №5, время срабатывания в 14-00, каждый день на неделе (семь едениц), и будильник будет повторяться!
    3) После того, как таймер настроили нужно создать правило "Rules"!
    Создаем правило №1
    Согласно нашему заданию, нам нужно, в указанное время включать "relay 1" остальные отключить.
    В консоле вводим команду

    Rule1 ON clock#Timer=5 DO Backlog Power1 on; Power2 off; Power3 off ENDON

    4) Осталось активировать таймер! Это можно сделать с веб. интерфейса https://ibb.co/h9v1YxS либо ввести команду в консоли

    timers 1

    Готово!

Если нужно удалить созданное Вами правило №1 введите команду в консоли.
Rule1 "

Установите правильное местоположение вашего устройства прописав широту и долготу. Это нужно для правильного восхода/заката солнца
Введите команды к консоле.

Latitude 60.XXXXXX 
Longitude 24.XXXXXX

Ссылка на видео, как чел. прошивает без пайки https://www.youtube.com/watch?v=imKZbhJ8lvU&featur...

Обсуждение (2) (5)

Смотрите так же:
18.07.2020 Node-red
08.04.2020 MD на Proxmox!
20.03.2020 Нейронные цветочки (допилено "API"!)

Yashalta, Россия

На форуме: Yashalta