ESPEasy

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ilfat
Сообщения: 44
Зарегистрирован: Пт июн 07, 2019 7:40 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: ESPEasy

Сообщение Ilfat » Пн июн 15, 2020 9:10 am

Divan писал(а):
Вс май 24, 2020 1:35 am
Все мои попытки залить прошивку на ESP32 Dev Module безуспешны, в итоге получил такую ошибку A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header. Что делать, если появилась ошибка?
При прошивке модулей ESP-01 и ESP-12 заметил, что их прошивка отличается режимом записи SPI-Mode DIO/DOUT
Обрати на это внимание.
Аватара пользователя
ebramariys
Сообщения: 34
Зарегистрирован: Вс апр 15, 2018 1:26 pm
Откуда: Харьков
Благодарил (а): 18 раз
Поблагодарили: 3 раза

Re: ESPEasy

Сообщение ebramariys » Вт июн 30, 2020 7:56 pm

Ilfat писал(а):
Пн июн 15, 2020 9:04 am
ebramariys писал(а):
Ср май 27, 2020 10:29 pm
Привет! Не у кого не было,что рабочее правило не отрабатывается технически,хотя в логере показывает,что правило отработало?
Такого не было. Можно по подробней, что за правило, что делает и что в логах
Правило включает реле и переустанавливает таймер,в зависимости от того ,какой из датчиков и как сработал.
СпойлерПоказать
on vanna_dvig#dvig=1 do
gpio,14,0
gpio,12,0
timerSet,1,20600
endon

on vanna_dveri#dveri=1 do
gpio,14,0
gpio,12,0
timerSet,1,600
endon

on vanna_dveri#dveri=0 do
timerSet,1,600
endon


On Rules#Timer=1 do
gpio,14,1
gpio,12,1
endon
В отладку при этом пишется ,что все отработало как надо,значения в таймере заменились как надо.При этом реле вырубается все равно через 600 ,а не 20600.
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: ESPEasy

Сообщение Jilber » Чт авг 27, 2020 11:14 pm

Подскажите как привести к нормальному виду Uptime, выдаваемый ESPEasy ?
Uptime.jpg
Uptime.jpg (3.84 КБ) 4310 просмотров
Сделал метод, выполняемый при обновлении свойства Uptime:

Код: Выделить всё

$this->setProperty('UptimeTXT', date('H ч i м', mktime(0, $this->getProperty('Uptime'))));
Вроде работает, но пишет только часы и минуты. Как бы добавить туда ещё и кол-во дней ? Не хочется использовать для этого ещё и веб-переменные.

И второй вопрос: в последнее время уже на 2 устройствах (Sonoff Basic и Wemos D1 mini) вдруг перестал грузиться web-интерфейс. Реле управляются, информация с датчиков приходит, но в интерфейс не зайдёшь. Страница не грузится как будто устройства с таким IP просто нет. Sonoff заново перепрошил - пока работает, а Wemos после перепрошивки буквально день поработал и теперь опять не грузится. Ни у кого не было ничего подобного ?
zoz
Сообщения: 74
Зарегистрирован: Чт авг 11, 2016 1:19 am
Откуда: Киев
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: ESPEasy

Сообщение zoz » Чт сен 17, 2020 10:31 pm

Jilber писал(а):
Чт авг 27, 2020 11:14 pm
Подскажите как привести к нормальному виду Uptime, выдаваемый ESPEasy ?
Uptime.jpg
Сделал метод, выполняемый при обновлении свойства Uptime:

Код: Выделить всё

$this->setProperty('UptimeTXT', date('H ч i м', mktime(0, $this->getProperty('Uptime'))));
Вроде работает, но пишет только часы и минуты. Как бы добавить туда ещё и кол-во дней ? Не хочется использовать для этого ещё и веб-переменные.

И второй вопрос: в последнее время уже на 2 устройствах (Sonoff Basic и Wemos D1 mini) вдруг перестал грузиться web-интерфейс. Реле управляются, информация с датчиков приходит, но в интерфейс не зайдёшь. Страница не грузится как будто устройства с таким IP просто нет. Sonoff заново перепрошил - пока работает, а Wemos после перепрошивки буквально день поработал и теперь опять не грузится. Ни у кого не было ничего подобного ?
у меня на просчет Аптайма системы вот так сделано (по входу секунды):

Код: Выделить всё

$time = gg('ThisComputer.Uptime');
$CpuUptm = sprintf('%03d d - %02d:%02d:%02d',$time/86400, (($time/3600) % 24), ($time % 3600)/60, ($time % 3600) % 60); 
setGlobal('ThisComputer.Uptm',$CpuUptm);
Максимум 999 дней, но я еще него не достигал) можно применить для esp. Только для минут надо поправить или умножить на 60 по входу)

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

И мой вопрос тоже имеется:
как правильно настраивать прошивку для реле с инверсированным входом (ON=0)?
Дело в том что инверсия в настройках свича дает только инверсию параметра state a gpio оставляет.
пример: relay14/State,1 = gpio/14,0. и это не позволяет корректно им управлять.

Нашел выход не использовать инвертирование в свиче, а инвертировать прямо в MD mqtt модуле при получении и отправке добавил Replace list: 1=0, 0=1

Но может есть вариант как это сделать на уровне EPS и прошивки? Можно ли управлять не gpio
а реле, или включить инвертирование значений на уровне gpio?
За это сообщение автора zoz поблагодарил:
Jilber (Сб сен 19, 2020 7:39 pm)
Рейтинг: 1.16%
Домик Алисы - Orange Pi PC, DietPi | +BroadlinkRM+esp8266(espEasy)+zigbee(sonoff,Aqara)
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: ESPEasy

Сообщение Jilber » Сб сен 19, 2020 3:54 pm

zoz писал(а):
Чт сен 17, 2020 10:31 pm
у меня на просчет Аптайма системы вот так сделано (по входу секунды):

Код: Выделить всё

$time = gg('ThisComputer.Uptime');
$CpuUptm = sprintf('%03d d - %02d:%02d:%02d',$time/86400, (($time/3600) % 24), ($time % 3600)/60, ($time % 3600) % 60); 
setGlobal('ThisComputer.Uptm',$CpuUptm);
Спасибо, изменил под себя вот так:

Код: Выделить всё

$Uptime = $this->getProperty('Uptime') * 60;
$UptimeTXT = sprintf('%02d д %02d ч %02d м',$Uptime/86400, (($Uptime/3600) % 24), ($Uptime % 3600)/60, ($Uptime % 3600) % 60); 
$this->setProperty('UptimeTXT', $UptimeTXT);
zoz писал(а):
Чт сен 17, 2020 10:31 pm
как правильно настраивать прошивку для реле с инверсированным входом (ON=0)?
Дело в том что инверсия в настройках свича дает только инверсию параметра state a gpio оставляет.
пример: relay14/State,1 = gpio/14,0. и это не позволяет корректно им управлять.
Нашел выход не использовать инвертирование в свиче, а инвертировать прямо в MD mqtt модуле при получении и отправке добавил Replace list: 1=0, 0=1
Но может есть вариант как это сделать на уровне EPS и прошивки? Можно ли управлять не gpio
а реле, или включить инвертирование значений на уровне gpio?
Так разве нельзя в правилах поменять "gpio,14,0" на "gpio,14,1" и наоборот ? Т.е. на включение реле будет команда "gpio,14,0", а на выключение "gpio,14,1".
zoz
Сообщения: 74
Зарегистрирован: Чт авг 11, 2016 1:19 am
Откуда: Киев
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: ESPEasy

Сообщение zoz » Вс сен 20, 2020 7:52 pm

Так разве нельзя в правилах поменять "gpio,14,0" на "gpio,14,1" и наоборот ? Т.е. на включение реле будет команда "gpio,14,0", а на выключение "gpio,14,1".
В правилах то можно написать многое)). можно написать чтение нужных mqtt топиков и сделать их под это реле.
Просто я думал что глочка в прошивке Inversed Logic инверсит и значение State и значение gpio, а нет только State.

Но меня вариант инверсии в mqtt модуле MD устраивает.
Домик Алисы - Orange Pi PC, DietPi | +BroadlinkRM+esp8266(espEasy)+zigbee(sonoff,Aqara)
Аватара пользователя
Strangeman
Сообщения: 208
Зарегистрирован: Ср янв 16, 2013 6:35 pm
Откуда: Золотарево
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

Re: ESPEasy

Сообщение Strangeman » Пт фев 19, 2021 3:46 am

У меня всё сделано через MQTTimport и публикацию в отдельный топик.
Кстати, это и к вопросу инверсии сразу.

Код: Выделить всё

on LightIn#Lamp1 do
   Publish /%sysname%%unit%/Light/Lamp1,[LightIn#Lamp1]
      MCPGPIO,11,{XOR:[LightIn#Lamp1]:1} // Здесь инверсия для GPIO
endon
Соответственно топик, куда публикуется управление со всех устройств /Kitchen1/LightIn/Lamp1
Топик, в который отвечает ESPшка /Kitchen1/Light/Lamp1
В МДМ топик привязан к свойству устройства, как и выключатели в меню. МДМ, как и другие приложения позволяет для записи и чтения использовать разые топики. Очень удобно и работает чётко. Единственное, что не понравилось - из правил в ESPeasy нельзя задать флаги retain и QOS. Во всяком случае я не нашёл, как это сделать. Когда в правилах делаешь Publish - настройки из Controllers берутся только частично - флаг retain не читается и не применяется.
Основной: Z99Le, Debian 10, модули на ESP-12F с собственной логикой. С сервером связаны, но работоспособны и без него.
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
Аватара пользователя
Strangeman
Сообщения: 208
Зарегистрирован: Ср янв 16, 2013 6:35 pm
Откуда: Золотарево
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

Re: ESPEasy

Сообщение Strangeman » Пт фев 19, 2021 9:41 pm

Блин, в версии 20210114 добавили битовые операции, что позволило сократить объёмы текста правил, но сломали недавно добавленное elseif.
Во всяком случае конструкция

Код: Выделить всё

   if %systime% > 06:59:00 and %systime% < 10:01:00
      taskvalueset 3,2,22

   elseif %systime% > 10:01:00 and %systime% < 16:59:00
      taskvalueset 3,2,35

   elseif %systime% > 16:59:00 and %systime% < 21:01:00
      taskvalueset 3,2,22

   elseif %systime% > 21:01:00 and %systime% < 23:01:00
      taskvalueset 3,2,35

   else
      taskvalueset 3,2,50
   endif
работать перестала, пришлось вернуться к такой

Код: Выделить всё

   if %systime% > 06:59:00 and %systime% < 10:01:00
      taskvalueset 3,2,22
   endif

   if %systime% > 10:01:00 and %systime% < 16:59:00
      taskvalueset 3,2,35
   endif

   if %systime% > 16:59:00 and %systime% < 21:01:00
      taskvalueset 3,2,22
   endif

   if %systime% > 21:01:00 and %systime% < 23:01:00
      taskvalueset 3,2,35
   endif

   if %systime% > 23:01:00 and %systime% < 23:59:59
      taskvalueset 3,2,50
   endif
Да и эта заработала только в секции типа

Код: Выделить всё

on Clock#Time=All,**:** do // Каждую минуту
В таймере вообще никак не работает.

Код: Выделить всё

On Rules#Timer=1 do
Точнее, оно как-то работает, но адски глючит. Из за этого провозился 2 дня, не мог понять в чём дело.
Основной: Z99Le, Debian 10, модули на ESP-12F с собственной логикой. С сервером связаны, но работоспособны и без него.
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
Аватара пользователя
Strangeman
Сообщения: 208
Зарегистрирован: Ср янв 16, 2013 6:35 pm
Откуда: Золотарево
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

Re: ESPEasy

Сообщение Strangeman » Сб фев 20, 2021 10:51 pm

В общем, нифига толком не работает со временем. Сломали где-то между 20200721 и 20201227. Перебирать и искать на какой конкретно не хочу, т.к. есть существенные сложности - нужно задавать большой временной диапазон и смотреть, как отработает. На коротких в минуту работает нормально. Забил и откатился на 20200721 на которой работало.
Основной: Z99Le, Debian 10, модули на ESP-12F с собственной логикой. С сервером связаны, но работоспособны и без него.
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
Аватара пользователя
Strangeman
Сообщения: 208
Зарегистрирован: Ср янв 16, 2013 6:35 pm
Откуда: Золотарево
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

Re: ESPEasy

Сообщение Strangeman » Сб фев 27, 2021 4:52 am

Похоже, что всё починили в 20210223.
Тестирую.
Основной: Z99Le, Debian 10, модули на ESP-12F с собственной логикой. С сервером связаны, но работоспособны и без него.
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
Ответить