Нечисловые данные датчиков температуры

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

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Нечисловые данные датчиков температуры

Сообщение Chainik » Пт янв 18, 2019 11:34 pm

Ivg_spb писал(а):
Пт янв 18, 2019 9:01 pm
...
Теперь это выглядит вот так:
2019-01-18 20:59:40: temp:22.62 X
2019-01-18 20:59:39: @ X
2019-01-18 20:59:01: temp:22.62 X
2019-01-18 20:58:33: @ X
2019-01-18 20:58:33: temp:22.62 X
2019-01-18 20:58:01: temp:22.62 X
...
Видно, что все некорректные значения содержат символ "@". Давайте попробуем их отфильтровать.

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

$T = file_get_contents("http://192.168.0.30/sec/?pt=25&cmd=get");
if (is_numeric($T) || $T <= 50 || $T >= -10 || (strpos($T, '@') <> false)) {
//Пишем предыдущее значение, чтобы не терялась дискретность по периодичности сбора показаний
sg('Sensor_temp06.value', $T);
} else {
sg('Sensor_temp06.value', gg('Sensor_temp06.value'));}
Ivg_spb
Сообщения: 23
Зарегистрирован: Пт апр 06, 2018 10:51 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 0

Re: Нечисловые данные датчиков температуры

Сообщение Ivg_spb » Сб янв 19, 2019 2:44 am

Не совсем так. Не все некорректные данные содержат этот символ. Новый код ситуацию не изменил
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Нечисловые данные датчиков температуры

Сообщение Chainik » Сб янв 19, 2019 10:12 am

Ivg_spb писал(а):
Сб янв 19, 2019 2:44 am
Не совсем так. Не все некорректные данные содержат этот символ. Новый код ситуацию не изменил
Я чего не могу понять, откуда у вас во вроде бы нормальных значениях берется "temp:"? Эту часть ответа Меги надо "выпиливать", оставляя только число.
Что у вас за датчик (модель)?
Ivg_spb
Сообщения: 23
Зарегистрирован: Пт апр 06, 2018 10:51 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 0

Re: Нечисловые данные датчиков температуры

Сообщение Ivg_spb » Вс янв 20, 2019 12:55 am

Конкретно в этой комнате Dallas 18B20.
Надо сказать что проблемы есть только с этим типов датчиков (вне зависимости от конкретной модели, версии исполнения и наличия/отсутствия модуля для подключения).
С датчиками подключенных по протоколу IS2 - таких проблем не наблюдается.
Наличие/отсутствие внешнего питания на ситуацию не влияет.
Если честно, грешу на качество кабелей UTP, которыми сделана разводка по дому.

P.s. Все усилия пока даже не решили проблему со скачками показаний, до сих пор появляются скачки до 2,5тыс градусов выше и ниже нуля. Правда, заметно реже
Ivg_spb
Сообщения: 23
Зарегистрирован: Пт апр 06, 2018 10:51 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 0

Re: Нечисловые данные датчиков температуры

Сообщение Ivg_spb » Вс янв 20, 2019 12:58 am

Интересное наблюдение: если зайти в настройки данной меги в МД, и перечитать конфигурацию - в первый момент значения считываются корректно.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Нечисловые данные датчиков температуры

Сообщение Chainik » Вс янв 20, 2019 10:40 am

Ivg_spb писал(а):
Вс янв 20, 2019 12:58 am
Интересное наблюдение: если зайти в настройки данной меги в МД, и перечитать конфигурацию - в первый момент значения считываются корректно.
У меня сложилось стойкое впечатление, что модуль "MegaD" все же как то принимает участие в получении показаний датчика. Надо попробовать на вкладке "Данные" на порту, к которому подключен датчик, очистить все связанные объекты, методы и свойства. (В идеале для теста вообще удалить бы модуль "MegaD", чтобы не было даже подозрений по поводу его участия.)

И сделать по аналогии с таким вариантом (viewtopic.php?f=5&t=2263&start=1025). Только для сбора показаний будет использован код вашего метода.
ZyaK
Сообщения: 407
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 45 раз
Поблагодарили: 69 раз

Re: Нечисловые данные датчиков температуры

Сообщение ZyaK » Вт янв 07, 2020 7:16 pm

у меня 18b20 on 3.3 вообще не заработали, питаю от 5 вольт, на каждом датчике прям на ноги питания припаяны кондеры по 0.1 керамика и никаких проблем.
пробуйте питать датчики от 5 вольт
PI2 + MQTT + 5 ESP8266 + Atmega16
Ответить