Удалось таки подружить прошивку из конструктора Максима wifi-iot.com и 4х канальный SONOFF CH4 PRO*. Не без костыликов, но с хорошим итоговым результатом. Основная цель этого - отвязать весьма неплохую железку от китайского облака. Тем более, что у меня есть внутренняя локальная сеть. Мало того, что облако частенько глючит, так еще и китайцы требуют при каждой смене сетевых настроек данные GPS того места. Несколько странное требование, но доверия к китайским облакам после этого улетает в отрицательные значения! Так же хотелось добавить 4х канальный выключатель в сложившуюся локальную экосистему, ибо прошивки Максима wifi-iot.com использую давно и весьма удачно. Различные контроллеры "умных домов" использовать не хочется, так как при сбое или выходе из строя сервера умного дома рассыпется всё, мне же хочется иметь немного иную систему, где каждый модуль автономен и может существовать автономно, но в тоже время может принимать команды от более вышестоящего устройства и отдавать туда свои данные. При выходе из строя одного модуля откажет только лишь функционал, связанный с ним. К тому же, поскольку железная часть имеет очень небольшое разноообразие и практически одинаковые прошивки, отказавший модуль можно заменить запасным. И если описаний перепрошивки 1 и 2 канальных модулей конструктором в интернете море, то варианта перепрошивки CH4 PRO конструктором я не встречал. Был опробован вариант замены на tasmota, но этот вариант более заточен работать переферией сервера какого-либо умного дома.
* Да, часть картинок и инфы спёрто с их сайта.
Зато просмотр темплейтов тасмоты дал понимание, как можно управлять 4 каналами соноф из конструктора, а так-же назначение использованных GPIO. (Wiki производителя и подробную принципиальную схему этой железки я обнаружил уже после решения вопросов с перепрошивкой)
Настороженность этого железа вызывало наличие в нем второго процессора STM на борту, прошивка и точный функционал которого неизвестны, но есть некоторое понимание в разделение функционала между процессорами. STM занимается обслуживанием радиомодуля, собственных 4х кнопок, переключение режимов обработки кнопок ( подробно расписано в Wiki ). ESP же занимается интернет частью и выдачей команд на ключи реле, которые однако, тоже проходят через STM. Расклад GPIO такой:
канал | кнопка | реле |
1 | 0 | 12 |
2 | 9 | 5 |
3 | 10 | 4 |
4 | 14 | 15 |
Основная проблема после переназначения выводов была в очень нестабильной и глючной реакции на нажатие радиокнопок на пульте. Реле могло включится, могло включится и тут же отключится, или вообще не реагировать на кнопку. Так же непредсказуемая была реакция на длительность нажатия. При этом как в оригинальной прошивке, так и в тасмоте все работало беспроблемно.
Использовал sdk 1.3.0 как самую безглючную, рекомендуют. Методом
научного тыка проб и ошибок собрал вот такую конфигурацию. На картинках постарался подчеркнуть принципиально значимые настройки, остальное можно добавлять на ваше усмотрение, учитывая непересекаемость GPIO. Кстати, в самой железке использованы на выход GPIO 9 и 10, которые задействованы для работы с памятью внутри ESP. Поэтому необходимо в конструкторе включить поддержку этих выводов. Функционал кнопок пришлось реализовать через прерывания в конструкторе. Через GPIO keys работа была очень неустойчивая, а при попытке использовать длинные нажатия система переходила в автоколебательный режим. Так же немного пришлось проэксперементировать с временем антидребезга кнопок. На специальный функционал типа различных датчиков, таймеров и термостатов я здесь не обращаю внимания, так как это всё не раз разжёвано в интернетах.
ах, да. еще wifi индикатор можно добавить, он на 13 гпио сидит. чтоб как в оригинале работал, мигал при отсуттвии интернета ли в процессе подключения и горел при его наличии. ( на самом деле интернет как таковой этой системе не нужен, речь идет о подключении к точке Wi-Fi. Для управления "издалека" - любого места, где есть интернет и достаточно иметь смартфон с веб-браузером, исползуется тоннель VPN. Для подключения к самим железкам достаточно любого веб-браузера.)
Сорри за низкое качество снимков, но делать скриншоты тогда было некогда, а переделывать лень, тем более информация вполне читаема.
* Айпи адреса не затираю, так как это стендовая настройка, к реалиям не имеющаяя отношения. Да и реальная живет внутри VPN.
Небольшой мануал по настроке железки от производителя.
Sonoff 4CH Pro supports to work 3 modes: self-locking mode, inching mode and interlock mode.
1. In self-locking mode, users can turn on/off the 4 connected devices independently. For example, if users turn on CH1, connected device keeps on. If users turn off CH2, connected device keeps off.
2. In inching mode, users can turn on the connected devices for 0.25-4s(Sonoff 4CH Pro) or 1-16s (Sonoff 4CH Pro R2). For example, users can turn on CH1 connected device for 1s, then auto-off.
3. In interlock mode, users can turn on 1 device every time, and turn off other devices at the same time. For example, if users have turned on CH2, then when they turn on CH3, CH2 will be auto-turned off at the same time.
We will introduce how to switch among the 3 modes below:
CAUTION: Please cut off power supply before switching S5, S6, K5, K6. Whether you use DC or AC input, make sure you have unplugged the power plug every time!!!
S6 is interlock /inching&self-locking switch: Toggle to the right(0), it enters into interlock mode; Toggle to the left(1), it enters into inching &self-locking mode.
K5 is inching/self-locking switches: From left to right, there are 1, 2, 3, 4, correspondingly for channel 1 (CH1), channel 2 (CH2), channel 3 (CH3), channel 4 (CH4). Toggle the switch down (0), the corresponding channel enters into inching mode; Toggle the switch up (1), the corresponding channel enters into self-lockin mode.
K6 is used to set the delay time for inching mode. From left to right there are 1, 2, 3, 4, correspondingly for CH1, CH2, CH3, CH4. Take Sonoff 4CH Pro for example, toggle all switches down (0000), the inching time will delay for 4s; Toggle all switches up (1111), the inching time will delay for 0.25s.
Please refer to the delay time setting list of Sonoff 4CH Pro below:
Please refer to the delay time setting list of Sonoff 4CH Pro R2 below:
S5 is 433MHz code clearing button: To clear the 433MHz coding, please press and hold it until the 4 LEDs lit up green and off.
Pair with 433MHz RF Remote: Quickly press twice one of the switches below, then press one of the ABCD buttons on your RF Remote. If paired successfully, the button will lit up in red, and the corresponding status LED will blink in green for 4 times. You can press the button to turn on or turn off the related channel.
Как всегда, на всякий случай делаю копии файлов - иногда интернет "забывает" некоторые данные.
Sonoff 4CH Pro Hardware Локальная копия
Sonoff 4CH Pro Schematic Локальная копия
ESP8285 Datasheet V1.4 EN Локальная копия
Продолжение следует... Возможно...