Страница 6 из 7
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Чт сен 15, 2016 3:19 pm
skysilver
nick7zmail писал(а):Просто чтобы использовать массив $params - его в скрипт передать сперва надо. Изначально он пустой...аналогично с методами - при запуске метода, $params туда закинуть сперва надо.
Насчет скриптов (сценариев) правы, а вот насчет методов не совсем. Если метод будет связан со свойством объекта, то при изменении этого свойства любым способом в метод будет автоматически передано три параметра:
$params['PROPERTY'] -- текстовое имя изменяемого свойства
$params['NEW_VALUE'] -- присваиваемое значение
$params['OLD_VALUE'] -- предыдущее значение
Вот с ними уже и можно работать в методе. Параметр status при этом, конечно, не передается. Да и Sergey2055 не указал, что он все-таки вызывает - скрипт, метод или связанный метод. ))
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Чт сен 15, 2016 3:31 pm
nick7zmail
Точно)) не всегда пустой. Просто ни разу этим не пользовался)) не пригождалось как то, вот и запамятовал.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 7:56 am
Sergey2055
Всем привет. Раз продолжаем беседу то проблема была вот в чем, конечно она для меня пока и осталась, просто я ее решил по другому. При изменении свойсва Status конкретного объекта, хотел реализовать изменение свойства statustext, для чего я прописал в метод именно этого объекта скрипт как было в статье здесь на сайте вот он:
Код: Выделить всё
if ((int)$params['status']==0) {
say("Внимание! Открывается въезд в гараж.",5);
} else {
say("Гараж закрыт.",5);
}
if ($params['status']) {
$this->setProperty('statusText','закрыт');
} else {
$this->setProperty('statusText','открыт');
}
но почему то у меня ничего не меняется и не происходит. Точнее меняется свойство status text конкретного объекта если я меняю состояние status конкретного объекта ну скажем таким способом:
Код: Выделить всё
http://АДРЕС_СЕРВЕРА/objects/?object=sensorGarage&op=m&m=statusChanged&status=0
А вот если status меняется каким либо другим способом ну как например мне помог решить nick7zmail то свойство status text уже не меняется. Я так понимаю потому что при запросе с пустой страницы указывается каким методом меняется поле status, а в методе уже прописан скрипт, а если status менять другим способом то скрипт метода уже не отрабатывается. Я так понимаю? Получается надо вызвать метод где уже находится тот самый скрипт?
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 8:16 am
nick7zmail
Мне кажется метод запускается...просто при изменении другим способом - в массив $params нифига не попадает, и получается $params['status'] всегда равен 0. Я еще раз повторюсь (вроде в предыдущих сообщениях писал уже вариант решения):
вместо
используйте
Код: Выделить всё
if (gg('garage.status')==0)//вместо garage - ваш объект
либо
Код: Выделить всё
if ($this->GetProperty('status')==0)//должно работать для всего класса
второй случай сработает для класса - если ваш код написан в классовом методе, и так же будет доступен для других объектов в классе (к примеру если есть помимо garage к примеру door, и у него тоже есть status равное 1/0 - то код так же будет выполняться и при изменении door.status...соответственно все setGlobal(); надо заменить на $this->SetProperty('тут только свойсво, без объекта'); (собственно как у вас сейчас и сделано).
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 10:58 am
Sergey2055
Я это уже пробовал не прокатывает почему то.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 11:11 am
nick7zmail
Sergey2055 писал(а):Я это уже пробовал не прокатывает почему то.
Давайте снова по-порядку.
Если не прокатывает то что я указал - то скорее всего у вас свойство вообще не связанно с методом. Первое что надо сделать - пойти в свойства !Класса! (не объекта, именно класса). Найдите мои скрины, последний скрин - вверху строчка Основное-Свойства-методы-Объекты - вот это как раз для класса. Туда где зеленая стрелочка - для конкретного объекта. Нам в верхней строке свойства нужны. Заходим туда, смотрим...если пусто - создаёте свойство status, указываете выполнить при изменении - выбираете ваш метод. Если уже есть свойство статус - нажимаете редактировать - выставляете "Выполнить при изменении" - ваш метод.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 4:21 pm
Sergey2055
Попробовал разные вариации. Вообще реакции никакой. Примерный смысл то понятен ну нет реакции. Может у меня глюк какой или я не до конца что то делаю буду разбираться. Вопрос такого плана к знатокам: как обычно строится система умного дома в общении с датчиками и выключателями, т.е. если это выключатель заводится обратная связь или нет и с какой периодичностью обычно опрашиваются датчики. Я могу конечно сделать как мне хочется но как лучше, мож по опыту как кто скажет.
Просто немного подумываю большую часть функций выкинуть из ардуины сервера и прикрутить ардуину c NRF24L01 напрямую к majordomo а скриптами выполнить всю обработку команд.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 10:10 pm
Sergey2055
И еще хотел спросить попутно. nick7zmail - мне помог реализовать запрос и вытягивание данных одним пакетом. За что и спасибо. оч круто вышло. Но вот есть проблемка: сервер на ардуине счас немного перегружен постоянными запросами. Хочу немного его переделать. Хочу разделить на другую дуину. Одна будет отвечать чисто за работу с датчиками. Просто их опрашивать и кидать данные в Majordomo, а другая будет отвечать только за исполнительные устройства реле, выключатель итд. Но возник такой вопрос данные с датчиков в Mjdomo как все таки лучше слать, чтоб меньше перегружать Mjdomo, вытягивать их с дуины скажем каждые 5-10 сек или чтобы дуина сама их отправляла обычным get запросом тем самым изменяя свойство конкретного объекта. Или сильной разницы не будет.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Пн сен 19, 2016 10:22 pm
serghei
А что за сервер на ардуине ? Если это АМС , то ардуина каждые 20 секунд отдает значения мощностей , а МД просто хранит их историю и строит графики. Температуры можно отдавать гораздо реже. А управлять реле может и сама ардуина и МД отдавать только статус ON-OFF. Можно и управлять релюшками из МД , но ведь это случается редко.
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Добавлено: Вт сен 20, 2016 7:50 am
Sergey2055
Добрый день. Сервер на дуине самодельный. Основная его роль связать всю сеть беспроводных устройств построенных на базе nrf24l01 во едино. Управление релюшками случается редко, но статутс в каком состоянии находится устройство надо передавать постоянно в majordomo. В идеале конечно произошло событие, статутс передали и все. Но из за того что пакеты в эфире могут теряться приходится городить сложную сеть с подтверждением доставки либо постоянным опросом в каком состоянии устройство. Хоть и производитель на радиомодули гарантирует определенные характеристики в идеале все гораздо хуже и из за загруженности эфира 2,4 ГГц и из за неоднородности материала и стен и перекрытий итд.