Страница 2 из 2
Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 1:10 pm
immortal
собственно в связи с этим вопрос:
вэб переменная, необходимо перед отправкой в Связанный объект.свойство обработать а потом отправить, как это сделать?
то есть как заменить "−" на "-", а потом отправить в свойство связанного объекта
Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 6:59 pm
ErmolenkoM
вэб переменная, необходимо перед отправкой в Связанный объект.свойство обработать а потом отправить, как это сделать?
можно использовать переменную $value в скрипте веб-переменной, либо вызвать скрипт, а уже в нем читать входящий параметр value.
Соответственно после обработки minus можно записать значение уже в ручную. Возможно можно переприсвоить $value но это надо проверять.
Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 7:26 pm
immortal
а как отправить результат в связанный объект.свойство из скрипта, или можно просто написать:
$value = replace ($value,"−","-");
Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 7:35 pm
ErmolenkoM
immortal писал(а):а как отправить результат в связанный объект.свойство из скрипта,
отправить как обычно sg("связанный объект.ДРУГОЕ_свойство", $value);
http://smartliving.ru/Main/ProgrammingFunctions
или можно просто написать:
$value = replace ($value,"−","-");
Не знаю, надо пробовать

Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 7:49 pm
immortal
скрипт
Код: Выделить всё
$value2 = str_replace ("−","-",$value);
sg("tempUlica1.temp", $value2);
не записывает значения в свойство tempUlica1.temp, что не так?
Re: Не отображается график погоды
Добавлено: Пн дек 09, 2013 7:51 pm
ErmolenkoM
думаю скрипт запустится только когда значение температуры изменится
Re: Не отображается график погоды
Добавлено: Ср окт 22, 2014 6:40 pm
Palko
Хочу вернуться к вопросу по замене − в полученной через веб переменную температуре.
По изменению температуры вызывается сценарий, который через str_replace подменяет символ и запятую на точку.
запарсили "−2,4" в результате получили "-2.4" и графики работают... но сценарий берет данные с ThisComputer.TempOutside и потом туда же складывает. В итоге SQL хранит вот что:
2014-10-22 14:11:53: +0.5
2014-10-22 14:11:53: +0,5
2014-10-22 13:42:55: +0.3
2014-10-22 13:42:55: +0,3
2014-10-22 12:16:08: -0.6
2014-10-22 12:16:08: −0,6
2014-10-22 11:47:09: −0,8
2014-10-22 11:47:09: -0.8
2014-10-22 11:18:11: −1,1
2014-10-22 11:18:11: -1.1
2014-10-22 10:49:13: -1.3
2014-10-22 10:49:13: −1,3
2014-10-22 10:20:15: −1,4
2014-10-22 09:51:17: −1,4
вопрос - как получить данные и обработать до записи значения веб переменной в связанный объект?
туплю... не понимаю
Re: Не отображается график погоды
Добавлено: Чт окт 23, 2014 12:14 pm
dmw
Palko писал(а):вопрос - как получить данные и обработать до записи значения веб переменной в связанный объект?
туплю... не понимаю
через методы, вот так:
http://smartliving.ru/Main/ScMonitorHeating
В сценарии сохранять не через SetGlobal() а вызывая метод:
callMethod("ThisComputer.tempChanged",array("temp"=>$temp));
Re: Не отображается график погоды
Добавлено: Вс окт 26, 2014 7:11 pm
Palko
сделал немного по другому,
редактируем последнюю запись уличной температуры в SQL.
может корявенько и не оптимально) но как смог, долго разбирался.. работает.
$prop_id="121";
// такой ID у меня в SQL для history внешней температуры
$pvalue=SQLSelectOne("SELECT * FROM phistory WHERE VALUE_ID='".$prop_id."' ORDER BY ADDED DESC LIMIT 0 , 1");
$values = $pvalue[VALUE];
$values = str_replace(",",'.',$values);
$values = str_replace(" ","",$values);
$values = str_replace("−","-",$values);
$values = str_replace("+","",$values);
$pvalue[VALUE] = $values;
SQLUpdate('phistory', $pvalue);
SetTimeOut('TempToDigital','runScript("minus_out");',900);
// если температура не меняется, то скрипт не будет выполняться и в историю будут писаться не правленые значения. поэтому вызываем его сами с периодом меньше частоты опроса web переменных.

- sc1.JPG (47.98 КБ) 8218 просмотров

- sc.jpg (58.53 КБ) 8218 просмотров