Страница 1 из 1

помогите с кодом сильно не пинайте

Добавлено: Пн апр 22, 2019 9:51 pm
sergei64
есть объект у объекта есть свойство "my_sensor", данные получает по MQTT , а так же есть "sensor.status"
как написать код чтоб если значение "my_sensor" больше 500 то "sensor.status" буде равен "1"
а если меньше 500 то "0" :D :D

Re: помогите с кодом сильно не пинайте

Добавлено: Пн апр 22, 2019 9:55 pm
tarasfrompir
sergei64 писал(а):
Пн апр 22, 2019 9:51 pm
есть объект у объекта есть свойство "my_sensor", данные получает по MQTT , а так же есть "sensor.status"
как написать код чтоб если значение "my_sensor" больше 500 то "sensor.status" буде равен "1"
а если меньше 500 то "0" :D :D
создай метод который будет запускатся при изменении свойства my_sensor
и внем что то типа
if ($this->getProperty('my_sensor')>500) {
$this->setProperty('status', 1);
} else {
$this->setProperty('status', 0);
]

Re: помогите с кодом сильно не пинайте

Добавлено: Пн апр 22, 2019 9:59 pm
sergei64
tarasfrompir писал(а):
Пн апр 22, 2019 9:55 pm
sergei64 писал(а):
Пн апр 22, 2019 9:51 pm
есть объект у объекта есть свойство "my_sensor", данные получает по MQTT , а так же есть "sensor.status"
как написать код чтоб если значение "my_sensor" больше 500 то "sensor.status" буде равен "1"
а если меньше 500 то "0" :D :D
создай метод который будет запускатся при изменении свойства my_sensor
и внем что то типа
if ($this->getProperty('my_sensor')>500) {
$this->setProperty('status', 1);
} else {
$this->setProperty('status', 0);
]
Спасибо огромное

Re: помогите с кодом сильно не пинайте

Добавлено: Пн апр 22, 2019 10:01 pm
tarasfrompir
sergei64 писал(а):
Пн апр 22, 2019 9:59 pm
Спасибо огромное
Спасибо это когда нажимаеш пальчик вверх... над сообщением...

Re: помогите с кодом сильно не пинайте

Добавлено: Ср апр 24, 2019 6:08 am
sergei64
tarasfrompir писал(а):
Пн апр 22, 2019 10:01 pm
sergei64 писал(а):
Пн апр 22, 2019 9:59 pm
Спасибо огромное
Спасибо это когда нажимаеш пальчик вверх... над сообщением...
ок

Re: помогите с кодом сильно не пинайте

Добавлено: Ср июл 10, 2019 10:54 pm
Chainik
Не думал, что именно тут меня будет подстерегать "засада".
Вопрос, скорее, по PHP, нежели по MDM, но все же. Где же еще спросить, как не на любимом форуме...

Собственно, вот такая вот "элементарщина". Надо сохранить переменную $Text в файл с перезаписью, но без разбиения на строки.

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

$MaxVal = "26.26";
$Text = "MaxVal =".$MaxVal;
На страницу с echo выводит как и положено слитно (MaxVal = 26.26). А в файл переменная $Text, хоть с fwrite, хоть с file_put_contents сохраняется с разбиением на 2 строки:
MaxVal =
26.26

Как побороть "аномалию"?
Система WinXP, версия PHP 5.4.34. MDM не включал, уж извините...

Re: помогите с кодом сильно не пинайте

Добавлено: Ср июл 10, 2019 11:46 pm
tarasfrompir
Chainik писал(а):
Ср июл 10, 2019 10:54 pm
Не думал, что именно тут меня будет подстерегать "засада".
Вопрос, скорее, по PHP, нежели по MDM, но все же. Где же еще спросить, как не на любимом форуме...

Собственно, вот такая вот "элементарщина". Надо сохранить переменную $Text в файл с перезаписью, но без разбиения на строки.

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

$MaxVal = "26.26";
$Text = "MaxVal =".$MaxVal;
На страницу с echo выводит как и положено слитно (MaxVal = 26.26). А в файл переменная $Text, хоть с fwrite, хоть с file_put_contents сохраняется с разбиением на 2 строки:
MaxVal =
26.26

Как побороть "аномалию"?
Система WinXP, версия PHP 5.4.34. MDM не включал, уж извините...
интересная странность. и в чем проблема - лично я не знаю. но для прикола убери все непечатаемые сымволы...
http://qaru.site/questions/16405/php-ho ... n-a-string

Re: помогите с кодом сильно не пинайте

Добавлено: Чт июл 11, 2019 12:59 am
xor
Chainik писал(а):
Ср июл 10, 2019 10:54 pm
Не думал, что именно тут меня будет подстерегать "засада".
Вопрос, скорее, по PHP, нежели по MDM, но все же. Где же еще спросить, как не на любимом форуме...

Собственно, вот такая вот "элементарщина". Надо сохранить переменную $Text в файл с перезаписью, но без разбиения на строки.

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

$MaxVal = "26.26";
$Text = "MaxVal =".$MaxVal;
На страницу с echo выводит как и положено слитно (MaxVal = 26.26). А в файл переменная $Text, хоть с fwrite, хоть с file_put_contents сохраняется с разбиением на 2 строки:
MaxVal =
26.26

Как побороть "аномалию"?
Система WinXP, версия PHP 5.4.34. MDM не включал, уж извините...
вот есть у меня скрипт - пишет в файл с временем, типа лога

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

//script InFile
//runScript("InFile",array("subject"=>$subj, "body"=>$body, "filename"=>$filename ));

$date = gg("ThisComputer.DateNow");
$timeNow = gg("ThisComputer.timeNow");

$subject = $params['subject'];
$body = $params['body'];
$filename = $params['filename'];

$fp = fopen($filename , "a"); // Открываем файл
$test = fwrite($fp, $date." ".$timeNow." ");
$test = fwrite($fp, $subject." "); 
$test = fwrite($fp, $body."\r\n");
fclose($fp); //Закрытие файла
скормим ему ваш пример

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

$MaxVal = "26.26";
$text = "MaxVal =".$MaxVal;
$filename = "C:/_majordomo/htdocs/cms/texts/memory1.txt";
runScript("InFile",array("subject"=>"Текст:", "body"=>$text, "filename"=>$filename ));
смотрим, что получилось:

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

11.07.2019 00:52 Текст: MaxVal =26.26
всё ок

Re: помогите с кодом сильно не пинайте

Добавлено: Чт июл 11, 2019 7:47 pm
Chainik
tarasfrompir писал(а):
Ср июл 10, 2019 11:46 pm

интересная странность. и в чем проблема - лично я не знаю. но для прикола убери все непечатаемые сымволы...
http://qaru.site/questions/16405/php-ho ... n-a-string
tarasfrompir, ваша версия, по поводу наличия непечатаемых символов оказалась верной.
"Обработка напильником"

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

$string = preg_replace('/[\x00-\x1F\x7F]/u', '', $string);
решила проблему.
Спасибо!