Ничего не выходит.
Для датчика температуры 1-wire завожу дергалку метода https://yadi.sk/i/j9NXFSsdA2g8nQ
Но в этом методе пустые значения
$this->getProperty('temperature');
$this->getProperty('value');
$params['temperature']
Как в методе logicAction обратиться к значению, которое должно записаться? Хочу поделить на 100
Как выборочно сохранять свойства (sensor temp)
Модератор: immortal
-
- Сообщения: 2101
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 464 раза
Re: Как выборочно сохранять свойства (sensor temp)
потому что у вас все не правильноKirch писал(а): ↑Вт окт 12, 2021 9:02 pmНичего не выходит.
Для датчика температуры 1-wire завожу дергалку метода https://yadi.sk/i/j9NXFSsdA2g8nQ
Но в этом методе пустые значения
$this->getProperty('temperature');
$this->getProperty('value');
$params['temperature']
Как в методе logicAction обратиться к значению, которое должно записаться? Хочу поделить на 100
ранее на скринах есть свои методы фильтрации, в вашем случае с модуля мегаД посмотреть параметр в какой передается значение в метод
а не использовать метод логик экшен он совсем для другого, и не читать значения из свойств которые еще не записаны в них
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 51
- Зарегистрирован: Чт июл 26, 2018 4:50 pm
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Как выборочно сохранять свойства (sensor temp)
Logrus, вот скрин как подключен датчик к МегаД https://yadi.sk/i/okx1GJwGk-y0zA
Вот возможные свойства датчика https://yadi.sk/i/VsliNHJBuuJ3iw
Как это соединить, какой совет?
Вот возможные свойства датчика https://yadi.sk/i/VsliNHJBuuJ3iw
Как это соединить, какой совет?
-
- Сообщения: 2101
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 464 раза
Re: Как выборочно сохранять свойства (sensor temp)
сходить в базу знаний и прочитать статью фильтрация значений
сходить на предыдущую страницу и прочитать варианты там
зачем вы привязываете метод логик экшен совсем не понятно, что тем кодом вы хотите от этого добиться тем более
делить на 100 вы хотели что б в значении были целые числа без знака после запятой?
сходить на предыдущую страницу и прочитать варианты там
зачем вы привязываете метод логик экшен совсем не понятно, что тем кодом вы хотите от этого добиться тем более
делить на 100 вы хотели что б в значении были целые числа без знака после запятой?
- Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 51
- Зарегистрирован: Чт июл 26, 2018 4:50 pm
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Как выборочно сохранять свойства (sensor temp)
Добавил такой код, вроде теперь фильтрует и пишет корректную температуру.
идем вначале сюда
потом выбираем свойство, редактируем, вставляем код внизу
кому нужна отладка - раскомментируйте DebMes
Код: Выделить всё
$oldvalue = $this->getProperty('value');
$value = round($value, 1); // Выполняем округление с точностью до одного знака
//DebMes($this->object_title . " value =" . $value. " old value ". $oldvalue);
if ($value > 100) { // Если пропала точка, то делим на 100
$value = $value/100;
}
if ($value > 90 || $value < -10) return; // Если вне диапазона, не сохраняем
if ($value == $oldvalue) return; // проверяем на совпадение с прошлым значением, не храним повторения
- Рейтинг: 1.16%
- xor
- Сообщения: 2045
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 289 раз
- Поблагодарили: 632 раза
Re: Как выборочно сохранять свойства (sensor temp)
только так вы теряете время последней регистрации температуры(. если включена оптимизация хранения данных (а она включена по умолчанию), то система сама выбрасывает повторяющиеся значения в истории, оставляя только первое и последнее значения с отметкой времени, да и в коде валидации тогда не нужно читать старое значение и проверять на равенствоKirch писал(а): ↑Вт окт 26, 2021 8:39 pmДобавил такой код, вроде теперь фильтрует и пишет корректную температуру.Код: Выделить всё
$oldvalue = $this->getProperty('value'); $value = round($value, 1); // Выполняем округление с точностью до одного знака //DebMes($this->object_title . " value =" . $value. " old value ". $oldvalue); if ($value > 100) { // Если пропала точка, то делим на 100 $value = $value/100; } if ($value > 90 || $value < -10) return; // Если вне диапазона, не сохраняем if ($value == $oldvalue) return; // проверяем на совпадение с прошлым значением, не храним повторения
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 51
- Зарегистрирован: Чт июл 26, 2018 4:50 pm
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Как выборочно сохранять свойства (sensor temp)
[/quote]
только так вы теряете время последней регистрации температуры(. если включена оптимизация хранения данных (а она включена по умолчанию), то система сама выбрасывает повторяющиеся значения в истории, оставляя только первое и последнее значения с отметкой времени, да и в коде валидации тогда не нужно читать старое значение и проверять на равенство
[/quote]
Спасибо. Тогда у кого есть варианты как менять время последней записи без раздувания архива? Просто писать и все?
только так вы теряете время последней регистрации температуры(. если включена оптимизация хранения данных (а она включена по умолчанию), то система сама выбрасывает повторяющиеся значения в истории, оставляя только первое и последнее значения с отметкой времени, да и в коде валидации тогда не нужно читать старое значение и проверять на равенство
[/quote]
Спасибо. Тогда у кого есть варианты как менять время последней записи без раздувания архива? Просто писать и все?