• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Проблема множества разнообразных прошивок на MGT24

PeterPK

Active member
> Может как вариант, две прошивки штампануть, тупо с разными gpio 2и 14

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

Когда я решил прошить свой Sonoff TH я несколько часов подбирал к нему прошивку. Есть прошивки TH, есть Basic, есть ПЛК, есть nodemcu. У всех свои особенности и свойства.
В результате мне не удалось подобрать прошивку при которой бы у TH заработал бы и датчик температуры и были бы Переменные (не путать с Параметрами). А Переменные - это очень круто. Почему в одних прошивках есть переменные, в других нет?

Другой пример. Когда мы нашли ошибку в виртуальной машине (оператор repeat) Валерий сразу исправил ее в прошивке для ch4. Но почему только в ней?! Ведь по сути она должна быть всюду одинаковая?!

Как я себе это вижу. Есть проект. Он состоит из библиотек. Библиотеки (к примеру):
- виртуальная машина;
- датчики
- параметры
- переменные
- basic
- ch4
- nodemcu

Допустим исправили что-то в виртуальной машине. Программист запускает сборку установив вначале DEFINE:
- #define BUILD=TH - соберется прошивка для TH
- #define BUILD=Basic - соберется прошивка для Basic
- #define BUILD=All - соберутся прошивки для всех устройств.

Исправление в виртуальной машине войдет во все прошивки сразу.

Другой вариант. Есть прошивка Tasmota. Она, насколько я знаю у них одна для всех устройств.
Но чтобы она правильно заработала на моем устройстве я должен прописать конфигурацию - как вот эти GPIO соответствуют чему-то там в моем устройстве.
Поскольку большинство пользователей такие же тупые как и я, и что такое GPIO не понимают - для них написаны какие-то template, где эти соответствия уже прописаны.
Каждый template под конкретное устройство.

Пользователь скачивает прошивку которая одна на все. После этого он ищет template с именем своего устройства, скачивает его - и все заработало.
Прошивка регулярно обновляется. Template'ы как я понимаю не обновляются, или очень редко, но постоянно добавляются новые template для новых устройств.

Пользователь (полный ноль и в радиотехнике и в программировании) покупает новое устройство типа 8266. Не находит для него template - и пишет на него заявку. А кто-то из асов GPIO на добровольной основе разирается что там и как и через какое-то время составляет новый template.
Add Tasmota Device Template

Вот такая вот информация к размышлению. Мопед не мой, что мог - рассказал.
 

glory24

Member
Сейчас может напишу глупости, но это то как я, дизайнер, понял их работу.
Спасибо, что написали, и совсем даже не глупости, а свежий взгляд на стояние сервиса, мне так кажется :)
Поскольку большинство пользователей такие же тупые как и я,
Ну, положим, это Вы скромничаете. :)
Когда Вы с Виталием обсуждали какую-то проблему (в Телеграме), я лиш тихонько нервно курил в сторонке :)
А кто-то из асов GPIO на добровольной основе разирается что там и как и через какое-то время составляет новый template.
Add Tasmota Device Template
Пошел по ссылке и абсолютно ничего не понял как это работает.
Можете подробнее пояснить?
 

PeterPK

Active member
Пошел по ссылке и абсолютно ничего не понял как это работает.
Можете подробнее пояснить?
Кто-то покупает новое устройство на основе 8266 8285 и иже с ними. Хочет туда залить Тасмоту, но обнаруживает, что темплейта для такого устройства нет - то есть датчики и реле скорее всего не заработают (мой случай с прошивкой nodemcu и SonoffTH, прошивка работать будет, но датчики не заработают).
Заполняет анкету, все что знает про устройство - как звать, кто сделал, ссылка на даташит и тд. И отправляет.
А дальше ждет что кто-то из гуру gpio когда-нибудь купит такое же устройство (или разберется на основе чертежей и даташит), поковыряет и напишет темплейт (абсолютно на добровольных началах), после чего это устройство заработает под Тасмота у всех желающих.

Это я так понял процедуру.
 

glory24

Member
Так на сервисе МЖТ каждому устройству по своей Тосмате, да и еще каждой соответствует своя панель управления, с полным набором возможных функций.
Просто не стоит совать в SonoffTH прошивку для nodemcu.
У SonoffTH своя прошивка ведь имеется и панель управления соответствующая.
p.s.
А вообще, мое личное мнение, что SonoffTH - крайне неудачное устройство. У меня такое уже лет 6 без применения в ящике валяется.
 

valeraba

Moderator
Команда форума
Если выложу исходники на GitHub, сможете самостоятельно изменить номер GPIO на тот, который нужен, и перекомпилировать проект в среде Arduino IDE (предварительно установив пакет для esp8266)?
Умеющий программировать на с++, сможет найти ошибку в моих исходниках, либо написать собственную прошивку.
 

glory24

Member
Так на сервисе МЖТ каждому устройству по своей Тосмате, да и еще каждой соответствует своя панель управления, с полным набором возможных функций.
Просто не стоит совать в SonoffTH прошивку для nodemcu.
У SonoffTH своя прошивка ведь имеется и панель управления соответствующая.
p.s.
А вообще, мое личное мнение, что SonoffTH - крайне неудачное устройство. У меня такое уже лет 6 без применения в ящике валяется.
Да, еще хотел отметить:
на одно и то же устройство может быть несколько прошивок, так как в каждой из них одни и те же GOIO используются для разных задач. По этой причине объединить две прошивки в одно не получается.
К приму это относиться к прошивкам устройства Sonoff Dual R2 :
1. специализированная прошивка для роллет/ворот
Снимок.JPG
2. универсальная прошивка
Снимок.JPG
и к прошивке устройства Sonoff Basic R1, Sonoff TH 10/16
1. прошивка для шлагбаума
1591599897041.png
которую Валера почету-то не вложил в загрузки.
2. универсальная прошивка
Снимок.JPG
 

glory24

Member
Если выложу исходники на GitHub, сможете самостоятельно изменить номер GPIO на тот, который нужен, и перекомпилировать проект в среде Arduino IDE (предварительно установив пакет для esp8266)?
Умеющий программировать на с++, сможет найти ошибку в моих исходниках, либо написать собственную прошивку.
Я - нет.
Но если кто-то за это возьмется - будет просто супер!
 

PeterPK

Active member
Если выложу исходники на GitHub, сможете самостоятельно изменить номер GPIO на тот, который нужен, и перекомпилировать проект в среде Arduino IDE (предварительно установив пакет для esp8266)?
Умеющий программировать на с++, сможет найти ошибку в моих исходниках, либо написать собственную прошивку.
Перекомпилировать смогу, а вот "изменить GPIO на тот, который нужен" - с этим гораздо сложнее.

Можно ли сделать так:
в исходниках есть некий "gpio_settings.h" где собраны вот эти самые gpio.

Внутри файла есть разделы
// sonoff basic
gpio ...
// sonoff th
gpio ...
// nodemcu
gpio ...
и тд, где умными людьми прописаны правильные gpio для каждого устройства.
Снимаешь комментарии с нужной тебе секции (твое устройство), запускаешь компиляцию и получаешь прошивку для своего устройства?
Или через define.
 

valeraba

Moderator
Команда форума
Сейчас для прошивки plc-4ch настройка gpio выглядит таким образом
C++:
#define PIN_LED_MODE   13
#define PIN_ONEWIRE  2
#define PIN_DI  3

static byte pinButtons[4] = {0, 9, 10, 14};
static byte pinRelays[4] = {12, 5, 4, 15};
 

PeterPK

Active member
Сейчас для прошивки plc-4ch настройка gpio выглядит таким образом
C++:
#define PIN_LED_MODE   13
#define PIN_ONEWIRE  2
#define PIN_DI  3

static byte pinButtons[4] = {0, 9, 10, 14};
static byte pinRelays[4] = {12, 5, 4, 15};
И? Можно ли так расписать для каждого нужного нам устройства в одном файле, и каждый раскомментирует нужный ему кусок и соберет себе прошивку?

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

antenna-krsk

Active member
Сейчас для прошивки plc-4ch настройка gpio выглядит таким образом
C++:
#define PIN_LED_MODE   13
#define PIN_ONEWIRE  2
#define PIN_DI  3

static byte pinButtons[4] = {0, 9, 10, 14};
static byte pinRelays[4] = {12, 5, 4, 15};
все очень просто, с этим я разберусь без проблем. а где режимы прописываются входов выходов? в чем заключается процесс компиляции?
 

antenna-krsk

Active member
Перекомпилировать смогу, а вот "изменить GPIO на тот, который нужен" - с этим гораздо сложнее.

Можно ли сделать так:
в исходниках есть некий "gpio_settings.h" где собраны вот эти самые gpio.

Внутри файла есть разделы
// sonoff basic
gpio ...
// sonoff th
gpio ...
// nodemcu
gpio ...
и тд, где умными людьми прописаны правильные gpio для каждого устройства.
Снимаешь комментарии с нужной тебе секции (твое устройство), запускаешь компиляцию и получаешь прошивку для своего устройства?
Или через define.
у меня практически собрана сводная gpio по устройствам, с этим нет проблемы точно
 

PeterPK

Active member
в чем заключается процесс компиляции?
Процесс компиляции заключается в том, что ты один раз долго мучаешься, ставишь весь софт и нужные ему приблуды, прописываешь пути, настройки и тд и тп, пока все не заработает.
В дальнейшем ты по выходу новой версии скачиваешь себе исходники в заданную папку, нажимаешь кнопку Build и через пару минут получаешь прошивку.
 

glory24

Member
Процесс компиляции заключается в том, что ты один раз долго мучаешься, ставишь весь софт и нужные ему приблуды, прописываешь пути, настройки и тд и тп, пока все не заработает.
В дальнейшем ты по выходу новой версии скачиваешь себе исходники в заданную папку, нажимаешь кнопку Build и через пару минут получаешь прошивку.
Это хорошо работает, когда у тебя устройство одного вида, к примеру th :)
А если у тебя весь модельный ряд, как к примеру у меня, (кроме th, конечно, который у меня уже давно в ящике стола ваяется :) ), то такую операцию, приходится делать для всех своих устройств.
Нет. Уж я лучше подожду готовую прошивку от Мастера :)
 

valeraba

Moderator
Команда форума
Не могу пока понять, куда правильно положить общие исходники. Arduino IDE не хочет понимать произвольный путь на внешние библиотеки. То есть, там есть общая настройка пути на библиотеки. Но мне хотелось бы, чтобы вся сборка была бы в одном месте, чтобы не размазывать проект по файловой системе (тут вам проект, а где-то там библиотеки).
 

valeraba

Moderator
Команда форума
Не удалось указать путь на общие файлы (Arduino IDE не понимает). Поэтому, перед сборкой нужного проекта, копируйте в него, недостающие файлы из общей папки "src".
 

antenna-krsk

Active member
Так на сервисе МЖТ каждому устройству по своей Тосмате, да и еще каждой соответствует своя панель управления, с полным набором возможных функций.
Просто не стоит совать в SonoffTH прошивку для nodemcu.
У SonoffTH своя прошивка ведь имеется и панель управления соответствующая.
p.s.
А вообще, мое личное мнение, что SonoffTH - крайне неудачное устройство. У меня такое уже лет 6 без применения в ящике валяется.
Тоже считаю его неудачным и потому что там 8266 и распаяно только gpio4 и 14
 
Сверху Снизу