Как принципиально подключаются устройства.

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

Модератор: immortal

Gutsu Dmitriy
Сообщения: 26
Зарегистрирован: Вс янв 21, 2018 11:12 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Как принципиально подключаются устройства.

Сообщение Gutsu Dmitriy » Ср авг 19, 2020 10:20 pm

Много чего интересного расписано но почему то многие молчат и не говорят о том что в сервер через Megad от датчика приходят не всегда правильные значения , вместо 22,50 градусов приходят часто значения 2250 без разделения и соответсвенно реле выключается так как принимает за правду температуру в 2250 градусов , может знает кто как это исправить ,буду очень благодарен
Jilber
Сообщения: 717
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 113 раз

Re: Как принципиально подключаются устройства.

Сообщение Jilber » Чт авг 20, 2020 11:08 am

Наверное самое простое - ввести проверку значения перед записью его в базу. Температура привязывается не к свойству объекта, а к методу, который уже сохраняет значение, если оно в пределах нормы. Что-то вроде этого:

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

$newvalue = $params['VALUE'];
if ($newvalue < 40) $this->setProperty('value', $newvalue);
Или если нужно записывать в базу температуру только если она изменилась, то как-то так:

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

$newvalue = $params['VALUE'];
$oldvalue = $this->getProperty('value');
if ($newvalue <40 && $newvalue <> $oldvalue) $this->setProperty('value', $newvalue);
За это сообщение автора Jilber поблагодарил:
Gutsu Dmitriy (Чт авг 20, 2020 10:20 pm)
Рейтинг: 1.16%
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как принципиально подключаются устройства.

Сообщение Chainik » Чт авг 20, 2020 6:30 pm

Gutsu Dmitriy писал(а):
Ср авг 19, 2020 10:20 pm
Много чего интересного расписано но почему то многие молчат и не говорят о том что в сервер через Megad от датчика приходят не всегда правильные значения , вместо 22,50 градусов приходят часто значения 2250 без разделения и соответсвенно реле выключается так как принимает за правду температуру в 2250 градусов , может знает кто как это исправить ,буду очень благодарен
Дело в том, что когда Мега сама передает значение температуры, то она отдает его без разделителя (запятой), а модуль MegaD не умеет корректно это преобразовывать.
А вот в ответ на внешний запрос значение температуры приходит с разделителем.
Так что простой выход -- не использовать модуль MegaD для получения значений с датчиков, а сделать, например, как описано в этой ветке здесь https://mjdm.ru/forum/viewtopic.php?f=24&t=6187&start=6.
За это сообщение автора Chainik поблагодарил:
Gutsu Dmitriy (Чт авг 20, 2020 10:19 pm)
Рейтинг: 1.16%
Gutsu Dmitriy
Сообщения: 26
Зарегистрирован: Вс янв 21, 2018 11:12 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Как принципиально подключаются устройства.

Сообщение Gutsu Dmitriy » Чт авг 20, 2020 10:19 pm

Как я понял мега не передает сама данные с датчика температуры ds18b20 , только если сервер запросил , так как если отключить опрос каждые к примеру 10 минут то не каких даных больше не придет о температуре , а вот состояние портов мега сама отправляет , я пока сделал так , в свойствах датчика , у меня к примеру свойство "value" в пункте проверка значений выбрал число в диапазоне и выставил минимум 10 , максимум 40 , да это не решает проблему с получением данных без разделения но по крайней мере такие данные не будут восприниматься и термостат не будет лишний раз включаться и выключаться , все равно спасибо за ответ
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как принципиально подключаются устройства.

Сообщение Chainik » Чт авг 20, 2020 10:50 pm

Корень проблемы в том, что модуль МегаД получает данные о состоянии портов путем периодического запроса о состоянии сразу всех портов. При этом контроллер выдает температуру без разделителя.
А вот когда опрашиваешь порт индивидуально, то приходит нормальное значение с запятой. Поэтому при опросе датчиков лучше вообще не использовать модуль.
Вот вам еще ссылка про термостат https://ab-log.ru/forum/viewtopic.php?f ... &start=406.
За это сообщение автора Chainik поблагодарил:
Gutsu Dmitriy (Чт авг 20, 2020 11:16 pm)
Рейтинг: 1.16%
Gutsu Dmitriy
Сообщения: 26
Зарегистрирован: Вс янв 21, 2018 11:12 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Как принципиально подключаются устройства.

Сообщение Gutsu Dmitriy » Чт авг 20, 2020 11:16 pm

В этом ты действительно прав , датчиков очень много , 20 шт используются как термостаты теплого пола ну и некоторые для контроля основных магистралей , пробывал на 4 контроллерах поставить разное время опроса , чтобы не все 20 шт опршивались одновременно а только по 6 датчиков разом , лучше не стало , писать для каждого код и запрос , как то заморочено пока для меня очень, есть только одна странная вещь , проблемы с данными происходят в основном когда включается электрический котел , установлен по таймеру на ночь , когда он выключен бывают неправильные показание но достаточно редко , два три раза за день , просадки по питанию из за котла практически нет , показания в пределах 225 V , добавил доп питание 5 V на датчики , проблему не решило , добавил резисторы , проблема не ушла , много дней уже перечитываю форум , если в итоге не получиться то придется следовать твоим инструкциям. Спасибо за помощь
Ответить