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

Периодический опрос состояния пинов на выключателе

Добавлено: Вс янв 20, 2019 9:57 pm
Alexander Travkin
Доброго времени суток уважаемые!
Прошу прощения если эта тема уже поднималась на форуме, но я не нашел.
Вопрос вот в чем: Как в MajorDomo организовать опрос состояния пинов выключателя раз в секунду.
У меня есть 3 китайских NoName выключателя, каждый управляется с помощью GET команд типа:

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

$value = 'http://192.168.1.61/i.js?stas=' . '0' . '&dchannel=0'
а состояние пинов в данный момент можно отследить через запрос

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

http://192.168.1.61/gpio.js
который возвращает строку JSON
Есть два метода 1 - для опроса пинов 2 - для включения/выключения пинов. Временно повесил управление на кнопки (сначала запуск первого сценария, потом запуск второго), но хотелось бы отображать в меню реальную картину, когда домашние переключают свет, чтобы у меня тоже показывалось

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Вс янв 20, 2019 10:19 pm
Chainik
Alexander Travkin писал(а):
Вс янв 20, 2019 9:57 pm
...
Вопрос вот в чем: Как в MajorDomo организовать опрос состояния пинов выключателя раз в секунду.
...
Пишите в конце метода, который занимается опросом

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

setTimeOut('myTimer'.time(),'callMethod("Имя_текущего_ОбъектМетода");',1);
В результате метод будет перезапускать сам себя раз в секунду.

Чтобы этот метод первоначально запускался после старта MajorDomo, можно записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код же код (ниже строки «$m=date('i',time());»), т.е.

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

setTimeOut('myTimer_1'.time(),'callMethod("Имя_опрашивающего_ОбъектМетода_1");',1);
setTimeOut('myTimer_2'.time(),'callMethod("Имя_опрашивающего_ОбъектМетода_2");',1);
setTimeOut('myTimer_3'.time(),'callMethod("Имя_опрашивающего_ОбъектМетода_3");',1);
Раз у вас 3 выключателя.

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Вс янв 20, 2019 10:54 pm
skysilver
Alexander Travkin писал(а):
Вс янв 20, 2019 9:57 pm
а состояние пинов в данный момент можно отследить через запрос
Они точно не умеют сами слать события о смене своего состояния? И зачем каждую секунду опрашивать?

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:15 am
Alexander Travkin
skysilver писал(а):
Вс янв 20, 2019 10:54 pm
Alexander Travkin писал(а):
Вс янв 20, 2019 9:57 pm
а состояние пинов в данный момент можно отследить через запрос
Они точно не умеют сами слать события о смене своего состояния? И зачем каждую секунду опрашивать?
Сами не умеют(((

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:16 am
Alexander Travkin

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

setTimeOut('myTimer'.time(),'callMethod("Имя_текущего_ОбъектМетода");',1);
Не сработало((( Может у меня что-то не включено?

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:18 am
skysilver
А раз в секунду за каким их опрашивать? Или реле свое они сами тоже не умеют локально переключать?

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:20 am
Alexander Travkin
Свое реле умеют переключать. Опрашиваю, чтобы знать в какое состояние переключить в 0 или 1. И чтобы отклик был от кнопок.

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:28 am
skysilver
Alexander Travkin писал(а):
Пн янв 21, 2019 12:20 am
Свое реле умеют переключать. Опрашиваю, чтобы знать в какое состояние переключить в 0 или 1. И чтобы отклик был от кнопок.
Т.е. по факту только для актуального отображения в веб-морде. И зачем раз в секунду-то? Ты постоянно сидишь и втыкаешь в веб-морду, чтобы увидеть вот этот моментальных отклик? Ты понимаешь, сколько будет сделано запросов за сутки, ради пары-тройки щелканий выключателем?

Имхо, пиши в минутный таймер. Опроса раз в минуту выше крыши хватит.

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 12:35 am
Alexander Travkin
Написал в минутный таймер

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

callMethod("Имя_опрашивающего_ОбъектМетода_1");
при перезапуске majordomo информация не обновляется

Re: Периодический опрос состояния пинов на выключателе

Добавлено: Пн янв 21, 2019 1:17 am
skysilver
Alexander Travkin писал(а):
Пн янв 21, 2019 12:35 am
Написал в минутный таймер

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

callMethod("Имя_опрашивающего_ОбъектМетода_1");
при перезапуске majordomo информация не обновляется
Скрин покажи, куда и как вписал.
И код самого метода неплохо бы увидеть.