• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Tuya Zigbee Roгter и DIY Smart Switch за 70 руб.

pvvx

Активный участник сообщества
Прошивки для Smart Switch практически допилены. Переделал пару валявшихся WiFi "Умных розеток", выкинув ESP, вставив модули TB-03F.
Но пока нет опубликованных "причуд" для Z2M/ZHA.
Термостат и прочие модификации с подключением MY18B20 работают хорошо...

1764606421507.png
 

Slacky

Member
Предварительный бардак с FW скинут в https://github.com/pvvx/TlsrSmartSwitch
Виктор, можно вопрос? :))

Переделываю розетку. Ну точнее уже переделал. TS011F _TZ3000_gjnozsaz. Manufacturer code 4417 и image type 54179. Все переделалось и работает.

Но есть розетка, с точно таким же название и моделью TS011F _TZ3000_gjnozsaz, но она не обновляется. Полезли смотреть. Там используется чип tlsr8656f512, а в первой tlsr8258f1. И manunufacturer code 4742 и image type 2. Ок. Поправили. Не обновляется. Обновление находит, но потом z2m дает отлуп по таймауту, типа не ответила на запрос OTA. Снифером проверил, ответ дает, мол размер большой. Ок. Ужать сильно не вышло роутер. Переделал на Энд. Влезла. Но после обновления превращается в кирпич.

Что имеем. Оригинальная прошивка сделана с бутлоадером. Основная прошивка лежит не по адресу 0x8000, а по адресу 0x9000

sharex-08-20-51-530.jpg

А область для загрузки ОТА начинается с 0x44000

sharex-08-21-56-973.jpg

После обновления бутлоадер пытается копировать обновление по адресу 0x9000, но почему-то копирует только 32 байта. Но вся область до 0x44000 заполнена 0xFF.

sharex-08-20-37-867.jpg
Я сначала решил, может он manufacturer и image проверяет. Сделал, как на оригинале. Не помогло.

Есть мысли?
 

pvvx

Активный участник сообщества
От куда мысли по поводу выкрутасов Tuya?
Мой вариант удаления загрузчика не будет стартовать с 0x9000. Это надо дополнить.
 

Slacky

Member
От куда мысли по поводу выкрутасов Tuya?
Мой вариант удаления загрузчика не будет стартовать с 0x9000. Это надо дополнить.
Я дополнил, когда анализировал расположение на флеш. Но до места копирования прошивки с 0x9000 на 0 мы даже не доходим. Мы не можем скопировать ОТА обновление с 0x44000 на 0x9000.
 

pvvx

Активный участник сообщества
Я дополнил, когда анализировал расположение на флеш. Но до места копирования прошивки с 0x9000 на 0 мы даже не доходим. Мы не можем скопировать ОТА обновление с 0x44000 на 0x9000.
Это вообще работает со своими OTA?
Встречал Tyua устройства с любыми ошибками в OTA, по этому надо сначала как-то узнать - работает или нет там вообще OTA c оригинальным bin.
 

Slacky

Member
Это вообще работает со своими OTA?
Встречал Tyua устройства с любыми ошибками в OTA, по этому надо сначала как-то узнать - работает или нет там вообще OTA c оригинальным bin.
Вряд ли работает. Там прошивка в розетке вЕсит много. А на ОТА отведено мало. Скорей всего ОТА нет, просто кластер не убрали.
 

shaman1010

Member
Попробовал сегодня прошить купленные когда-то по скидкам розетки.
Поверметр внутри 0942. Распиновка _почти_ референсная, кроме GPIO реле. Здесь оно сидит на PC2.
И вот не варится каша.
Сначала проверил все, кроме реле - прошил EM1SW1TS_v0006.bin. Потом обнаружил, что реле на кнопку перестало реагировать, перепроверил - таки не заметил.
Потом зашел в конфигуратор GPIO, изменил реле на PC2. Сохранил измененный бинарник, прошил... все-равно не работает.
Перепроверил еще раз, на плате - PC2, в измененном бинарнике - PC2. Но реле не реагирует ни на кнопку, ни на слайдер в вебморде.
Моя ошибка или в конфигураторе?


IMG_20251205_121634.jpgIMG_20251205_121809.jpgIMG_20251205_121820.jpgIMG_20251205_121858.jpgIMG_20251205_121930.jpgIMG_20251205_122001.jpgIMG_20251205_122304.jpg
 

pvvx

Активный участник сообщества
Попробовал сегодня прошить купленные когда-то по скидкам розетки.
Поверметр внутри 0942. Распиновка _почти_ референсная, кроме GPIO реле. Здесь оно сидит на PC2.
И вот не варится каша.
Сначала проверил все, кроме реле - прошил EM1SW1TS_v0006.bin. Потом обнаружил, что реле на кнопку перестало реагировать, перепроверил - таки не заметил.
Потом зашел в конфигуратор GPIO, изменил реле на PC2. Сохранил измененный бинарник, прошил... все-равно не работает.
Перепроверил еще раз, на плате - PC2, в измененном бинарнике - PC2. Но реле не реагирует ни на кнопку, ни на слайдер в вебморде.
Моя ошибка или в конфигураторе?


Посмотреть вложение 14865Посмотреть вложение 14866Посмотреть вложение 14867Посмотреть вложение 14868Посмотреть вложение 14869Посмотреть вложение 14870Посмотреть вложение 14871
Реле не включится пока не будут выполнены установленные условия.
Настройки по умолчанию: напряжение должно быть от 180 до 260В.
 

shaman1010

Member
изменил реле на PC2. Сохранил измененный бинарник, прошил... все-равно не работает.
Перепроверил еще раз, на плате - PC2, в измененном бинарнике - PC2. Но реле не реагирует ни на кнопку, ни на слайдер в вебморде.

Посмотреть вложение 14865
А ларчик просто открывался.... нужно ОБЯЗАТЕЛЬНО перед прошивкой делать полную очистку флеши.
Очистил, перепрошил розетку - все работает.

Спасибо за работу и можно добавлять в совместимые устройства. (Напряжение показывает (в двух розетках разное, но там по-другому не бывает, нужно корректировать). Значит и мощность должно (соберу в кучку, проверю, но раз что-то с 10-ти ножки приходит, то не вижу повода не приходить чему-то другому).
 

pvvx

Активный участник сообщества
А ларчик просто открывался.... нужно ОБЯЗАТЕЛЬНО перед прошивкой делать полную очистку флеши.
Там дано описание - прошивка при первом старте запоминает GPIO в отдельной области Flash. Дальнейшее изменение возможно только в кластерах-атрибутах Zigbee, уже при работе в сети Zigbee.
И после изменения требуется перезагрузка по питанию.
А программа настройки GPIO создает прошивку для дублирования на несколько устройств или для первоначально установки.
Иначе, если кнопка не совпадет, тогда могут быть проблемы со сбросом устройства для регистрации в сети.

(Напряжение показывает (в двух розетках разное, но там по-другому не бывает, нужно корректировать). Значит и мощность должно (соберу в кучку, проверю, но раз что-то с 10-ти ножки приходит, то не вижу повода не приходить чему-то другому).
Для этого есть настройки. У меня все имеющиеся разновидности этих "Switch" используют разные настройки коэффициентов. Во всех разные номиналы резисторов делителей. Отличаются и резисторы шунтов, хотя имеют одинаковую маркировку, но платы разведены по разному. Плюс к этому сам чип измерителя имеет достаточно большие отклонения своего Ref, разницу по входам и преобразований в мощность.
Настроить коэффициенты возможно только на резистивной нагрузке, с PF 1.0. И надо иметь тестер на напряжение и ток.
В дальнейшем, возможно, будет введена калибровка по указанию значению текущего напряжения и тока. Но не в бета версиях. Пока необходимо утрясти всё остальное.
 

pvvx

Активный участник сообщества
Дополнение:
прошивка при первом старте запоминает GPIO в отдельной области Flash. Дальнейшее изменение возможно только в кластерах-атрибутах Zigbee, уже при работе в сети Zigbee.
И после изменения требуется перезагрузка по питанию.
А программа настройки GPIO создает прошивку для дублирования на несколько устройств или для первоначальной установки.
Иначе, если кнопка не совпадет, тогда могут быть проблемы со сбросом устройства для регистрации в сети.
В дальнейшем, при обновлении любой прошивкой, с установленными в ней любыми GPIO, будут использованы настройки из специальной области FLASH. Это сохранение, сделанное при первом старте или при изменении в работающей сети Zigbee являются приоритетными.
 

pvvx

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

pvvx

Активный участник сообщества
Сначала проверил все, кроме реле - прошил EM1SW1TS_v0006.bin. Потом обнаружил, что реле на кнопку перестало реагировать, перепроверил - таки не заметил.
Посмотреть вложение 14865Посмотреть вложение 14866Посмотреть вложение 14867Посмотреть вложение 14868Посмотреть вложение 14869Посмотреть вложение 14870Посмотреть вложение 14871
Для вашего варианта необходимо выбирать прошивку без термостата.
Иначе, при включенном термостате по анализу присутствия датчика MY18B20, команды реле будут работать только при выключенном термостате ZHA.
А с Z2M проблем ещё много - Z2M неверно воспринимает коэффициенты делителей для значений напряжения, тока, мощности и энергии в соответствующих кластерах, как это прописано в стандарте Zigbee 3.0.
Он не перечитывает значение множителя и делителя для значения показаний. А должен это делать согласно стандарту Zigbee.
Т.е. Z2M на сегодня не соответствует стандарту Zigbee 3.0 даже частично, в отличии от ZHA.
И при создании прошивок на эти определения - что оно могет (ZHA/Z2M), уходит большая часть времени.
 

pvvx

Активный участник сообщества
И так как у ZHA и Z2M укоренившиеся наплевательские отношения к пользователям, в основном в вариантах интерфейса ZigbeeOTA и постоянные изменения в коде с каждой новой версией, требующие переписывания “причуд ” для каждого нового варианта, я это сопровождать для них не намерен. Пишите сами скрипты "причуд" для ZHA/Z2M.
 

shaman1010

Member
Там дано описание - прошивка при первом старте запоминает GPIO в отдельной области Flash. Дальнейшее изменение возможно только в кластерах-атрибутах Zigbee, уже при работе в сети Zigbee.
И после изменения требуется перезагрузка по питанию.
А программа настройки GPIO создает прошивку для дублирования на несколько устройств или для первоначально установки.
Иначе, если кнопка не совпадет, тогда могут быть проблемы со сбросом устройства для регистрации в сети.
С резисторами и коэффициентами это понятно. У меня, как оказалось, в промежутке между двумя измерениями (10 мин) напряжение в сети изменилось на 10В. Позже, проверив в одно и то же время - там плюс-минус одинаковые показатели.

А вот по поводу запоминаний GPIO - возможно у меня сложилось неправильное предположение, а возможно стоит в последствии внести изменения в прошивку...
Мне кажется, правильней при использовании кастомной настройки в бинарнике - затирать ту самую выделенную область новыми значениями, поскольку вливается КАСТОМНЫЙ бинарь. Вроде бы так логичней - ты себе подготавливаешь кастом, именно для того, чтобы он прошил нужные параметры в нужные места. А при стандартном обновлении в последствии уже, естественно, эту область не трогать.
Но это мое мнение, оно может оставаться личным.
 

pvvx

Активный участник сообщества
Дело в том, что обновление вам прилетит завтра автоматически, когда некие пользователи закинут его в общи репозиторий с ZigbeeOTA. И если включено автоматическое обновление или пользователь нажмет “обновить”, тогда кранты вашему устройству.
А так установки GPIO не поменяются. Так-же при обновлении версии вам не придется конвертировать FW.
Я вот не хочу помнить, на каком устройстве у меня какие GPIO. Пусть это помнит само устройство, а файл обновления версии для них будет один.
 

pvvx

Активный участник сообщества
В итоге вам необходимо подготовить (конвертировать) альтернативную FW только в первый раз, при обновлении оригинала c Tuya. И при этом сделать OTA для конкретной версии Tuya. После этого первого OTA номер типа прошивки для ZigbeeOTA изменится на номер TlsrSmartSwitch с конкретным типом. И можно будет получать обновления из общего репозитория...
 

pvvx

Активный участник сообщества
Существует альтернативный способ сброса настроек Zigbee сети.
Это типа включить – выключить N раз питание, как у лампочек. Но эта азбука Морзе мне не нравится по множеству причин.
И при таком сбросе, при первой прошивке на алт.версию GPIOs должны быть не назначены и требуется ковыряться в каждом устройстве, в настройках вручную, записывая значения в кластеры и нужные атрибуты, для которых не написаны “причуды” для ZHA/Z2M.
И такой подход создаст больше ошибок и проблем у пользователей. Только со сбросом через вкл/выкл уже будет множество issue, т.к. у разных устройств разные кондеры в питании и время работы при отключении…

И как быть, когда будут созданы (конвертированы) варианты прошивок для конкретных моделей "Умных розеток"?
К каждой иметь свой идентификатор прошивки и свою ветку в исходниках? Нафиг это. Пусть будет общий файл, и начальные специальные (подготовленные через конвертор).
 

shaman1010

Member
А так установки GPIO не поменяются. Так-же при обновлении версии вам не придется конвертировать FW.
Я вот не хочу помнить, на каком устройстве у меня какие GPIO. Пусть это помнит само устройство, а файл обновления версии для них будет один.
Наверное мы не синхронизированы. Давайте синхронизуемся :)

Что я имею ввиду:
1) Человек когда/если готовит себе бинарь, то он явно предполагает/знает что он себе там меняет. И ИМЕННО ЭТОТ, ПРИГОТОВЛЕННЫЙ специально фирмварь должен (имхо) затирать область, в которой назначаются GPIO так, как он себе приготовил. (Причем НЕЗАВИСИМО от того, что там было до этого).
Сдалал специальную версию = заменить всю служебку тем, что кто-то сам себе слепил.
2) При стандартном ОТА обновлении - все, как работает сейчас, т.е. уже ту область, которая как-то изменена - НЕ ТРОГАЕМ.

Т.е. мое предложение именно в том, чтобы специально подготовленный бинарь ОДНОЗНАЧНО заменял ту служебную часть, где определяются GPIO на то, что указано в специальной версии. НО стандартное ОТА обновление, уже ее не трогало никогда.

Что с Вашей точки зрения не так в таком раскладе?
 
Сверху Снизу