Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.
Модератор: immortal
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
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
Сообщение
Ivg_spb » Сб янв 19, 2019 2:44 am
Не совсем так. Не все некорректные данные содержат этот символ. Новый код ситуацию не изменил
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
Chainik » Сб янв 19, 2019 10:12 am
Ivg_spb писал(а): ↑Сб янв 19, 2019 2:44 am
Не совсем так. Не все некорректные данные содержат этот символ. Новый код ситуацию не изменил
Я чего не могу понять, откуда у вас во вроде бы нормальных значениях берется "temp:"? Эту часть ответа Меги надо "выпиливать", оставляя только число.
Что у вас за датчик (модель)?
-
Ivg_spb
- Сообщения: 23
- Зарегистрирован: Пт апр 06, 2018 10:51 pm
- Откуда: Санкт-Петербург
-
Благодарил (а):
0
-
Поблагодарили:
0
Сообщение
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
Сообщение
Ivg_spb » Вс янв 20, 2019 12:58 am
Интересное наблюдение: если зайти в настройки данной меги в МД, и перечитать конфигурацию - в первый момент значения считываются корректно.
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
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 раз
Сообщение
ZyaK » Вт янв 07, 2020 7:16 pm
у меня 18b20 on 3.3 вообще не заработали, питаю от 5 вольт, на каждом датчике прям на ноги питания припаяны кондеры по 0.1 керамика и никаких проблем.
пробуйте питать датчики от 5 вольт
PI2 + MQTT + 5 ESP8266 + Atmega16