Страница 1 из 1

Автоматизация полива на участке

Добавлено: Пт апр 24, 2020 3:58 pm
Alexandr_LM
Добрый день! Помогите пожалуйста начинающему!
Хочу автоматизировать полив в саду.
Есть в наличии MajorDoMo на Raspberry Pi 4
MegaD 2561+ MegaD-14-IOR+MegaD-14-R
Хочу сделать систему полива привязав ее к календарю (таймеру),
управляя 4 каналами (портами).
Вроде бы задача простая, но я пока за месяц не сдвинулся ни на шаг.
Пробовал все сделать аналогично управлению светом, но что-то так и не пошло.
Запутался окончательно в виртуальных объектах и устройствах.
Насколько я понимаю вот такая у меня задача:
1. Запустить в MaJordomo календарь (либо в сценариях указать дату и время включения реле1)
2. Реле1 это реальный порт на MegaD-14-R ( в моем случае порт 16 ).
3. Далее через 30 мин.(к примеру) через таймер отключить порт.
И далее повторять это действие периодически через 3 часа.
Например в 9, 12, 15, 18 часов.
Аналогично настроить следующие каналы (порты).
В программировании я "0".
Помогите пожалуйста!!!

Re: Автоматизация полива на участке

Добавлено: Пт апр 24, 2020 4:38 pm
Chainik
Alexandr_LM писал(а):
Пт апр 24, 2020 3:58 pm
...
В программировании я "0".
Помогите пожалуйста!!!
Здесь почти все в программировании "0".

К примеру, можно так (простейший вариант):
1. Создаете скрипт (сценарий) со следующим кодом (пусть сценарий называется "Poliv_01"):

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

if (timeIs('09:00')){
file_get_contents('http://192.168.0.14/sec/?cmd=16:1');
SetTimeOut("P16_Off","file_get_contents('http://192.168.0.14/sec/?cmd=16:0');",1800);}
if (timeIs('12:00')){
file_get_contents('http://192.168.0.14/sec/?cmd=16:1');
SetTimeOut("P16_Off","file_get_contents('http://192.168.0.14/sec/?cmd=16:0');",1800);}
if (timeIs('15:00')){
file_get_contents('http://192.168.0.14/sec/?cmd=16:1');
SetTimeOut("P16_Off","file_get_contents('http://192.168.0.14/sec/?cmd=16:0');",1800);}
if (timeIs('18:00')){
file_get_contents('http://192.168.0.14/sec/?cmd=16:1');
SetTimeOut("P16_Off","file_get_contents('http://192.168.0.14/sec/?cmd=16:0');",1800);}
Если вам надо включать сразу несколько портов, то прописываете несколько команд (например):

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

if (timeIs('09:00')){
file_get_contents('http://192.168.0.14/sec/?cmd=16:1');
SetTimeOut("P16_Off","file_get_contents('http://192.168.0.14/sec/?cmd=16:0');",1800);}
file_get_contents('http://192.168.0.14/sec/?cmd=17:1');
SetTimeOut("P17_Off","file_get_contents('http://192.168.0.14/sec/?cmd=17:0');",1800);}
file_get_contents('http://192.168.0.14/sec/?cmd=18:1');
SetTimeOut("P18_Off","file_get_contents('http://192.168.0.14/sec/?cmd=18:0');",1800);}
//и т.д.
2. Для запуска скрипта можно записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код:

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

runScriptSafe('Poliv_01');
Собственно, все.

А в MegaD есть еще Cron. Думаю, при необходимости можно даже без сервера обойтись.

Re: Автоматизация полива на участке

Добавлено: Сб апр 25, 2020 8:25 am
Alexandr_LM
Спасибо огромное!
Все действительно просто!
Сегодня пойду вечером буду пробовать.
Обязательно отпишусь по результатам.
Еще раз огромное Вам спасибо!!! :D

Re: Автоматизация полива на участке

Добавлено: Сб апр 25, 2020 8:41 am
Chainik
Alexandr_LM писал(а):
Сб апр 25, 2020 8:25 am
Спасибо огромное!
Все действительно просто!
Сегодня пойду вечером буду пробовать.
Обязательно отпишусь по результатам.
Еще раз огромное Вам спасибо!!! :D
Немного переписал код сценария. Не учел, что Мега не может выдерживать паузу в команде, запущенной со стороны сервера, когда со стороны сервера запускается еще одна команда с паузой (выполнение первой команды прекращается). Так что воспользуемся таймерами.

Re: Автоматизация полива на участке

Добавлено: Сб апр 25, 2020 5:19 pm
Alexandr_LM
Все работает! Я очень рад!
Как я могу Вас отблагодарить?

Re: Автоматизация полива на участке

Добавлено: Сб апр 25, 2020 5:22 pm
xor
Alexandr_LM писал(а):
Сб апр 25, 2020 5:19 pm
Все работает! Я очень рад!
Как я могу Вас отблагодарить?
половину первого урожая отдайте Чайнику!)

Re: Автоматизация полива на участке

Добавлено: Сб апр 25, 2020 5:25 pm
Alexandr_LM
Спасибо!!!! :D