- Сценарий с температурой работает некорректно. #143
- Comments
- multysea commented Jan 20, 2019 •
- renat2985 commented Jan 21, 2019 •
- multysea commented Jan 21, 2019
- Egor2101 commented Jan 21, 2019
- Egor2101 commented Jan 21, 2019
- multysea commented Jan 21, 2019
- multysea commented Jan 21, 2019
- multysea commented Jan 21, 2019
- renat2985 commented Jan 21, 2019
- multiminik commented Jan 21, 2019
- multysea commented Jan 21, 2019
- multiminik commented Jan 21, 2019 •
- Egor2101 commented Jan 28, 2019
- multysea commented Feb 6, 2019 •
- mikemdr commented Feb 14, 2019 •
- mikemdr commented Feb 14, 2019
- mikemdr commented Feb 14, 2019
Сценарий с температурой работает некорректно. #143
Comments
multysea commented Jan 20, 2019 •
Создал простенький сценарий, если температура меньше 23 — включить реле, если больше 25 — выключить. Но, после снижения температуры до 23 реле включилось, а после повышения до более , чем 25 так и не выключилось. Причем если отключить реле вручную, то при снижении до нижнего порога оно включается. Почему так?
The text was updated successfully, but these errors were encountered:
renat2985 commented Jan 21, 2019 •
После добавления сценария связанного с Тимпературой, Влажностью или Аналоговым выходом нужно перезагружать ESP. Это баг, скоро исправим.
multysea commented Jan 21, 2019
Естественно, что я перезагружал, и не только софт-ресетом, но и хард. И все равно, при понижении включается, при повышении не выключается. Может ли это быть связано с тем, что на это реле у меня есть еще и кнопка?
Egor2101 commented Jan 21, 2019
У меня стабильная прошивка. На реле кнопка + сценарий. Все работает штатно.
Egor2101 commented Jan 21, 2019
На графике температуры у вас отображаются три линии?
multysea commented Jan 21, 2019
Да, три, средняя — движется, в соответствии с изменением температуры..
multysea commented Jan 21, 2019
У меня на этом модуле также стабильная прошивка и на реле кнопка и сценарий. Сценарий переклбчает кнопку в положение «включено» при понижении температуры, но не переключает в «выключено» при повышении.
multysea commented Jan 21, 2019
А может все же кто-то что-то посоветовать:-)? Кроме перезагрузки модуля, ее я изначально делал..
renat2985 commented Jan 21, 2019
@multysea скорее всего вы что-то не так подключили. Если у других все работает.
multiminik commented Jan 21, 2019
А может все же кто-то что-то посоветовать:-)? Кроме перезагрузки модуля, ее я изначально делал..
У вас пин подключенный к кнопке шунтирован через резистор к земле, либо питанию?
multysea commented Jan 21, 2019
Физической кнопки нет, только виртуальная, в интерфейсе
multiminik commented Jan 21, 2019 •
Виртуальная кнопка настроена через TACH? И я так понимаю, по умолчанию там прописан, в качестве пина, «gpio0» (то есть значение по умолчанию в конфигурации)? Если этот пин не привязан к плюсу питания через резистор в 10кОм, то на нём висит положительный потенциал — равный половине питания (1.65В). Т.е. пин не сконфигурирован должным образом. Отсюда и может появлятся проблема с вашей кнопкой. Также модуль при включении может не входить в рабочий режим, а уходить в режим прошивки при определенных условиях.
Egor2101 commented Jan 28, 2019
Сценарий по влажности и температуре на am2301 работал штатно. Подключил ds18b20 . На главной странице есть график и три линии. Но сценарий молчит. При нажатии кнопки управление график не отображается, а шкала температуры от 0 до 1.
multysea commented Feb 6, 2019 •
Большая просьба, все же, кому-то из разработчиков ответить в этой теме? Сценарии не работают! Датчик 18b20, и даже резистор между gpio0 и плюсом, как тут советовали, повесил. Все включено правильно, в трех проводах сложно напетлять. Сценарий не работает, виртуальные кнопки работают, реле переключаются. В сценарии — если температура меньше 25 — включить реле, если больше 29 — выключить. Прошивка стабильная. Модуль сам по себе не перегружается и в режим flash не входит, температуры с DHT11 и 18b20 и влажность с DHT11 показывает, линий на графике температуры c 18b20 — три.
Дополню. После выключения на длительное время и последующего включения начинает работать только первая задача сценария, если температура при включении модуля ниже порога, то реле включается, и его нельзя выключить даже кнопкой. А при повышении температуры до верхнего порога реле не выключается, но кнопкой его становится возможным выключить. И последнее, если включить модуль в то время как температура выше верхнего порога реле не включается. После охлаждения датчика — включается, но при нагреве до верхнего порога — не выключается. Много букв, но может быть это поможет лучше понять, что происходит и дать какие-то рекомендации?
mikemdr commented Feb 14, 2019 •
Решил проверить (чуть изменив исходник Scenary.ino) сценарий по-температуре (исходник — последний стабильный, 8266Core 2.3.0, т.к. на >2.3.0 в данном коде некорректно работает обновление по NTP)
` void orCommand() <
String Name = readArgsString(); // Какой параметр проверяем
String Condition = readArgsString(); // Операция
String Volume = readArgsString(); // Значение параметра
String test = getStatus(Name); // получить текущее значение параметра
`
и вот что на выходе (у меня задано два сценария: «>27.00″ » 27 // 1-ый Сценарий
Volume 27 // заданная температура
Volume.toFloat() 27.00
test 27 // текущая температура из orCommand()[(test = getStatus(Name))]. А не 27.12.
test.toFloat() 27.00
thenOk = 0 // т.к. сравнивается 27.00>27.00, а не 27.12>27.00 , то команды на выполнение НЕ будет
temperature1(= 27 ) 27
Volume 27
Volume.toFloat() 27.00
test 26
test.toFloat() 26.00
thenOk = 0
temperature1(= 26 ) » использовать «>=» .
mikemdr commented Feb 14, 2019
если температура при включении модуля ниже порога, то реле включается, и его нельзя выключить даже кнопкой.
И, т.к. проверка кнопки идёт первой, то сначала подаётся команда на выключение, а через несколько микросекунд сценарий по температуре подаёт команду на включение.
Попробуйте поставить Сценарий-По-Кнопке последним.
P.S. Я несколько раз перешивал модуль (с предыдущей версией), думая что модуль глючит, т.к. он при нажатии кнопки выключался и тут-же включался, пока не понял, что если модуль включился по таймеру, то его можно выключить только отключив таймер .
mikemdr commented Feb 14, 2019
Ошибка возникала из-за того, что есть 3 функции:
boolean sendStatus(String Name, String volume) <>
boolean sendStatus(String Name, int volume) <>
boolean sendStatusF(String Name, float volume) <>.
У авторов:
flag = sendStatus(value, getStatusFloat(value));
а должно быть :
flag = sendStatusF(value, getStatusFloat(value));
иначе float getStatusFloat(value) интерпретировалась как int и записывалась только целая часть.
Источник