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

Запоминание чего-либо в на случай потери питания

PeterPK

Active member
В родной прошивке eWeLink есть опция как вести себя реле по восстановлению питания. Там три варианта:
- выкл
- вкл
- последнее состояние

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

А что наши Переменные? Они всегда сбрасываются в NaN после восстановления питания или только если прошивка поменялась?
Поскольку я все переменные в своем сценарии на старте иничу в 0, то я на это даже и не обращал внимание.
Но тут возникла необходимость хранить в одной из переменных статус системы (положение клапана), чтобы по потери питания знать что происходило до этого.
Естественно, если менялась прошивка или сценарий, то все переменные должны уходить в NaN, а вот по потери питания как происходит?
 

valeraba

Moderator
Команда форума
В прошивке роллет есть запоминание последнего положения роллет. Но там своя логика, которая записывает параметр как можно реже (через одну минуту, после прекращения движения).
В esp8266 нельзя flash постоянно переписывать, её ресурс ограничен 100000 перезаписей. Если переписывать flash раз в секунду, то её хватит только на одни сутки.
 

PeterPK

Active member
В прошивке роллет есть запоминание последнего положения роллет. Но там своя логика, которая записывает параметр как можно реже (через одну минуту, после прекращения движения).
В esp8266 нельзя flash постоянно переписывать, её ресурс ограничен 100000 перезаписей. Если переписывать flash раз в секунду, то её хватит только на одни сутки.
Интересующая меня переменная меняется 2 раза в день и только когда тепло (летом). То есть примерно 200 раз в год. На 500 лет хватит. Но если нет такой опции, то ничего не поделать.

А еще пара дурацких вопросов. Только не ржать.
Параметры - они только для чтения? Устройство не может записать что-то в свои параметры или в чужие?
Параметры то как я понимаю хранятся на сервере.

А в чужие переменные нельзя писать?
 

glory24

Member
Только не ржать.
И не подумаю :)
Параметры - они только для чтения? Устройство не может записать что-то в свои параметры или в чужие?
Параметры то как я понимаю хранятся на сервере.

А в чужие переменные нельзя писать?
Лучше задачу опишите, а мы подумает как ее лучше решить.
Устройство не может записать что-то в свои параметры или в чужие?
Устройство может использовать "чужие" параметры или "чужие" переменные.
Этого, обычно бывает, достаточно.
 

valeraba

Moderator
Команда форума
Интересующая меня переменная меняется 2 раза в день и только когда тепло (летом). То есть примерно 200 раз в год. На 500 лет хватит. Но если нет такой опции, то ничего не поделать.

А еще пара дурацких вопросов. Только не ржать.
Параметры - они только для чтения? Устройство не может записать что-то в свои параметры или в чужие?
Параметры то как я понимаю хранятся на сервере.

А в чужие переменные нельзя писать?
Сервер не принимает никакого участия в логике работы устройств. Сервер отвечает только за коммуникацию, то есть за обмен данными между устройствами и панелями управления. А также сервер сохраняет исторические данные. Таким образом устроено горячее резервирование, при котором устройства могут мгновенно переключаться с облачного сервера на локальный raspberry и наоборот. Устройствам без разницы с каким сервером работать, они его используют только как broker (посредник).
Устройство имеет список именованных "сигналов". Также устройствам доступны все "сигналы" удалённых устройств.
Как правило в моих прошивках, названия "сигналов" носят смысловую нагрузку:
1) Сигналы с названием "Параметры" хранятся в постоянной памяти, но их нельзя записывать из сценария, чтобы не убить flash.
2) Сигналы с названием "Переменные" хранятся в оперативной памяти, поэтому их можно записывать из сценария.

Запись в "Переменные" удалённых устройств из сценария я не разрешаю (это была бы очень запутанная логика).
 

nikolz

Well-known member
В родной прошивке eWeLink есть опция как вести себя реле по восстановлению питания. Там три варианта:
- выкл
- вкл
- последнее состояние

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

А что наши Переменные? Они всегда сбрасываются в NaN после восстановления питания или только если прошивка поменялась?
Поскольку я все переменные в своем сценарии на старте иничу в 0, то я на это даже и не обращал внимание.
Но тут возникла необходимость хранить в одной из переменных статус системы (положение клапана), чтобы по потери питания знать что происходило до этого.
Естественно, если менялась прошивка или сценарий, то все переменные должны уходить в NaN, а вот по потери питания как происходит?
когда включаем питание либо оно появилось после пропадания, то ESP всегда начинает исполнять программу с самого начала.
Т е все рассчитывается как в первый раз за исключением настроек для WiFi которые сохраняются во флеш автоматом.
Поэтому сохранять какие-либо значения на следующее включение как правила лишено смысла.
Как Вы полагаете, если питание пропало, то в каком состоянии будет обесточенное Ваше реле?
Да и вся электроника?
 

nikolz

Well-known member
Другое дело - режим сна у ESP
При выходе из него ESP начнет с первой команды. Но вся электроника при этом не выключалась и поэтому важно чтобы
параметры настройки сохранились. Для этого используют RAM в RTC ESP. В нее можно записывать вечно и читается она быстро.
 

PeterPK

Active member
когда включаем питание либо оно появилось после пропадания, то ESP всегда начинает исполнять программу с самого начала.
Т е все рассчитывается как в первый раз за исключением настроек для WiFi которые сохраняются во флеш автоматом.
Поэтому сохранять какие-либо значения на следующее включение как правила лишено смысла.
Чаще всего да. Но есть случаи когда это полезно - именно поэтому такая опция и появилась в настройках eWeLink.

Как Вы полагаете, если питание пропало, то в каком состоянии будет обесточенное Ваше реле?
Да и вся электроника?
Когда питания нет - положение реле неважно, все равно все обесточено.
А вот когда питание появится - в некоторых случаях важно чтобы сценарий знал в какой позе все умерло.
Например положение роллет, ворот или клапана под управлением шагового двигателя.
 

nikolz

Well-known member
Чаще всего да. Но есть случаи когда это полезно - именно поэтому такая опция и появилась в настройках eWeLink.


Когда питания нет - положение реле неважно, все равно все обесточено.
А вот когда питание появится - в некоторых случаях важно чтобы сценарий знал в какой позе все умерло.
Например положение роллет, ворот или клапана под управлением шагового двигателя.
А вот когда питания не было, то Вы ворота закрыли.
А питание появилось и ESP продолжает их закрывать пока Ваш двигатель не сгорит.
Чтобы такого не было ставят обратную связь чтобы не тупо помнить переменную а знать какое на самом деле состояние исполнительных механизмов.
 

PeterPK

Active member
А вот когда питания не было, то Вы ворота закрыли.
А питание появилось и ESP продолжает их закрывать пока Ваш двигатель не сгорит.
Чтобы такого не было ставят обратную связь чтобы не тупо помнить переменную а знать какое на самом деле состояние исполнительных механизмов.
А что вы такой агрессивный? У вас какие-то проблемы? Так лучше ими займитесь, а не хамите старшим в интернетах.

P.S. Обратную связь в моем конкретном случае сделать сложно. Никто клапан при отсутствии питания поворачивать не будет - потому как ручки нет и котел все равно не работает.
 

glory24

Member
А питание появилось и ESP продолжает их закрывать пока Ваш двигатель не сгорит.
На приводе ворот стоят концевики крайних положений, так что сгореть ничего не должно.
Что касается обратной связи, то она в планах есть, только пока еще не реализована.
 
Сверху Снизу