Веб-переменные

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Веб-переменные

Сообщение anemcov » Чт янв 31, 2013 2:53 pm

Shaiden писал(а):В общем понял, что не работает cycle.php. Обновил значение через кнопку "Обновить все" в меню Веб переменных и значение подтянулось. Сижу думаю что не так со скриптом... ошибок вроде не выдает крутит и крутит себе, а значений нету.
а в файле

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

/modules/objects/objects.class.php
строчки закомментировали?

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

//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 500);
//curl_setopt($ch, CURLOPT_TIMEOUT, 1);
//curl_setopt($ch, CURLOPT_TIMEOUT_MS, 500);
без этого, во-первых, метод onNewMinute не работает. Может и еще что паровозом тянется
Shaiden
Сообщения: 16
Зарегистрирован: Ср янв 30, 2013 7:36 am
Благодарил (а): 0
Поблагодарили: 0

Re: Веб-переменные

Сообщение Shaiden » Пт фев 01, 2013 7:00 am

Попробовал закомментировать строчки - ничего не изменилось. Запустил отдельно cycle_webvars.php. Первый раз цикл написал в терминал что-то вроде "checking webvar http://pogoda.yandex.ru/tyumen/ ". После этого значение подтянулось с сайта, а затем все. Даже уже город поменял, чтоб значение на сайте другое было (мало ли он сверяет перед обновлением). Цикл перезапускал и так и сяк и ничего не меняется. Не пойму где проблема. В первый же раз значение подтянулось, а значит механизм отработал полностью, а потом куда-то уперся. Цикл работает, исправно пишет в терминал "09:43:16 running cycle_webvars.php" и так каждую секунду по строчке. В логе в debmes тоже пишется, а значений нет...
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Веб-переменные

Сообщение sergejey » Пт фев 01, 2013 12:11 pm

Shaiden писал(а):Попробовал закомментировать строчки - ничего не изменилось. Запустил отдельно cycle_webvars.php. Первый раз цикл написал в терминал что-то вроде "checking webvar http://pogoda.yandex.ru/tyumen/ ". После этого значение подтянулось с сайта, а затем все. Даже уже город поменял, чтоб значение на сайте другое было (мало ли он сверяет перед обновлением). Цикл перезапускал и так и сяк и ничего не меняется. Не пойму где проблема. В первый же раз значение подтянулось, а значит механизм отработал полностью, а потом куда-то уперся. Цикл работает, исправно пишет в терминал "09:43:16 running cycle_webvars.php" и так каждую секунду по строчке. В логе в debmes тоже пишется, а значений нет...
Если цикл работает, то может просто период обновления переменной слишком большой выставлен? Попробуй поставить обновление каждые 10 секунд и понаблюдать будет ли появляться checking webvar.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Shaiden
Сообщения: 16
Зарегистрирован: Ср янв 30, 2013 7:36 am
Благодарил (а): 0
Поблагодарили: 0

Re: Веб-переменные

Сообщение Shaiden » Сб фев 02, 2013 2:13 pm

Вчера синхронизировал время еще раз, скорей всего в нём нестыковка была. Дело в том, что Raspberry Pi не имеет часов реального времени и каждый раз при включении тащит время из интернета. При первоначальной настройке указал все верно, а потом почему-то сбилось, а я внимания не обратил. Сразу после установки времени ничего не заработало, я погасил сервер (физически вырубил машину) и лег спать. Сегодня включил и попробовал еще раз, к моему удивлению все отработало на пятерочку :) Даже стыдно стало за такую мою досадную оплошность.
Выложу хоть скриншот, которого я добивался 3 дня:

Изображение

Всем спасибо за содействие и помощь, начало положено , буду глубже копать :D
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Re: Веб-переменные

Сообщение Anton_kulibin » Пт фев 15, 2013 10:14 pm

Есть датчик температуры подключенный к arduino, температуру доставать я умею, проблема в том что когда изменяется свойство temp, не обновляются свойства updatedTime, и все другие, а очень бы хотелось
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Веб-переменные

Сообщение sergejey » Сб фев 16, 2013 11:10 am

Anton_kulibin писал(а):Есть датчик температуры подключенный к arduino, температуру доставать я умею, проблема в том что когда изменяется свойство temp, не обновляются свойства updatedTime, и все другие, а очень бы хотелось
Если это делается через веб-переменные, то нужно кроме связанного свойства ещё добавить код такого плана в поле "действия при изменении":

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

callMethod('myObject.tempChanged');
(вместо myObject нужный объект)

я смотрю что часто возникает необхоимость вызывать какое-то действие при изменении свойства объекта. вот думаю, может сделать так, что б можно было задавать действие, которое всегда производится, когда что-то меняет свойство объекта.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Re: Веб-переменные

Сообщение Anton_kulibin » Сб фев 16, 2013 2:25 pm

sergejey писал(а):
Anton_kulibin писал(а):Есть датчик температуры подключенный к arduino, температуру доставать я умею, проблема в том что когда изменяется свойство temp, не обновляются свойства updatedTime, и все другие, а очень бы хотелось
Если это делается через веб-переменные, то нужно кроме связанного свойства ещё добавить код такого плана в поле "действия при изменении":

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

callMethod('myObject.tempChanged');
(вместо myObject нужный объект)

я смотрю что часто возникает необхоимость вызывать какое-то действие при изменении свойства объекта. вот думаю, может сделать так, что б можно было задавать действие, которое всегда производится, когда что-то меняет свойство объекта.
Спасибо. Да есть такая необходимость, думаю не плохо будет если сделаешь. Просто сравнивать предыдущее значение с текущим тоже вызывает проблемы, а тут можно будет на прямую задавать события.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Re: Веб-переменные

Сообщение Anton_kulibin » Пн фев 18, 2013 8:14 pm

Добавил код callMethod('myObject.tempChanged');
заметил закономерность, свойство объекта стало обнуляться с определенной периодичностью, как только вызов метода при изменении убираю так свойство перестает обнуляться, но соответственно не обновляется updatetime.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Panchez
Сообщения: 99
Зарегистрирован: Вс апр 29, 2012 7:31 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Веб-переменные

Сообщение Panchez » Пн фев 18, 2013 10:00 pm

Anton_kulibin писал(а):Добавил код callMethod('myObject.tempChanged');
заметил закономерность, свойство объекта стало обнуляться с определенной периодичностью, как только вызов метода при изменении убираю так свойство перестает обнуляться, но соответственно не обновляется updatetime.
У меня тоже не заработал вызов метода, свойство всегда было 0. Сделал иначе:
У меня термометр на 1-Wire, и при изменении значения вызывается такой код

if ($params['temperature']) {
callMethod('SensorZal.tempChanged',array('t'=>$params['temperature']['VALUE']));
}

Как это сделать с ардуиной, не знаю.

тема: http://smartliving.ru/forum/viewtopic.p ... =333#p3041
С уважением
Александр.
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Re: Веб-переменные

Сообщение Anton_kulibin » Вт фев 19, 2013 10:00 am

C 1-wire все понятно, у меня работает, еще есть датчик на удаленном хосте на ардуине, во с ним и происходят танцы с бубном. Конечно отсутствие updatetime не критично, но все же всего удовольствия от системы не получается, тем более планируется на шину 1-wire подключенной к ардуино еще вешать порядка 5 датчико

Покудесничал и пришел к такому коду который выполняется при изменении веб переменной,

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

$old_temp=gg('sensorKonturOut.temp');
if ($value>$old_temp) {
 $d=1;
} elseif ($value<$old_temp) {
 $d=-1;
} else {
 $d=0;
}
sg("sensorKonturOut.direction",$d);
sg("sensorKonturOut.updated",time());
sg("sensorKonturOut.updatedTime",date("H:i",time()));
Да он аналогичный что и в tempChanged, но по крайней мере при нем у меня значение temp не обнуляется.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Ответить