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

Термостат из Sonoff S26F. Просто, понятно и полезно. (ESPEasy)

Термостат из Sonoff S26F. Просто, понятно и полезно.

Дело было вечером,… Прикупил кучку обновленных железок от Sonoff. В составе: Sonoff DUAL R2, Sonoff POW R2 и Sonoff S26F (F-тип розетки). Интерес отчасти академический (на сколько стабильней стали железки на невеселом esp8266/esp8285), а отчасти практический (аквариум на Sonoff работает несколько месяцев без проблем, теперь нужно два терморегулятора, с некоторыми отличиями). О самом простом хочу сейчас рассказать. В результате получился стабильный автономный термостат, с возможностью интеграции в существующую систему автоматизации, и с огромным багажом не используемых здесь возможностей.

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

Схемотехника:

WiFi часть собрана на esp8266 + PUYA 25Q80H (1МБ)
Лучше, когда не PUYA
Сначала на тип SPI flash не обратил особо внимания, 8мб, прошивальщик тоже 1МБ показывает, вроде бы нигде подножек быть не должно. Все подходящие прошивка помещаются. Эту модель ковырял последней, до этого были перешиты и проверены другие две модели. Проблем с прошиванием не возникло. Но как позже оказалось — PUYA — плод китайского инженеростроения, и понять китайцев могут только китайцы. Скорее всего в протокол внесли незначительные изменения, которые нужно учитывать при прошивке. В результате много времени было потрачено на перепрошивки, с непонятным поведением устройства после. В результате сдул флешку, запаял первую попавшуюся, оставшуюся с какого-то роутера, объемом 4МБ, с неизвестными прошивальщикам Vendor: 0x7F Device: 0x9D46, но отлично при этом работающую. После этого любая прошивка стартовала предсказуемо. И только после полного завершения работ над термостатом увидел в скомпиленных бинарниках пометки “ESP8266PUYA_1024” и “ESP8266PUYA_1024_VCC”. Судя по всему нужно было их использовать, но при этом sonoff-tasmota отдельной такой ветки не имеет, соответственно их прошивку без перепайки флеши на текущий момент запустить не удастся.


Выбор проекта для использования.

На сегодня есть несколько проектов с esp8266, которые можно так или иначе использовать.
Это:
  1. 1. WiFi-ioT, с большим конструктором, где можно скомпилировать только то, что нужно. Прошивка стоит $2 (единоразово, вне зависимости от числа пересборок и перепрошивок на одном модуле, поскольку привязывается к ChipID модуля). В целом достаточно неплохой инструмент для тех, кто программировать не умеет, но что нужно получить — точно знает.
  2. 2. Sonoff-Tasmota, ставший для многих нарицательным именем альтернативных прошивок для модулей от Sonoff. Построен на базе Arduno, с подтягиванием множества библиотек. Можно использовать их готовые бинарники, можно самому собрать среду и делать то, что посчитаете нужным. Именно открытость проекта привлекла многих. Прошивка достаточно стабильна, имеет интерфейсы на разных языках (русский присутствует, в последних ревизиях добавили украинский, правда обозвали его UK :) ). После заливки бинарника, внутри можно выбрать какой именно Sonoff используется — и автоматом подтянется распиновка именно этого модуля. POW R2 уже там есть. Из особенностей — больше подойдет тем, кто внутри дополнительно паяльником работать не собирается, поскольку переназначить GPIO в существующем выбранном модуле достаточно нетривиальная задача.
  3. 3. 1М смартфон. В целом идея здравая, и если смотреть глобально — это попытка сделать локального Sonoff-а. Тоесть принцип — похожий на тот, который используют ребята из ITEAD, но со своими плюшками и отличиями. После прошивки модуля их бинарником становится возможным управлять модулем со смартфона (WEB интерфейс не предусмотрен), имеют свой сервер, для возможности управлять через интернет, который можно отключить. И есть возможность, подключившись к одному модулю (даже без WiFi роутера, т.е. напрямую) видеть остальные устройства, поскольку развертывается mesh сеть. Кстати, этот тип сети есть и в некоторых других прошивках. Большим минусом для себя отметил то, что при установке приложения — оно очень активно хочет знать мое местоположение, а я очень активно не хочу его предлагать :). Производитель заявляет, что на текущий момент местоположение нужно для корректного определения восхода — заката, плюс есть функцианал реагирования на геолокацию любого из смартфонов, связанных с приложением (ребенок в учебное время вышел за 200м зону от школы — прилетает аларм “загулял” и т.д.). Т.е. такое себе смешивание функциональности sonoff и детских часов с GPS. Есть платные подписки на использование их серверов с сохранением логов и т.д. В целом — съедобно, но не для параноиков. Но еще и закрытый код ставит минус на использовании.
  4. 4. ESP8266 MegaD api. Для тех, кто знаком с достаточно сильным в рунете проектом ab-log.ru будет интересна прошивка, поддерживающая этот api. Т.е. по сути — это пересобранная под esp8266 прошивка мегадевайса, с урезаниями и легкими дополнениями, связанными с отличающейся архитектурой. Но в целом — отличная реализация, и для тех, у кого автоматика и так собрана на мегадевайсах — будет отличным выбором. Прошивка работает стабильно, аквариум работает именно на ней, проблем нет. Но опять-же код закрытый, и автор достаточно давно перестал обновлять ее. Дата последних мелких правок с отключением MQTT — 03.06.2017.
  5. 5. MyHome IoT — прошивка под Blink, со всеми плюсами и минусами. Особо не вникал, мне не интересен этот подход.
  6. 6. ESPurna — в общем “урна” в названии, наверное не случайна, но есть исходники на гите, проект живет, но в чем его изюм — не понял. Хоть и заявлена частичная поддержка SSL/TLS в MQTT. Поддерживается небольшое количество датчиков. Хоть обновляется часто, но поддержки POW R2 нет. В общем — на любителя.
  7. 7. Sonoff_WiFi_Switch от Третякова, в целом очень интересный проект, код открыт, но собирается с бубном, поскольку нужны определенные библиотеки, определенных версий. Может организовываться в mesh сеть, очень лаконичный и симпатичный дизайн, есть управление удаленными устройствами с аналогичной прошивкой. Но как-то энтузиазм у ребят угасает, а многого так еще и не добавили. Последние готовые бинарники годовалой давности, в исходниках какое-то движение идет, но видно, что на проект автор понемног забивает. Жаль. Выглядит достаточно современно.
  8. 8. ESPEasy — лично для меня стал открытием, в хорошем смысле этого слова. Код открытый, Используется последнее ядро Arduino 2.4.1 с критическими исправлениями. Используемые либы лежат в исходниках и обновляются синхронно, в случае необходимости. Разворачивается очень быстро на PlatformIO (Кто не в курсе, что это такое — посмотрите хотя бы это видео, если коротко — это удобная замена среды Arduino, с возможностью как портировать свои проекты из Arduino, так и использовать любое существующее ядро, и писать на том языке, который привычен. Нужные библиотеки подтягиваются в один клик, поддержка оборудования во второй, может использовать как Atom, так и Visual Studio Code для своего развертывания). Еще у автора(ов) мне понравился системный подход, четкий дедлайн по выходу версий. В целом, в подходе чувствуется богатый опыт. Значит будет закинут не скоро. Ключевой особенностью данного проекта так-же является поддержка большого количества датчиков (POW R2 уже поддерживается). В этом проекте уже добавлена поддержка той злосчастной PUYA, правда работоспособность так и не проверил, поскольку заметил гораздо позже того, как заменил микросхему. Достаточно грамотно организована работа с spi, ограничивает количество ежедневных сохранений изменений. Сбросить счетчик можно только сняв питание с устройства, иначе всплывают красные флаги и отказываются сохранять, пока не передернешь питание. Т.е. тем самым ограничивают количество записей на spi. На любой GPIO можно повесить любой датчик. Вся логика взаимодействия описывается отдельно. Плохо, что недостаточно готовых примеров, некоторые моменты приходится использовать методом проб и ошибок. Но в целом, когда вникаешь в логику взаимодействий — оказывается все достаточно понятно.
  9. Этот проект можно сравнить с первым из этого списка, но с открытым исходным кодом (правда на Arduino, в отличии от первого, где чистый C, и SDK от pvvx, что правильней). И поскольку здесь можно легко сделать полностью автономный термостат, с управлением как по HTTP, так и по MQTT (а так-же еще многими путями), именно на базе этого проекта было принято решение расширять возможности стандартного железа Sonoff.

По указанным прошивкам есть темы на 4pda и на ab-log

Ставим цель для термостата:

  1. 1. Возможность поддержания заданной температуры в полностью автономном режиме. С использованием дельты температур.
  2. 2. Старт автоматического поддержания температуры либо автоматически, либо нажатием единственной кнопки.
  3. 3. Минимальное изменение внешнего вида при добавлении датчика температуры (минимальный внешний колхозинг, другими словами).
  4. 4. Возможность легкой интеграции в существующую систему автоматизации.
Самый главный пункт для меня первый. Устройство предполагается настроить один раз и поставить на постоянную службу без моего участия. Но дистанционный мониторинг необходим.

На стандартной прошивке я его даже не включал, по сему, что там было от производителя — не знаю, да и не хочу знать :) Думаю те, кто использует сервера Sonoff уже и так в курсе, либо уже развернули свой сервер, а может уже научились добавлять свои сертификаты в новую родную прошивку.

Вскрываем.





Видно, что весь модуль esp8266 находится на отдельной плате. Сама плата вставляется в пазы основной, и припаивается шестью выводами.



Сопоставление маркировки с реальными выводами:
J1 — VPP (+3.3В)
J2 — GND
J3 — GPIO12 (реле и красный светодиод)
J4 — GPIO0 (внешняя кнопка, перевод в режим прошивки)
J5 — GPIO13 (синий светодиод, может управляться отдельно, инверсная логика)
J10 — GPIO3 (RX, его вывод на эту колодку для меня остался загадкой, возможно задел под другие устройства, где внешний микроконтроллер по UART будет что-то передавать ESP-шке). В ESPEasy, как и в 99% остальных прошивок задействовать GPIO3 и GPIO1 (RX, TX) не получится, а по TX еще и мусор сыпется при загрузке модуля.

Как принято в Sonoff и почему в DUAL R2 не так
Здесь сделаю небольшую ремарку по модулям Sonoff. Все модули пытаются придерживаться одинакового использования GPIO, т.е. на всех (почти) модулях GPIO12 это реле с прямой логикой и одновременно светодиод (красный), который работает вместе с реле. GPIO13 — это синий светодиод, управляется отдельно, подключен к отдельной линии питания. Но может мешать нормальной загрузке устройства, если его дергать во время старта. На ESPEasy на GPIO13 нельзя ставить галку дефолтного светодиода для WiFi (она снята по умолчанию). Сам же пин в процессе работы можно дергать как угодно. GPIO0 во всех модулях (опять же почти) используется для внешней кнопки. Эта же кнопка используется для перевода модуля в режим загрузки прошивки. Для внешних термодатчиков используется (TH10/TH16) GPIO4.

Но в обновленных Sonoff Dual R2 они отошли от принятого ими же использования GPIO, и именно по-этому многие жалуются на неработоспособность кнопки включения второго канала (обе находятся внутри корпуса). А причина проста — производитель перешел на esp8285, под кнопку отдал GPIO9 (SDIO_DATA2) а включить внутреннюю подтяжку, которая появилась в esp8285 забыл, а внешнюю не допаял :) Те, у кого не работает вторая внутренняя кнопка (button1) на R2 — подтяните этот вывод через 10к резистор к питанию — и будет вам счастье. Это касается родной прошивки, на альтернативах — все делается программно. Может и itead-овцы когда то починят внутреннюю подтяжку :)

Сейчас рассмотрим, что нам оставили на самой платке, и к чему можем подпаяться даже не особо ровными руками.



Здесь все отлично, на одной стороне два питания, rx, tx — уже прошьем, а GPIO2 можно под любимый многими DS18B20 использовать. Т.е. три контакта (два питания и GPIO2) находятся рядом, тоесть термодатчик будет здесь жить. Что с другой стороны?



Не густо, но…… но именно GPIO4 и GPIO5 нам SPEasy предлагает использовать по умолчанию для I2C шины, на которую можно навесить огромное количество разных датчиков параллельно. Т.е. для тех, кто захочет использовать BMP280, BME280 и иже с ними, для контроля не только температуры — удобно использовать эти два пина, и питание с обратной стороны. Меня же вполне устроит использование DS18B20 в герметичном исполнении. Т.е. вся “квадратная” шина останется пустой, и может быть задействована для расширителей портов, или еще как-то.

Перепрошивка. (Опустим момент с заменой SPI flash, и начнем)


  1. 1. Модуль в розетку НЕ ВКЛЮЧАЕМ, КАТЕГОРИЧЕСКИ. Для прошивки хватит 3.3В питания, полученного с USB-UART переходника. Я использую CP2104. Подключаем стандартно — питание модуля к выводу 3,3В, RX модуля к TX переходника, TX модуля к RX переходника, земли соединяем тоже. Т.е. всего 4 проводка.
  2. 2. Зажимаем кнопку на Sonoff и подаем питание на esp8266. (Можно отдельно отрывать 3.3В, можно вытаскивать переходник из USB порта).
  3. 3. Заливаем пустую прошивку, размером с используемую spi flash (в оригинале 1МБ=8мб, если используете другую — сделайте файл, размером точно в вашу spi flash, заполненную FF-ми).
  4. 4. Снимаем питание (сейчас флеш очищена, но модуль НЕ в режиме прошивальщика). Повторяем п.2
  5. 5. Берем подходящий бинарник отсюда (там по названию понятно, для каких модулей что использовать). Рекомендую заливать сразу девелоперскую версию, там уже включены все последние изменения и дополнения. Т.е. для 1МБ версии нужен файл: ESP_Easy_mega-20180804_dev_ESP8266_1024.bin Прошиваем.
  6. 6. Снимаем питание, и подаем его снова.
  7. 7. Через десяток секунд должна появиться открытая точка доступа ESP_Easy_0 — подключаемся к ней. Здесь либо откроется всплывающее окно, либо просто идем на 192.168.4.1 и вводим SSID/пароль своей WiFi точки доступа. Нажимаем применить, и ждем 20 сек перезагрузки.
  8. 8. Все, во всплывающем окне видим, какой IP получил модуль, подключаемся к своей WiFi сети и идем по указанному адресу. Если не увидели — зайдите на свой роутер, и посмотрите, какой IP выдал роутер модулю.
  9. Прошивать нужно с 0x000000 в режиме dout. С начала — потому, что fullflash, в dout — потому, что используется минимальное количество data линий (2шт) к spi flash. Это самый медленный режим работы, но он гарантированно работает на всех схемотехниках. А в Sonoff DUAL R2 еще и не получится по-другому. Там 2 линии отдали под кнопку и реле.
    Распространенная CP2104 шьет на 921600
    Давно перешел на прошивку через esptool.py, который ставится с ардуиной, на любую, отличную от винды платформу. Далее создается файл скрипта, в котором указаны все параметры. Потом он дублируется с изменением имени файла прошивки. В таком раскладе прошивка занимает 5-6 секунд. Пример скриптов, два варианта бинарников (для 1МБ и 4МБ) и два пустых файла лежат здесь в архиве.

Дальше начинается магия :)

На самом деле — сложно только до момента прихода понимания логики работы, а дальше все просто. :)
В первую очередь рекомендую зайти в раздел Tools-Advanced. Поставить галку на Rules, галку на Use NTP, ввести удобный NTP сервер, галку DST, ввести часовой пояс :)))



Здесь я час не мог понять как. Но все оказалось просто и понятно — в поле Timezone Offset (UTC +): вводим коррекцию в минутах. Т.е. для пояса +2 нужно ввести 120, для пояса -7 нужно ввести -420. Внизу нажимаем Submit.



Здесь хочу обратить ваше внимание на то, что все изменения в любом из разделов применяются только по кнопке Submit. И это правильно.
Идем в закладочку Main — и видим правильное время, если нажмем More info, то и остальные параметры системы.
Дальше — закладка Config, обзываем модуль, и ставим его номер (от 0, по порядку). У меня это Rozetka. Модуль работает с UTF-8 кодировкой, поэтому кириллица поддерживается нормально.



Дальше закладка Hardware, спускаемся вниз и назначаем входами/выходами наши пины. Смотрим скрин, думаю понятно почему именно так. Если нет — задавайте вопросы в комментах.



Дальше — важный момент. Суть всей логики работы в этом проекте — объектная ориентация. Т.е. в предыдущем пункте вы просто подключили подтягивающие резисторы, либо настроили GPIO как выход, и все. Сейчас заходим в закладку Devices, и добавляем устройства.
Думаем, что нам нужно — нужна кнопка, нужен DS18B20 (или тот, который вы используете). Все. Выходы это просто выходы, мы будем их дергать без лишних посредников.
Нажимаем Edit в первом пункте и выбираем из списка Switch input — Switch.



Подтверждаем, и настраиваем дальше. Name — то имя, по которому мы будем общаться с объектом. У меня это key. Ставим галку Enabled. Т.е. активируем объект. Internal PullUp: — включаем внутреннюю подтяжку.



Inversed Logic: — ставим галку, поскольку при нажатии на кнопке появляется 0. Т.е. используем инверсную логику. Дальше в скриптах =1 это включенное состояние, =0 выключенное. А инверсию указываем здесь.1st GPIO: — указываем, какой GPIO использовать под кнопку. Это GPIO0, кнопка туда припаяна. Switch Type: — Switch, поскольку просто кнопка. Switch Button Type: — Push Button Active Low. Т.е. момент переключения вылавливаем по переходу с высокого уровня в низкий. Внизу #Name можно не менять, в скриптах тоже используется это имя.
Кнопка Submit :)



Почти аналогично добавляем второй объект — датчик температуры. Ищем его в списке и добавляем.



Присваиваем имя, ставим галку активации, назначаем GPIO, выставляем период опроса (у меня 1с. для 12бит разрешения и одного датчика — это норма, поскольку максимальное время преобразования 0,75с. Если датчиков несколько, то нужно либо уменьшать разрядность, либо увеличивать период опроса). Device Address: сейчас у вас будет пустой, поскольку датчик еще не припаян. Когда припаяете — в выпадающем списке он появится. Или несколько, если несколько датчиков используется. Вводим поле #Name и указываем количество знаков после запятой, которое будем отображать.

Кстати, если до сюда дочитали, то уже половину пути прошли :)

В закладке Controllers можно добавить протоколы, по которым будем общаться с внешним миром.



Я добавил OpenHUB MQTT, как наиболее удобный в текущей ситуации. Если выбрать
Standalone — не будет использовать ничего для внешних коммуникаций. Можно добавить 3 внешних протокола.
В закладке Notifications можно выбрать тип оповещения (email / buzzer / ничего). Т.е. по событию можете поспамить, либо припаять пищалку с дополнительным транзистором и попиликать локально.



Основная закладка — Rules, т.е. скрипты, по которым все будет работать. Пока их не трогаем — у нас же еще термодатчик не впаян, корпус не собран, проводки от UARTа не отключены.
Занимаемся этими вопросами. Здесь есть нюанс, поскольку GPIO2 вывели, но в текущей схемотехнике датчиков не предусматривалось (наверное) — DS18B20 нужно подключать с подтягивающим резистором на 3,3k-4,7k. У меня в шнурке датчика красный — плюс питания, черный — минус питания, желтый — дата. Нужно между желтым и красным впаять резистор. На платке отлично вмещается smd резистор типоразмера 0805. Его и запаиваем. Отпаиваем USB-UART. Дальше в нижней части одной из половинок проделываем полукруглую прорезь под шнур. В другой половинке срезаем бортик. Прокладываем датчик через получившееся отверстие, скручиваем корпус.
Вот теперь втыкаем полностью собранное устройство в розетку, и идем по уже знакомому адресу в браузере. Открываем вкладку Rules, и копипастим туда мои правила:

Rules set 1
on DS#Температура>30.15 do
  if [key#switch]=1
  gpio,12,1
  else
  gpio,12,0
  endif
endon

on DS#Температура<25.4 do
  if [key#switch]=1
  gpio,12,0
  else
  gpio,12,0
  endif
endon

on key#switch do
    if [key#switch]=1
    gpio,13,0
    else
    gpio,13,1
    gpio,12,0
    endif
endon


Жмем Submit. Открываем Rules set 2 и копипастим туда другие правила.

Rules set 2
On System#Boot do
Publish %sysname%/Терморегулятор/Время,%systime%
Publish %sysname%/Терморегулятор/Температура,[DS#Температура]
  timerSet,1,30
endon

On Rules#Timer=1 do
Publish %sysname%/Терморегулятор/Время,%systime%
Publish %sysname%/Терморегулятор/Температура,[DS#Температура]
  timerSet,1,30
endon


Жмем Submit.

Возвращаемся на Rules set 1 и правим имена, если они отличаются от моих.

Здесь опишу логику, как это все работает, и покажу где в скриптах это указано.

  1. При нажатии кнопки — включается синий светодиод, который активирует автоматический режим. Если кнопку нажать еще раз — вся автоматика и нагрузка отключаются. Т.е. горит синий — работает автоматика, не горит — все отключено.
  2. В режиме автоматики задаем один порог и второй порог, по которому включаем / выключаем нагрузку. (термостат или холодильник не важно, есть четкие две границы, а что и когда делать решаем сами)
  3. Каждые 30сек шлем по MQTT текущую температуру.

Сейчас самое сложное (а может и нет) для понимания, особенно для тех, кто привык к многовложенной логике. Здесь такой нет. Здесь принцип проще и сложней одновременно. Есть событие, на которое реагируем ( on | endon ) и есть одноуровневое условие( if | else | endif ). Это правильней с точки зрения автоматики, но немного сложнее с точки зрения построения алгоритмов.

Порядок следования условий on|endon не имеет значения, грубо говоря они проверяются все одновременно, и если событие наступило — оно обрабатывается.
В этом кусочке:

on key#switch do
    if [key#switch]=1
    gpio,13,0
    else
    gpio,13,1
    gpio,12,0
    endif
endon


Событие — изменение состояния кнопки, имена key@switch взяты с закладки, где мы их задавали. Switch лучше не менять, кнопку можно обозвать по-русски.
Дальше условие — если кнопка включилась (изменила состояние с выкл на вкл) — то на gpio13 (синий светодиод) подаем низкий уровень (0, поскольку там инверсная логика). Иначе (кнопка изменила состояние с вкл на выкл) — тушим синий светодиод и ВЫКЛЮЧАЕМ реле (gpio12 управляется прямой логикой).
Т.е. здесь кнопкой мы включаем/выключаем светодиод, подсказывая автономное управление включено или выключено. В случае выключенного — еще и дополнительно отключаем нагрузку.

on DS#Температура>30.15 do
  if [key#switch]=1
  gpio,12,1
  else
  gpio,12,0
  endif
endon


Событие — температура на указанном датчике превысила указанную. Здесь есть нюанс — если вы в настройках датчика указали обновлять значение каждую секунду, то и реагирование на изменение будет каждую секунду. Если поставили опрос датчика 60сек, то и реагирование будет раз в 60сек (когда прилетят данные). Если за 60 сек температура уйдет на 200 градусов, то и увидим это через 200 градусов. Здесь просто нужно понимать как часто идет реагирование на событие — как только оно изменится, а изменится — как только переопросим датчик. Дальше проверяем условие — включен ли автоматический режим. И только если включен — подключаем нагрузку. Если не включен — отключаем нагрузку.

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

Вторая закладка правил (Rules set 2):
Активируемся при спервом тарте системы (On System#Boot do)
Пушим MQTT сообщения и взводим таймер-1 на 30 секунд (timerSet,1,30). Таймеров может быть до 8, каждый можно использовать откуда угодно.
Дальше ловим событие срабатывания таймера-1 (On Rules#Timer=1 do). Пушим MQTT сообщения и перевзводим таймер-1 на 30 сек ( timerSet,1,30). И дальше каждые 30 сек повторяем последнее действие.

Уфффф. Как то длинно получилось. Но надеюсь тем, кто захочит повторить будет гораздо проще и быстрее, чем прочитать этот текст.

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

Покупалось за свои и ковырялось тоже :)

Если есть интерес — распишу отдельно нюансы по двум другим железкам от Sonoff. И жду другую подобную компактную проходную розетку.

Посмотрю на чем основана, если будет смысл поковырять — напишу еще чего-нить. Со старта она тоже алексу и разные IFTTT поддерживает, но это же не наш путь ;)
Добавить в избранное +72 +113
свернуть развернуть
Комментарии (97)
RSS
+
avatar
0
Спасибо за внятную инструкцию. Есть в наличии старый ПК с компортом, достаточно будет его для перепрошивки без всяких переходников? Жду на днях прибытия Sonoff Basic и буду интегрировать в УД.
+
avatar
  • Dimon_
  • 07 августа 2018, 09:36
+3
ПК с компортом, достаточно будет его для перепрошивки без всяких переходников?
Нет. Категорически.
Стандартный настоящий честный com-порт — это уровни -12v для единицы и +12v для нуля.
И ардуина, и ESP будут выжжены моментально от таких уровней.
Поэтому только сопрягать. Элегантно — Max232, просто — кучка резисторов и транзисторов; выбор есть.
+
avatar
  • navyg
  • 07 августа 2018, 09:38
+1
Не рискуйте. У некоторых материнок бывает поддержка UART, но у большинства — только RS-232. Протокол как бы один, но уровень сигналов совсем разный. Более того, даже если мамка с UART, он, вероятнее всего, 5В. Сожжете долгожданную покупку.
+
avatar
  • p0gank
  • 07 августа 2018, 09:49
0
Недостаточно, пожгете плату :-) В ком-порте напряжение от +12 до -12 болтается, а Вам нужен TTL выход от 0 до 3.
+
avatar
0
Спасибо! А то бы спалил все. Придется через USB-RS232 переходник шить
+
avatar
  • GreySD
  • 07 августа 2018, 20:14
+2
Вам нужен USB-TTL 3.3V переходник. Категорически нельзя использовать RS232 переходник.
+
avatar
0
а какая цена у девайса?
+
avatar
0
на сайте производителя 9,5 долл + доставка ( заявлено 8,5 но это для китайской вилки. )
в магазинах можно найти за 10 с бесплатной доставкой.
+
avatar
0
а какая цена у девайса?
В районе $10, верно написали.
На ebay.
+
avatar
  • SERG27
  • 07 августа 2018, 06:44
+2
и это муйня на 8 листов что бы заменить термостат по рупь тридцать за ведро? :)
+
avatar
  • Gdemon
  • 07 августа 2018, 06:53
+4
Напомни, когда это то ведро термостатов научилось по mqtt балакать и скрипты выполнять? ;)
+
avatar
+2
а нахрена? вам разговаривать, или температуру держать?
Руп за ведро — тоже имеет право на жизнь.
Просто этот, за тот-же руп может и на влажность реагировать и на давление, на освещение. Да и выглядит неплохо.
+
avatar
+2
раз в 20 дороже, и без циферок
Если можно линк на термостат В КОРПУСЕ, с проходной розеткой и циферками за 10/20=0,5$ — ? Очень хочу взглянуть.
а нах? токма для пижонов.
Ошибка в слове пиТон :)
а для влажности. давления и освещения- есть другие за рупь- ведро.
Здесь проблема в том, что если весь зоопарк ввести в одно пространство, то крокодилы съедят антилоп, а бегемоты растопчат лягушек. А так все одинаковые ящерецы, только одна прикидывается улиткой, вторая гадюкой, а третья обезьяной. Но едят они все одно и то-же, и друг с дружкой не ссорятся.
+
avatar
  • SERG27
  • 07 августа 2018, 19:45
+4
здесь вообще цены нет, как и перехода в мегазин кнопочки. поэтому не могу оценить сие поделие. а термостат с циферками за недорого — пожалте.
ru.aliexpress.com/item/1PCS-W1209-DC-12V-heat-cool-temp-thermostat-temperature-control-switch-temperature-controller-thermometer-thermo-controller/32519582116.html

ну. а ручки и мозги… как уж бог распределил… :)
+
avatar
+2
здесь вообще цены нет
Не думал, что найти ее будет сложно.
Вот, $10.

а термостат с циферками за недорого — пожалте.
Добавьте корпус, БП, проходную розетку — и в указанные $10 не впишетесь.
Плюс получится узкоспециализированное устройство. Указанный Sonoff за полчаса при «ну. а ручки и мозги… как уж бог распределил… :)» может прикинуться антизависалкой или шлагбаумоподымалкой. Ваш вариант же, за те же $10 (после доработки) так и останется терморелюхой.
+
avatar
  • SERG27
  • 07 августа 2018, 20:18
0
Не думал, что найти ее будет сложно.
эта инфа должна быть в топике на первом месте. странно, что без цены вообще пропустили.
может прикинуться антизависалкой или шлагбаумоподымалкой.
а колбасой?
Добавьте корпус, БП, проходную розетку — и в указанные $10 не впишетесь.
если из золота- то да. :) а в двойник- тройник за 70рупий- элементарно. но для этого нужны ручки и мозги. :) и вообще не понимаю зачем ей корпус. можно встроить куда угодно.
+
avatar
+2
странно, без цены вообще пропустили.
На раздел, в котором опубликовано посмотрите :)
если из золота- то да.
Ну вот опять требую пруф. (Золотой корпус для термостата за $10) :)
+
avatar
  • Gdemon
  • 07 августа 2018, 06:51
+1
Судя по логике работы с кнопкой, она в этой розетке с фиксацией, а не тактовая. Правильно? Пропустил этот момент в тексте.
+
avatar
  • xuz
  • 07 августа 2018, 09:20
0
На фотках видно только тактовую кнопку.
+
avatar
  • Harwest
  • 07 августа 2018, 09:26
0
Судя по логике работы с кнопкой, она в этой розетке с фиксацией, а не тактовая
Нет, она тактовая, без фиксации.
+
avatar
+1
Хоть обновляется часто, но поддержки POW R2 нет
github.com/xoseperez/espurna/releases espurna-1.13.1-itead-sonoff-pow-r2.bin

поддержка появилась 2018-05-02, долго же вы писали пост)
+
avatar
0
долго же вы писали пост)
:))
+
avatar
  • Offi
  • 07 августа 2018, 08:01
+4
Прошитая розетка на Tasmota вроде работает отлично. Но… В какой-то момент стала щелкать реле каждые несколько секунд, причем питание не прерывалось (сам офигел, но так оно и было). При заходе в настройки оказалось, что к имени точки доступа добавилось 2 буквы «f». Какого черта — не знаю. После исправления снова все работает. Так что мне кажется, с этими высокими технологиями шанс сварить уху из рыбок становится выше нуля :-) Я бы добавил предохранительный тупой термостат (выключатель) на высокую температуру, дабы этого избежать.
+
avatar
  • Tresett
  • 07 августа 2018, 09:41
0
Прошивал такое-же устройство Тасмотовской прошивкой.
Неудобно, что подпаиваться понадобилось.
Прошил с первого раза, отлично работает уже больше месяца.
+
avatar
  • Offi
  • 07 августа 2018, 11:12
0
У меня тоже работала больше месяца нормально :-) В сумме уже прошло около полугода, один раз вот так расколбасило.
+
avatar
  • abyrwalg
  • 07 августа 2018, 20:34
0
да уж,
стала щелкать реле каждые несколько секунд, причем питание не прерывалось
поражает воображение в самую пятку;)
+
avatar
  • Offi
  • 07 августа 2018, 22:08
0
На всякий случай попробую дополнить… Внутри этой штуки, кроме реле, щелкать просто нечему. Как работает реле, я знаю. Поэтому обьяснить, почему при этом не пропадало питание (через этот выключатель у меня подключены 3д-принтер + малинка) — весьма тяжело. Единственный вариант — конденсаторы блока питания принтера (от него идет конвертор с 12 на 5 вольт на малинку) вытягивали эти краткосрочные выключения. Была бы включена печать — отрубился бы, наверное.
+
avatar
+1
к имени точки доступа добавилось 2 буквы «f». Какого черта — не знаю
Это, скорее всего, и есть проблемы вычитки. Внутри, наверное, такая-же глюкавая spi-ка.
+
avatar
0
а можно как-то реализовать запись лога температуры?
+
avatar
  • batal
  • 07 августа 2018, 08:42
0
Легко :) Например включаете отправку данных на thingspeak (есть в списке контроллеров выше) или на любой другой IOT агрегатор.

То есть прошивка поддерживает из коробки отправку данных в кучу мест. Нужно лишь выбрать и включить.
+
avatar
  • alex-br
  • 07 августа 2018, 09:00
+2
Нихрена себе танец с бубном.
+
avatar
0
есть модель Sonoff S22. Правда под китайскую вилку.
там уже предусмотрена возможность подключения датчиков температуры и влажности. Без перепрошивки
+
avatar
0
есть модель Sonoff S22
Без перепрошивки
Не, без перепрошивки не нужно :)
Без пайки, может быть имелось ввиду?
+
avatar
  • 2gusia
  • 07 августа 2018, 09:22
+3
Спасибо+. Много полезного, напр прекрасное сравнительное описание прошивок
+
avatar
  • Harwest
  • 07 августа 2018, 09:27
0
+ отл
в избранное
+
avatar
  • DeeZ
  • 07 августа 2018, 09:35
+1
поскольку переназначить GPIO в существующем выбранном модуле достаточно нетривиальная задача
Выбирайте Generic — там доступны все пины. и настраивайте как нужно. Это, кстаи позволяет без переепйки иметь 3-4 рабочих пина на Sonoff basic\dual, повесив на tx\rx отдельные датчики).



Ну и может кому пригодится код для Tasmota. Пришлось делать 3 правила, что бы при нажатии кнопки сохранялось состояние, не зависило от показателей датчика (до очередного перехода через границу срабатывания).
rule1 on DS18B20#Temperature>30 do backlog power 0; var1 0; var2 1; rule1 0; rule2 1 endon 
rule2 on DS18B20#Temperature<25 do backlog power 1; var1 1; var2 0; rule1 1; rule2 0 endon
rule3 on Power1#State do backlog rule1 %var1%; rule2 %var2% endon
+
avatar
0
там доступны все пины. и настраивайте как нужно.
На сколько помню, там нельзя выбрать датчик, который в POW R2 используется.
Но в целом Tasmota — тоже очень достойный вариант, здесь не спорю.
+
avatar
  • Dimon_
  • 07 августа 2018, 09:49
+12
Чёт подумалось… Чем дальше цивилизация, тем сложнее становятся элементарные задачи.

Наши деды, чтобы сделать термостат, ставили биметаллический переключатель и ващще не парились. Работает до сих пор, кое-где по полвека аптайм.
Наши отцы, чтобы сделать термостат, паяли кучку транзисторов и резисторов к терморезистору, и получали работоспосбность на десятки и десятки лет.
Я сам, не напрягаясь, термостат на атмеле делал за выходные. DS18B20 и семисегментники. С гистерезисом температуры и прочими плюшками. И логи получал в com-порт, всё записывалось и хранилось. Работает до сих пор и ничего изменять нет желания.
А теперь, прочитал этот многостраничный фундаментальный обзор и вот на философию потянуло… Куда-то по MQTT это надо наружу слать, интернет давать, к Wi-Fi подключать, с мобильников/из браузеров обращаться и конфиги этому прописывать… Не считая покупки самой железки. ЁмаЁ ©.

Нет, статья познавательная, безусловно. Много для себя почерпнул. И честный заслуженный плюс поставил.
Но что же будет ещё через пяток лет — даже подумать боязно. Как в «Ералаше», чтобы время на часах посмотреть, два чемодана с собой носить постоянно? :)
+
avatar
  • Bacchus
  • 07 августа 2018, 09:59
0
На самом деле это все делается весьма быстро :-)
+
avatar
  • Dimon_
  • 07 августа 2018, 10:06
+2
Да нет, я же это не в негативном ключе имел в виду. Ясное дело, что биметаллическое реле не шлёт свой статус и не отображает температуру в цифрах. И что при настроенном IDE собрать из исходников и прошить код в ESP — минутное дело. Но сама тенденция, конечно показательная. «Верховину» тридцать лет назад любой мальчишка перебирал возле дома — там всё было понятно, а вот писать собственные прошивки под АКПП сегодня вряд ли кто рискнёт. Наукоёмкость, — даже для элементарных вещей, типа выключателя на стене.
+
avatar
  • Bacchus
  • 07 августа 2018, 10:12
-1
Верховина это, конечно, хорошо. Но всегда приятно посмотреть, все ли у тебя выключатели выключены, какая вода в аквариуме, да и на улице. И многое другое, что можно сделать на копеечном ESP
+
avatar
+7
Вопрос только — нахрена?

Термостат должен держать выбранную температуру и быть максимально надёжным. Все эти свистоперделки — это не умный, а безумный дом.

Ну и коли очень хочется смотреть температуру, и выставлять ее дистанционно, то в нормальной архитектуре все бьётся на три автономных компонента:

1) то, что выполняет конкретную задачу + блок защит
2) то, что управляет
3) то, что снимает показания

А не все встраивается в одно. Ибо иначе это очень большая опасность, собранная в одной точке, а с подключением интернета это еще и становится потенциальной уязвимостью.
+
avatar
  • loole
  • 07 августа 2018, 10:50
+3
С момента своего появления эти приблуды остаются, в основном, уделом техномазохистов со странными и бессмысленными фантазиями типа
— Как хорошо подъезжая к дому включить смартфоном чайник.
Это примерно как спиннер — понять и простить…
+
avatar
  • Tresett
  • 07 августа 2018, 10:56
0
Ок. Тогда скажи как сделать предлагаемый тобою функционал на этом оборудовании?
+
avatar
0
На этом оборудовании — никак, ибо оно для решения данной задачи совершенно не подходит.

Край — из него можно сделать п2 или п3, но из гораздо эффективней сделать на другой базе.
+
avatar
  • mike888
  • 07 августа 2018, 12:23
+1
Угу, термостат биметалл делается и до сих пор, тупо, не особо точно регулируется, но надёжно и полностью защищено от взлома какерами малолетними)))
Дальше идёт контактный термометр, у меня это чудо техники отработало 10 лет в прошлом веке и лежит пока на полке, тоже надёжность, точность, но гистерезис не задать.
Ну всякого вида термосифоные термостаты, тоже надёжные.
Со всякими умными домами наигрался ещё когда их и не было, в 80х-90х прошлого века, сделал выводы. Ну его нафиг в ответственых местах, контрольные датчики с выходом в инет есть, а вот управление девайсами слишком стрёмно, ненадёжное это все. Да и не нужно в большинстве случаев. Тот же климат работает локально, один раз настроен и больше туда лезть незачем. а всякие чайники, утюги с вафлёй, для тех кому руки занять нечем. Люди уже стали рабами девайсов
+
avatar
+1
Термостат должен держать выбранную температуру и быть максимально надёжным. Все эти свистоперделки — это не умный, а безумный дом.
Абсолютно согласен, что в критически важное место эту свистоперделку ставить КАТЕГОРИЧЕСКИ ЗАПРЕЩЕНО.
Но с другой стороны — если подобная железяка будет включать свет во дворе по заходу солнца и отключать перед рассветом — что произойдет в случае несанкционированного поведения?
Ничего. Свет не включится, или включится не в тот момент.
Т.е. данное изделие пригодно для тех мест, где от его нестабильности не будет зависеть ничего.
Низкая цена и универсальность применения — это козырь продукции Sonoff.
esp8266 глючная железка, с закрытым SDK и намеренной сверлежкой дыры в spi flash. Но за цену готового изделия в $10 требовать надежности промышленного устройства — минимум неоправданно. А для некритических задач — пригодно. Сломается можно выкинуть и новую поставить.
+
avatar
  • Bacchus
  • 07 августа 2018, 20:08
+1
Реле на ESP вполне можно собрать рублей за 200
+
avatar
+1
Реле на ESP вполне можно собрать рублей за 200
Добавьте туда БП, корпус и проходную розетку — врядли в $10 впишитесь, с аналогичным эстетическим результатом.
+
avatar
  • Bacchus
  • 07 августа 2018, 20:31
0
ESP 100 рублей, 150 рублей корпус с проходной розеткой, 30 рублей БП. Ну и еще на полтос рассыпухи.
Это чтобы культурно все было
+
avatar
+2
Это чтобы культурно все было
Визуально сравним результат? :)
Кстати, в полтос плату и реле тоже вписали? или на макетке, но сэкономив 150 рупий?
+
avatar
  • Bacchus
  • 07 августа 2018, 20:50
0
Я за 150 покупал таймеры мерленовские.
Реле 20, плата 10 :-)
+
avatar
0
Я за ...
Я ж не против. Если знаете железку с аналогичным функционалом, но дешевле $10 — засветите ее здесь. Мне не попадалась. Не думаю, что плохо искал.
Реле 20, плата 10
Где ж такие цены бывают на единичные позиции?
+
avatar
  • Bacchus
  • 07 августа 2018, 21:11
0
На единчные нет, конечно, Но вообще текстолит недорогой
+
avatar
0
На единчные нет, конечно,
Ну так я о том-же. $10 за готовое изделие в единичном экземпляре и с бесплатной доставкой. Куда здесь экономить (и главное — с какой целью)?
+
avatar
  • Bacchus
  • 07 августа 2018, 21:31
0
да я не спорю, что за 10 баков почти готовое устройство — очень неплохо
+
avatar
  • abyrwalg
  • 07 августа 2018, 20:27
0
оно будет называться Sonoff basic?))

(если всё придётся покупать, то не получится уложиться в $3)
+
avatar
0
оно будет называться Sonoff basic?))
Не, его верное название «Sonoff basic в акцию» :))
+
avatar
0
Реально? Для включения / отключения света по времени /освещённости вифи и проц 32 разрядный?
Остановите этот мир, я сойду… *facepalm*
+
avatar
0
вифи и проц 32 разрядный?
Если он дешевле рассыпухи, то почему нет?
Даже если чуток дороже — то почему нет?
Если разговор о промышленном производстве систем автоматизации — то, возможно, и нет. А если для домашних помощников — то здесь решает цена, затраченное время и гибкость использования.
+
avatar
  • Bacchus
  • 07 августа 2018, 21:14
0
если этот проц стоит 100 рублей, то почему бы и нет?
+
avatar
0
Вообще (по-секрету) если не для дяди, а для себя — то решает не цена, а надёжность и чёткость решения задачи.

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

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

Поймите, я за прогресс, но каждому инструменту свое место, а иначе как раз и получается безумный дом.

У одного известного человека, который рассказывал про иот, была такая фраза "Умный дом, это не дом, где можно из машины по телефону включить свет и подогреть чай, умный дом — это дом, войдя в который свет будет гореть там, где нужно, а чай уже будет подогрет".
+
avatar
0
Вообще (по-секрету) если не для дяди, а для себя — то решает не цена, а надёжность и чёткость решения задачи.
Вообще-то (по секрету) Вы уже сами себе ответили :)
каждому инструменту свое место
На контроль атомной станции я esp не додумаюсь ставить, в принципе.
А для включения/выключения света по расписанию и кормежки рыбок с отключением помпы — поставил, и здесь надежность не решающий фактор.
Умный дом на esp — «это фантастика», причем в негативном смысле. Но мелкая некритичная автоматика за дешево — вполне.
+
avatar
  • Dimon_
  • 08 августа 2018, 01:35
0
что произойдет в случае несанкционированного поведения?
Ничего.
Произойдет то, что эта железяка станет элементом ботнета.
+
avatar
0
эта железяка станет элементом ботнета
Для этого к ней нужен, как минимум, доступ из-вне.
+
avatar
  • Dimon_
  • 08 августа 2018, 08:55
0
… и прошивка с закрытым кодом, в которой неизвестно что, но, допустим, точно умеющее строить mesh.
Вы верите, что в подобном нет бэкдоров?
Просто вот в каждой китайской IP-камере они точно есть, неоднократно убеждались, в т.ч. и на этом ресурсе.
+
avatar
0
… и прошивка с закрытым кодом
С открытым. Компилируйте сами и шейте. В чем проблема то?
+
avatar
  • yuryvrn
  • 07 августа 2018, 14:45
-1
Чем дальше цивилизация, тем сложнее становятся элементарные задачи…
прочитал этот многостраничный фундаментальный обзор и вот на философию потянуло…
+
avatar
0
Чем дальше цивилизация, тем сложнее становятся элементарные задачи.
Раньше лошадью тоже проще было управлять, затем авто — гораздо сложнее. Через пару лет управление авто будет, как когда-то лошадью (автопилот). Но в лошади электроники для этого было гораздо меньше, чем в Тесле :)
+
avatar
  • DrBOBAH
  • 07 августа 2018, 10:52
0
я не вникаю зачем это. DS18B20 подпаял. Перепрошил на 1М смартфон и вперед.
+
avatar
  • Dimon_
  • 07 августа 2018, 11:55
0
Перепрошил на 1М смартфон и вперед.
Там же нет веб-морды. В ряде случаев (и именно для термостата) софт на мобильнике — неприемлемое решение.
+
avatar
  • DrBOBAH
  • 07 августа 2018, 14:46
0
не совсем понял. а приложение не считается для мобильника?
+
avatar
  • Dimon_
  • 07 августа 2018, 14:53
+1
Веб-интрефейс — это то, что можно увидеть в браузере. Приложение на мобильнике — это то, что внутри мобильника.

Веб-интрефейс не зависит от выбора архитектуры железа, на котором он просматривается, не зависит от платформы, на которой он просматривается, не зависит от браузера, которым он просматривается и не зависит от количества клиентов, которыми он просматривается.

Приложение в мобильнике пишется только под конкретную платформу и устанавливается внутри конкретного мобильника.

В ряде случаев (и, в частности, при реализации «умного» термостата) отсутствие веб-интерфейса — минус, перечёркивающий все плюсы и управление только через приложение на мобильнике — неприемлемое решение.
+
avatar
0
Перепрошил на 1М смартфон и вперед.
В тексте писал, почему 1M меня не устроила.
+
avatar
  • pet80
  • 07 августа 2018, 13:50
0
Если за 60 сек температура уйдет на 200 градусов, то и увидим это через 200 градусов.
Таки может через 60 сек?
Для интересующихся конкретными применениями — был такой обзор.
+
avatar
0
Я тоже использую ESPEasy для контроля влажности и управления вентилятором. А второй вентилятор просто по времени. Софт превосходный. Помимо своей веб-морды умеет связь с хабами. У меня с domoticz.

У меня только один вопрос, а кто-нибудь видел esp и реле на плате такого размера, чтобы плата влезла в коробку розетки/выключателя?
+
avatar
0
У меня только один вопрос, а кто-нибудь видел esp и реле на плате такого размера, чтобы плата влезла в коробку розетки/выключателя?
Выше описывал ESPurna — у них есть и свои железки, как раз в подрозетник входят. У китайцев нормально сделанных не встречал.
+
avatar
  • Bacchus
  • 07 августа 2018, 19:32
0
Не лезет. БП никак. Если только заглубляться
+
avatar
0
По идее модель EXS Wifi Relay v3.1 влезет даже в стандартный подрозетник. Тем, у которых два реле нужен (скорее всего) квадратный, с кругленными углами, увеличенной глубины. Сейчас их часто используют.
+
avatar
0
почему из всех прошивок вы выбрали ESP8266 Mega с закрытым исходным кодом?
+
avatar
0
почему из всех прошивок вы выбрали ESP8266 Mega с закрытым исходным кодом?
Из всех я выбрал ESPEasy, Mega только в аквариуме. Но работает очень стабильно (пока). А c ab-logовскими железками возился некоторое время назад довольно плотно. Подход Андрея очень правильный. А насчет закрытого кода — можете предложить их api с открытыми исходниками для esp или rtl — ?
+
avatar
  • Bacchus
  • 07 августа 2018, 19:43
0
А разве мега с закрытым кодом?
а это что?
github.com/letscontrolit/ESPEasy/releases
+
avatar
0
спасибо. посомтрел код ESPEasy. Жесть. Пихать html страницы в WebStaticData.h — это сильно. Для этого существует spiffs.

правильно сделано у третьякова — все html отдельными файлами и запакованны в gz. если надо изменть стиль страницы или html файл не надо копаться в огромном *.h файле
+
avatar
0
Для этого существует spiffs.
spiffs в ESPEasy существует для хранения конфигов. Что в их концепции очень оправдано. Достучаться до туда можно сразу из web-а

правильно сделано у третьякова
Не забываем, что у него динамически изменяемый интерфейс (добавление/убирание пунктов в динамике). В ESPEasy этого не нужно.
Но подход Третякова мне понравился, я об этом написал. Просто плохо то, что у него запал прогорает…
+
avatar
0
динамику можно сделать и через *.h. потому что динамика выполняется на стороне клиента, в нашем случае в браузере с помощью JavaScript. которыйтоже будет грузиться через *.h

просто хранить html, css, js в *.h идеологический неверно. если нужно поменять катринку или добавить убрать элемент придется ковырять *.h, пересобирать всю прошивку. с файлами в spiffs такого не будет. их можно менять на лету если добавить html страницу со встроенным редактором или заливать через tool не трогая прошивку.
+
avatar
0
просто хранить html, css, js в *.h идеологический неверно.
Зависит от идеологии.
если нужно поменять катринку или добавить убрать элемент
Я же написал — в данном проекте (ESPEasy) вмешательство в интерфейс не поддерживается, хотя и не запрещено. Здесь концептуальный подход, как у Андрея из ab-log.ru. Интерфейс — для настройки, но с возможностью минимально удобного управления, а основная механика — на стороне сервера, где и рисуются необходимые интерфейсы. У Третьякова, же, подход другой — там допускается полноценная работа в бессерверном режиме, соответственно и подход к отрисовке элементов управления другой.
+
avatar
  • abyrwalg
  • 07 августа 2018, 20:20
0
для аквариума это ±бессмысленно^, но видимо нормальное pid-регулирование вообще при такой идеологии и синтаксисе «конструктора» нельзя завести?

ps у вас в Rules set 1
не слишком много «12, 0»?)


^ косвенно можно будет например определять, что воды поубавилось;)
+
avatar
0
для аквариума это ±бессмысленно^
Нет, у меня все просто — переделанный Sonoff TH16 с двумя твердотельными каналами и родной релюхой. Плюс две кнопки и термометр.
Свет включается/выключается по времени. Второй канал на помпу. Реле просто клацает, когда кормежка и помпа отключена. Но ничего не мешает подключить к нему обогреватель на 2кВт и сварить рыбок к моменту прихода :)
ps у вас в Rules set 1
не слишком много «12, 0»?)
В этом правиле указано только то, что GPIO12 нужно отключить (реле с нагрузкой).
но видимо нормальное pid-регулирование вообще при такой идеологии и синтаксисе «конструктора» нельзя завести?
pid врядли, pwm легко. Но релюху нужно будет заменять чемто другим, либо использовать дополнительные выводы.
Для pid есть в проекте WiFi-IoT схема отдельного модуля на тиньке, который можно по квадратной шине подключить и управлять нагрузкой.
+
avatar
  • Yusff
  • 07 августа 2018, 23:10
0
По-моему все эти MiHom-ы, Sonoff-ы и ESP-шки со стандартными прошивками поле непаханое для школоло-хакеров.
+
avatar
0
Чем в таком решении обеспечивается логирование? Самой ESP-хой?
А разнести датчик температуры и исполнительное реле можно?
У меня в теплице стоит датчик температуры, который дистанционно запускает котёл, находящийся в соседнем строении.
Давно используется такое, совсем не бюджетное решение:
ru.aliexpress.com/store/product/868MHz-Wireless-Boiler-room-remote-Controller-wifi-digital-Thermostat-home-Floor-Heating-controller-16A-current-with/1986435_32698488668.html
И всё боль-мень работает, но логирование было только в самых первых версиях совсем глючного софта. А в сносно работающем софте логирования нет. Потому и ищу разумную замену.
+
avatar
0
Чем в таком решении обеспечивается логирование?
Внешним миром. В моем случае это iobroker.net (сервер развернут у себя в локальной сети, в мир никого не выпускаю)

У меня в теплице стоит датчик температуры, который дистанционно запускает котёл, находящийся в соседнем строении.
Чуть позже думал рассказать, как из подобной железки сделать термоконтроль для котла.

Но в целом — если есть серверная часть (iobroker замечательно живет на практически любом железе), то можно сделать все.
Вот пример суточного поведения напряжения в моей сети, построенное в реалтайме по данным, которые хранятся в базе данных (настраивается все очень просто). Выборку можно сделать любой глубины, с усреднениями, без усреднений.


Вот температура воды в аквариуме и температура на чердаке. Видно момент долива воды в аквариум. Уход в 0 — это ошибочное чтение.


Т.е. во всех случаях датчики температуры, исполнительные устройства и система логгирования находятся в разных местах, но работают совместно.
+
avatar
0
Да, спасибо, примерно то, что нужно. А не пнёте в нужном направлении, где посмотреть как это делается?
+
avatar
0
А не пнёте в нужном направлении, где посмотреть как это делается?
Через недельку (зависит от того, когда придут) думаю описать.
Удаленные датчики нормально и без сервера работают в первом проекте (WiFi-ioT) Virtual SENS. Логи можно собирать на удаленных площадках, которые поддерживает тот проект (Thingspeak.com, FlyMon.net).
Если развернете MQTT брокер у себя (на роутерном железе можно минимальный mosquitto завести) то можно по MQTT отдавать данные туда. Но на роутерном железе это все не очень интересно. На малинке — удобней, особенно если логи писать на HDD.
Лично я остановился на iobroker, который поднят на виртуальной машине, параллельно с другими. Ресурсов отнимает минимум, а возможности достаточно большие.
+
avatar
0
Мой интерес подготовительно-теоретический. Неделя точно ждётся :)
Спасибо за интересные материалы.

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