Страница 10 из 12

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Чт янв 28, 2021 7:13 am
AK1
Если в коде webvars есть ошибка, то цикл останавливается. Поэтому после изменения кода надо поглядывать за состоянием цикла.

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Чт янв 28, 2021 11:20 am
Kirch
Да, действительно что то было. Кастом код легко увидеть по всем вебпеременным в таблице webvars в поле code.
Итоговый проверенный рабочий код для фильтрации кривых показаний далласовских датчиков температуры такой

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

$objname = 'Sensor_temp05.Value'; // тут пояснения что за датчик
// Получаем данные от сенсора
$value = $params['VALUE'];
//DebMes('текущее:'.$value ); // для целей отладки
// восстанавливаем точку
if ($value > 1000 and $value < 9000 ) {$value = $value/100;}
 // Фильтруем данные
if ($value > 100 || $value < -60 || $value == 80) {
//DebMes('Ошибка значения '.$value); // для целей отладки
return;}
$predvalue = getGlobal($objname);
//DebMes('предыдущее:'.$predvalue ); // для целей отладки
if ( ($predvalue < $value * 1.01) and ( $predvalue > $value * 0.99))  {
// DebMes('Повтор значения '.$value.' предыдущее:'.$predvalue ); // для целей отладки
return;}
// Выполняем округление с точностью до одного знака
$value = round($value, 1);
 // Сохраняем обработанное значение в свойство объекта
setGlobal($objname, $value);

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пн апр 12, 2021 2:25 pm
pdfsen
Добрый день,
указал "Интервал проверки в секундах" = 900.
Проверка же происходит почему-то каждые 1 час 33 минуты.
Не подскажите где глюк ?

П.С. Постаивл значение = 0. Ничего не изменилось, продолжает каждые 1 час 33 минуты

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пт июл 30, 2021 3:02 pm
Максим Николаевич
Всем добрый день. Подскажите, а как можно вытащить данные если код одинаковый, а содержание разное?

Например такой код:

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

<div class="title">Значение1</div>
<div class="title">Значение2</div>
<div class="title">Значение3</div>
В шаблоне указал:

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

<div class="title">(.+?)<\/div>
Но он находит только Значение1
Как можно вытащить все значения в одно Свойство? При том, что значений может меняться.

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Вт сен 21, 2021 7:24 am
homester
Перестал работать шаблон <p class="maps-widget-fact__title">(.+?)</p> на https://yandex.ru/pogoda/kemerovo?lat=5 ... =86.096245
INCORRECT VALUE
Это только у меня ?

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Чт сен 23, 2021 12:51 am
ghost13
нет у меня тоже

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пн сен 27, 2021 6:58 am
homester
Модуль еще живой, или можно забыть.?

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пн сен 27, 2021 1:57 pm
fandaymon
homester писал(а):
Пн сен 27, 2021 6:58 am
Модуль еще живой, или можно забыть.?
Модуль тут не при чём - это срабатывает защита яндекса. Говорит что ваш запрос похож на автоматический

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пт дек 03, 2021 8:42 am
Kirch
Доброго дня.
Измучила нестабильность модуля webvars. На нем построен опрос датчиков и весь дом теперь обогревается по ним.
Вот опять цикл webvars остановлен. ЗАпустить не могу. Веб переменные обновляются по кнопке, но автоматически - нет.
В форуме проходило ,что нужно убрать правую часть $cycles=array('ping'=>'ping','webvars'=>'webvars');
Убрал. Не помогает. Сам цикл в прошлый раз заработал, теперь сам же встал и не запускается в X-Ray
Привожу текст кода в System checkState
Кто тут понимает, почему цикл не стартует и как вывести диагностику причин?

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

$details=array();
$red_state=0;
$yellow_state=0;

$cycles=array('states'=>'states','main'=>'main','execs'=>'exec','scheduler'=>'scheduler');
foreach($cycles as $k=>$v) {
 $tm=getGlobal('ThisComputer.cycle_'.$k.'Run');
 if (time()-$tm>5*60) {
  $red_state=1;
  $details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED.".";
 }
}
//$cycles=array('ping'=>'ping','webvars'=>'webvars');
$cycles=array('ping'=>'ping');
foreach($cycles as $k=>$v) {
 $tm=getGlobal('ThisComputer.cycle_'.$k.'Run');
 if (time()-$tm>10*60) {
  $yellow_state=1;
  $details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED.".";  
 }
}

/*
$objects=array('MotionSensor1'=>'Датчик движения 1','MotionSensor2'=>'Датчик движения 2','TempSensor01'=>'Датчик температуры','HumSensor01'=>'Датчик влажности');
foreach($objects as $k=>$v) {
 if (!gg($k.'.alive')) {
  $yellow_state=1;
  $details[]="Не обновляется ".$v.'.';  
 }
}
*/

if ((int)gg('ThisComputer.SpaceProblems')>0) {
  $red_state=1;
  $details[]="Недостаточно места на диске (".gg('ThisComputer.SpaceProblems_Details').').';  
}

if ($red_state) {
 $state='red';
 $state_title=LANG_GENERAL_RED; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title=LANG_GENERAL_YELLOW;  
} else {
 $state='green';
 $state_title=LANG_GENERAL_GREEN;   
}

$new_details=implode(". ",$details);
if ($this->getProperty("stateDetails")!=$new_details) {
 $this->setProperty('stateDetails',$new_details);
}

if ($this->getProperty('stateColor')!=$state) {
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);
 if ($state!='green') {
  say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
  say(implode(". ",$details),2);
 } else {
  say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title,2);
 }
 $this->callMethod('stateChanged');
}
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/system_checkstate.php');
/* end injection of {SDevices} */
Думаю уже уйти в сторону поддерживаемых систем УД.

Re: [Модуль] Веб-переменные (webvars)

Добавлено: Пт дек 03, 2021 6:07 pm
xor
Kirch писал(а):
Пт дек 03, 2021 8:42 am
Доброго дня.
Измучила нестабильность модуля webvars. На нем построен опрос датчиков и весь дом теперь обогревается по ним.
Вот опять цикл webvars остановлен. ЗАпустить не могу. Веб переменные обновляются по кнопке, но автоматически - нет.
...
Думаю уже уйти в сторону поддерживаемых систем УД.
не по теме, но всё-равно скажу)
Для локальных сетевых ресурсов, да и вообще, отказался от использования модуля Веб-переменные.
Проверяю локальные странички скриптом с разбором по-строчно, например, для упса
2021-12-03_18-09-43.png
2021-12-03_18-09-43.png (7.89 КБ) 1988 просмотров

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

$cmdUrl = 'http://192.168.1.7:8888';
$state = file_get_contents($cmdUrl);

if($state){
preg_match('|<b>Report from My UPS</b> - (.*)</br>|', $state, $matches);
sg('ippon.measurTime',$matches[1]);
preg_match('|I?P Voltage = (.*) |', $state, $matches);
sg('ippon.inVoltage',$matches[1]);
... и т.д.
выигрыш - нет модуля, минус один цикл, хозяин-барин с точки зрения гибкости обработки