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

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

AK1
Сообщения: 135
Зарегистрирован: Чт фев 13, 2020 6:39 pm
Благодарил (а): 23 раза
Поблагодарили: 30 раз

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

Сообщение AK1 » Чт янв 28, 2021 7:13 am

Если в коде webvars есть ошибка, то цикл останавливается. Поэтому после изменения кода надо поглядывать за состоянием цикла.
Kirch
Сообщения: 51
Зарегистрирован: Чт июл 26, 2018 4:50 pm
Благодарил (а): 12 раз
Поблагодарили: 7 раз

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

Сообщение Kirch » Чт янв 28, 2021 11:20 am

Да, действительно что то было. Кастом код легко увидеть по всем вебпеременным в таблице 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);
Аватара пользователя
pdfsen
Сообщения: 78
Зарегистрирован: Вс янв 13, 2019 8:32 am
Благодарил (а): 17 раз
Поблагодарили: 0

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

Сообщение pdfsen » Пн апр 12, 2021 2:25 pm

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

П.С. Постаивл значение = 0. Ничего не изменилось, продолжает каждые 1 час 33 минуты
Максим Николаевич
Сообщения: 44
Зарегистрирован: Пт июн 24, 2016 3:32 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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
Как можно вытащить все значения в одно Свойство? При том, что значений может меняться.
MajorDoMo живет на Xpenology DSM 6.2.3-25426 Update 2 :arrow: Virtual Machine Manager :arrow: Debian 10
homester
Сообщения: 194
Зарегистрирован: Вт дек 24, 2019 2:09 pm
Благодарил (а): 112 раз
Поблагодарили: 34 раза

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

Сообщение homester » Вт сен 21, 2021 7:24 am

Перестал работать шаблон <p class="maps-widget-fact__title">(.+?)</p> на https://yandex.ru/pogoda/kemerovo?lat=5 ... =86.096245
INCORRECT VALUE
Это только у меня ?
Raspberry Pi3 B+, v4.44, внешняя з/к
ghost13
Сообщения: 22
Зарегистрирован: Пт сен 02, 2016 8:01 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Сообщение ghost13 » Чт сен 23, 2021 12:51 am

нет у меня тоже
За это сообщение автора ghost13 поблагодарил:
homester (Чт сен 23, 2021 3:43 am)
Рейтинг: 1.16%
homester
Сообщения: 194
Зарегистрирован: Вт дек 24, 2019 2:09 pm
Благодарил (а): 112 раз
Поблагодарили: 34 раза

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

Сообщение homester » Пн сен 27, 2021 6:58 am

Модуль еще живой, или можно забыть.?
Raspberry Pi3 B+, v4.44, внешняя з/к
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пн сен 27, 2021 1:57 pm

homester писал(а):
Пн сен 27, 2021 6:58 am
Модуль еще живой, или можно забыть.?
Модуль тут не при чём - это срабатывает защита яндекса. Говорит что ваш запрос похож на автоматический
За это сообщение автора fandaymon поблагодарил:
homester (Пн сен 27, 2021 2:22 pm)
Рейтинг: 1.16%
Kirch
Сообщения: 51
Зарегистрирован: Чт июл 26, 2018 4:50 pm
Благодарил (а): 12 раз
Поблагодарили: 7 раз

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

Сообщение Kirch » Пт дек 03, 2021 8:42 am

Доброго дня.
Измучила нестабильность модуля 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} */
Думаю уже уйти в сторону поддерживаемых систем УД.
Аватара пользователя
xor
Сообщения: 2036
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 283 раза
Поблагодарили: 628 раз

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

Сообщение xor » Пт дек 03, 2021 6:07 pm

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

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

$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]);
... и т.д.
выигрыш - нет модуля, минус один цикл, хозяин-барин с точки зрения гибкости обработки
За это сообщение автора xor поблагодарил:
Kirch (Пт дек 03, 2021 7:04 pm)
Рейтинг: 1.16%
Ответить