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

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

Модератор: immortal

Ответить
Alexandr_LM
Сообщения: 4
Зарегистрирован: Пт апр 24, 2020 3:18 pm
Благодарил (а): 1 раз
Поблагодарили: 0

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

Сообщение Alexandr_LM » Пт апр 24, 2020 3:58 pm

Добрый день! Помогите пожалуйста начинающему!
Хочу автоматизировать полив в саду.
Есть в наличии 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".
Помогите пожалуйста!!!
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

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

Сообщение Chainik » Пт апр 24, 2020 4:38 pm

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. Думаю, при необходимости можно даже без сервера обойтись.
Последний раз редактировалось Chainik Сб апр 25, 2020 8:36 am, всего редактировалось 1 раз.
Alexandr_LM
Сообщения: 4
Зарегистрирован: Пт апр 24, 2020 3:18 pm
Благодарил (а): 1 раз
Поблагодарили: 0

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

Сообщение Alexandr_LM » Сб апр 25, 2020 8:25 am

Спасибо огромное!
Все действительно просто!
Сегодня пойду вечером буду пробовать.
Обязательно отпишусь по результатам.
Еще раз огромное Вам спасибо!!! :D
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

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

Сообщение Chainik » Сб апр 25, 2020 8:41 am

Alexandr_LM писал(а):
Сб апр 25, 2020 8:25 am
Спасибо огромное!
Все действительно просто!
Сегодня пойду вечером буду пробовать.
Обязательно отпишусь по результатам.
Еще раз огромное Вам спасибо!!! :D
Немного переписал код сценария. Не учел, что Мега не может выдерживать паузу в команде, запущенной со стороны сервера, когда со стороны сервера запускается еще одна команда с паузой (выполнение первой команды прекращается). Так что воспользуемся таймерами.
За это сообщение автора Chainik поблагодарил:
Alexandr_LM (Сб апр 25, 2020 5:22 pm)
Рейтинг: 1.16%
Alexandr_LM
Сообщения: 4
Зарегистрирован: Пт апр 24, 2020 3:18 pm
Благодарил (а): 1 раз
Поблагодарили: 0

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

Сообщение Alexandr_LM » Сб апр 25, 2020 5:19 pm

Все работает! Я очень рад!
Как я могу Вас отблагодарить?
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

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

Сообщение xor » Сб апр 25, 2020 5:22 pm

Alexandr_LM писал(а):
Сб апр 25, 2020 5:19 pm
Все работает! Я очень рад!
Как я могу Вас отблагодарить?
половину первого урожая отдайте Чайнику!)
Alexandr_LM
Сообщения: 4
Зарегистрирован: Пт апр 24, 2020 3:18 pm
Благодарил (а): 1 раз
Поблагодарили: 0

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

Сообщение Alexandr_LM » Сб апр 25, 2020 5:25 pm

Спасибо!!!! :D
Ответить