Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 02 янв 2018, 16:50

Erik писал(а):
02 янв 2018, 10:01
правило №0 начинает выполняться по опросу порта, или инициируется фактом изменения? Состояние порта P1 в подчиненном условии опрашивается, по факту выполнения правила 0, или ждет факта изменения порта 1? Если по изменениям, и нужно "нажать вместе", какой временной лаг возможен?
Любые правила, как основные, так и подчиненные, начинают обрабатываться по факту изменения состояний портов.
Сценарий в примере срабатывает (прошивка 4.21b8) как при замыкании сначала P0, а потом P1, так и при замыкании сначала P1, а потом P0. По этому поводу предвижу наличие разных мнений. Кому то может потребоваться выполнение сценария только в том случае, если в момент срабатывания P0, порт P1 уже был бы замкнут. Но я считаю, что это только все усложнит и чтобы не было разночтений, условия срабатывают при любой последовательности действий.

Erik
Сообщения: 141
Зарегистрирован: 08 ноя 2017, 08:55

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Erik » 02 янв 2018, 17:26

Andrey_B писал(а):
02 янв 2018, 16:50


Любые правила, как основные, так и подчиненные, начинают обрабатываться по факту изменения состояний портов.
Сценарий в примере срабатывает (прошивка 4.21b8) как при замыкании сначала P0, а потом P1, так и при замыкании сначала P1, а потом P0. По этому поводу предвижу наличие разных мнений. Кому то может потребоваться выполнение сценария только в том случае, если в момент срабатывания P0, порт P1 уже был бы замкнут. Но я считаю, что это только все усложнит и чтобы не было разночтений, условия срабатывают при любой последовательности действий.
Тогда мега должна хранить (помнить) состояния портов.
В примере, если замыкание Р0 произошло, а Р1 нет - ничего не включилось.
Спустя какое то время произошло замыкание Р1, а Р0 и так был замкнутым, но события (замыкания) Р0 не произошло (нет изменения, нет события - условие не выполнено). Включится, или нет?
А если "он и так замкнут", то мега должна его опросить при срабатывании? Или как? Только 2 события одновременно? Или последовательность может быть сколько угодно растянута по времени. Включил Р0, уехал в отпуск, вернулся, включил Р1 - сработало?

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 02 янв 2018, 17:39

Erik писал(а):
02 янв 2018, 17:26
Спустя какое то время произошло замыкание Р1, а Р0 и так был замкнутым, но события (замыкания) Р0 не произошло (нет изменения, нет события - условие не выполнено). Включится, или нет?
Включится. В момент обработки условий по событию происходит считывание текущего состояния портов.
Идея в том, чтобы пользователь вообще не оперировал понятием событие. Он указал, что надо включить что-то только в том случае, если порт А и порт Б замкнуты. И ожидает, что оно сработает независимо от того, в какой последовательности они включились и через какой промежуток времени.

empenoso
Сообщения: 858
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 02 янв 2018, 19:17

Без имени-1.jpg
Без имени-1.jpg (204.7 КБ) 384 просмотра
Странности: на одном порту три i2c датчика: по текущей схеме подключения датчики на портах 0 и 1 из интерфейса меги НЕ видны и если нажать i2c scan ничего не происходит - в прямом смысле - новое окно не появляется. Однако если физически поменять местами и SDA сделать P0, а SCL - P1, то все три датчика находятся через i2c scan.

Еще плюс странность: BME280 из теплого помещения работает, а когда повторно включаешь мегу и датчик уже стоит на улице его в интерфейсе уже нет.

Подключены по UTP - линии прозванивали - обрывов нет.


В выпадающем меню меги нет датчика Si7021 (температура / влажность), хотя он видится как неопределенное устройство (в списке адресов появляется 0x0) если его физически подключаю вместо BME280.

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 02 янв 2018, 19:52

empenoso писал(а):
02 янв 2018, 19:17
Странности: на одном порту три i2c датчика: по текущей схеме подключения датчики на портах 0 и 1 из интерфейса меги НЕ видны и если нажать i2c scan ничего не происходит - в прямом смысле - новое окно не появляется. Однако если физически поменять местами и SDA сделать P0, а SCL - P1, то все три датчика находятся через i2c scan.
Все, конечно, может быть, но больше похоже на проблему с контактами и проводами.
empenoso писал(а):
02 янв 2018, 19:17
Еще плюс странность: BME280 из теплого помещения работает, а когда повторно включаешь мегу и датчик уже стоит на улице его в интерфейсе уже нет.
Конденсат? Проверю при случае, но вряд ли проблема в прошивке.
empenoso писал(а):
02 янв 2018, 19:17
В выпадающем меню меги нет датчика Si7021 (температура / влажность), хотя он видится как неопределенное устройство (в списке адресов появляется 0x0) если его физически подключаю вместо BME280.
У Si7021 такой же адрес, как и у HTU21D. Работа на одной шине Si7021 и HTU21D невозможна.
Собственно контроллер вообще никак их в этом смысле не различает. У них абсолютно идентичные протокол и адреса.

empenoso
Сообщения: 858
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 02 янв 2018, 21:00

Andrey_B писал(а):
02 янв 2018, 19:52
У Si7021 такой же адрес, как и у HTU21D. Работа на одной шине Si7021 и HTU21D невозможна.
Собственно контроллер вообще никак их в этом смысле не различает. У них абсолютно идентичные протокол и адреса.
А где можно почитать как изменять адрес I2C модуля?

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 02 янв 2018, 21:06

В даташитах. В некоторых элементах адрес вообще не меняется. В некоторых меняется только один бит. В некоторых четыре.
Только нужно учесть, что в текущий момент в прошивке нет возможности выбора адреса устройства. Работа идет с адресами по умолчанию.

empenoso
Сообщения: 858
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 02 янв 2018, 22:09

А возможно добавить датчик шума в прошивку? Насколько это трудоемкий процесс? Есть например i2c датчик шума: https://www.aliexpress.com/item/Fast-Fr ... 08711.html

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 03 янв 2018, 12:48

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

Alex_Jet
Сообщения: 729
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 04 янв 2018, 20:48

Andrey_B писал(а):
02 янв 2018, 16:40
Попробуйте.
https://ab-log.ru/files/File/megad-2561 ... a8-hex.zip
Андрей, действительно теперь со старшими портами работает. Попробовал реализовать сценарии для реальной ситуации - включение основного котла при включении хотя бы одного из двух контуров отопления и выключение котла при выключении всех контуров - тоже все работает!
Пошел дальше - то же самое, но теперь контуров отопления 4 шт. - такая цепочка условий не работает, точнее работают только 6 и 7, 4 и 5 не отрабатывают.
PS: сохранение ветки "cf=9" планируется сделать после исправления всех ошибок?
Program_Four_Condition.png
Program_Four_Condition.png (6.46 КБ) 271 просмотр

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 05 янв 2018, 13:06

Alex_Jet писал(а):
04 янв 2018, 20:48
Пошел дальше - то же самое, но теперь контуров отопления 4 шт. - такая цепочка условий не работает, точнее работают только 6 и 7, 4 и 5 не отрабатывают.
Я пока не вижу логики в использовании оператора "И" с самостоятельными (не подчиненными) условиями.
Опишите на словах, как по-вашему, это должно было бы работать.

Erik
Сообщения: 141
Зарегистрирован: 08 ноя 2017, 08:55

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Erik » 05 янв 2018, 13:31

Можно ли:

1. сделать два (или больше) основных правил с одним общим подчиненным? например:
0 if P1=0 -> &5
1 if P2=0 -> &5
2 if P3=0 -> &5
3 if P4=0 -> &5
4 if P5=0 -> &5
#5 28=0
2. сделать в подчиненном правиле безусловное действие (как в примере, без проверки условия)?
3. сделать цепочку подчиненных правил? например
0 if P1=0 -> &1
#1 if P2=0 -> &2
#2 if P3=0 -> &3
#3 if P4=0 -> &4
#4 if P5=0 -> 28=0
тогда на Р0 может быть просто выключатель, "включающий" автоматику.

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 05 янв 2018, 13:44

Erik писал(а):
05 янв 2018, 13:31
Можно ли:
1. сделать два (или больше) основных правил с одним общим подчиненным? например:
0 if P1=0 -> &5
1 if P2=0 -> &5
2 if P3=0 -> &5
3 if P4=0 -> &5
4 if P5=0 -> &5
#5 28=0
Можно. Но сейчас проверил. Если основные правила сработали первыми, а подчиненное потом - работает. Если наоборот - нет. Нужно исправить.
Erik писал(а):
05 янв 2018, 13:31
2. сделать в подчиненном правиле безусловное действие (как в примере, без проверки условия)?
Не совсем понял, как это.
Erik писал(а):
05 янв 2018, 13:31
3. сделать цепочку подчиненных правил? например
0 if P1=0 -> &1
#1 if P2=0 -> &2
#2 if P3=0 -> &3
#3 if P4=0 -> &4
#4 if P5=0 -> 28=0
тогда на Р0 может быть просто выключатель, "включающий" автоматику.
Можно.

Erik
Сообщения: 141
Зарегистрирован: 08 ноя 2017, 08:55

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Erik » 05 янв 2018, 13:48

Andrey_B писал(а):
05 янв 2018, 13:44
Erik писал(а):
05 янв 2018, 13:31
2. сделать в подчиненном правиле безусловное действие (как в примере, без проверки условия)?
Не совсем понял, как это.
просто установить порт в нужное значение, без проверки каких либо условий.

#5 28=0

Erik
Сообщения: 141
Зарегистрирован: 08 ноя 2017, 08:55

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Erik » 05 янв 2018, 13:53

Andrey_B писал(а):
05 янв 2018, 13:44
Erik писал(а):
05 янв 2018, 13:31
Можно ли:
1. сделать два (или больше) основных правил с одним общим подчиненным? например:
0 if P1=0 -> &5
1 if P2=0 -> &5
2 if P3=0 -> &5
3 if P4=0 -> &5
4 if P5=0 -> &5
#5 28=0
Можно. Но сейчас проверил. Если основные правила сработали первыми, а подчиненное потом - работает. Если наоборот - нет. Нужно исправить.

А при этом любое основное приводит к срабатыванию подчиненного, или нужно чтобы все основные сработали?

Alex_Jet
Сообщения: 729
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 05 янв 2018, 14:20

Andrey_B писал(а):
05 янв 2018, 13:06
Я пока не вижу логики в использовании оператора "И" с самостоятельными (не подчиненными) условиями.
Опишите на словах, как по-вашему, это должно было бы работать.
Моя логика была такова - проверяем на истинность условия 4,5,6,7 - если они истинны, то выполняем 28=0. В реальности - когда отключились насосы всех контуров отопления, то выключаем котел.

alex946
Сообщения: 127
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение alex946 » 05 янв 2018, 16:35

А не проще ли тут обратную логику иметь? 4 или 5 или 6 или 7 = ON - включаем

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 05 янв 2018, 17:02

Alex_Jet писал(а):
05 янв 2018, 14:20
Моя логика была такова - проверяем на истинность условия 4,5,6,7 - если они истинны, то выполняем 28=0. В реальности - когда отключились насосы всех контуров отопления, то выключаем котел.
Наверное, нужно сделать условия 5 и 6 подчиненными.
Тогда, если отключатся порты P22-P24, будет выключен и порт P28.

Andrey_B
Администратор
Сообщения: 3611
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 05 янв 2018, 18:03

Andrey_B писал(а):
05 янв 2018, 13:44
Erik писал(а):
05 янв 2018, 13:31
Можно ли:
1. сделать два (или больше) основных правил с одним общим подчиненным? например:
0 if P1=0 -> &5
1 if P2=0 -> &5
2 if P3=0 -> &5
3 if P4=0 -> &5
4 if P5=0 -> &5
#5 28=0
Можно. Но сейчас проверил. Если основные правила сработали первыми, а подчиненное потом - работает. Если наоборот - нет. Нужно исправить.
Вроде поправил.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip

Erik писал(а):
05 янв 2018, 13:31
2. сделать в подчиненном правиле безусловное действие (как в примере, без проверки условия)?
просто установить порт в нужное значение, без проверки каких либо условий.
#5 28=0
А зачем? В каких ситуациях это может потребоваться?

Erik
Сообщения: 141
Зарегистрирован: 08 ноя 2017, 08:55

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Erik » 05 янв 2018, 18:30

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

Если искать полезность, то это на мой взгляд вариант удобной визуализации. Строчки условий отдельно, строчки действий - отдельно.

И, например, когда к одному действию могут привести несколько разных цепочек условий.
Можно конечно каждую цепочку закончить этой установкой. Но написать несколько раз &5 займет меньше места, чем несколько раз 28=0. Не критичная, но экономия.
Или если там со временем можно будет установить значение шим, или действие с таймером, то подстраивать его в одном месте удобнее и надежнее.

Ответить