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

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
sergei64
Сообщения: 62
Зарегистрирован: Вт апр 02, 2019 9:01 pm

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

Сообщение sergei64 »

есть объект у объекта есть свойство "my_sensor", данные получает по MQTT , а так же есть "sensor.status"
как написать код чтоб если значение "my_sensor" больше 500 то "sensor.status" буде равен "1"
а если меньше 500 то "0" :D :D
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

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

Сообщение 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);
]
Спасибо нам ПОМОЖЕТ..!
sergei64
Сообщения: 62
Зарегистрирован: Вт апр 02, 2019 9:01 pm

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

Сообщение 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);
]
Спасибо огромное
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

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

Сообщение tarasfrompir »

sergei64 писал(а): Пн апр 22, 2019 9:59 pm Спасибо огромное
Спасибо это когда нажимаеш пальчик вверх... над сообщением...
Спасибо нам ПОМОЖЕТ..!
sergei64
Сообщения: 62
Зарегистрирован: Вт апр 02, 2019 9:01 pm

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

Сообщение sergei64 »

tarasfrompir писал(а): Пн апр 22, 2019 10:01 pm
sergei64 писал(а): Пн апр 22, 2019 9:59 pm Спасибо огромное
Спасибо это когда нажимаеш пальчик вверх... над сообщением...
ок
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

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

Сообщение 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 не включал, уж извините...
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

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

Сообщение 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
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

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

Сообщение 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
всё ок
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

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

Сообщение 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);
решила проблему.
Спасибо!
Ответить