Датчик не обновляется.

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

Модератор: immortal

Ответить
chaoba
Сообщения: 32
Зарегистрирован: Пн мар 25, 2019 12:37 pm

Датчик не обновляется.

Сообщение chaoba »

Majordomo. Raspbian. Датчик утечки газа Xiaomi.
Перодически статус меняется на желтый. Датчик утечки газа не обновляется.
Нажму на кнопку на датчике, приходит сигнал от датчика, сатус меняется на зеленый.
Что с этим можно сделать?
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Датчик не обновляется.

Сообщение Logrus »

у меня сяоми батарейные девайся, особенно датчики протечки, дыма, газа, которые редко обновляют свое состояния
а проверять их работоспособность только по одному параметру величина заряда батарейки не надежно
проверяются еще через heartbeat который и формирует alive
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
chaoba
Сообщения: 32
Зарегистрирован: Пн мар 25, 2019 12:37 pm

Re: Датчик не обновляется.

Сообщение chaoba »

Logrus писал(а): Чт май 02, 2019 10:29 pm проверяются еще через heartbeat который и формирует alive
Можно пример?
chaoba
Сообщения: 32
Зарегистрирован: Пн мар 25, 2019 12:37 pm

Re: Датчик не обновляется.

Сообщение chaoba »

В принципе, как я понимаю, проблем особо нет. При появлении газа, датчик срабатывает, орет, отправляет сигнал в Majordomo, статус меняется на зеленый, сценарий отрабатывается. Только портит картинку желтый статус.
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Датчик не обновляется.

Сообщение Logrus »

1.PNG
1.PNG (10.02 КБ) 4690 просмотров
у всех сяоми девайсах есть две метрики (даже у которых нет батарейки, но это отдельная тема)
сенсор - шлюз - модуль обновляет их значение раз в (примерно) 50 мин. (в свойство, к сожалению метод не вызывается без изменения значения)
2.PNG
2.PNG (27.84 КБ) 4690 просмотров
к свойству можно привязать метод (который будет вызываться при каждой записи в данное свойство
в методе heartbeat

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

$this->setProperty('heartbeat', time());

if ($this->getProperty('alive') == 0) {
 $this->setProperty('alive', 1);
}
вот мы уже имеем три свойства: battery_level в процентах емкость батарейки, heartbeat время последнего сердцебиения в формате линукстайм, alive состояние сенсора

viewtopic.php?f=24&t=5827&start=20#p102488
в системе есть класс systemStates, в котором прекрасно реализуется контроль батареек, контроль сердцебиения и изменение состояния сенсора alive = 0
сам класс, его цикл и методы можно "доработать" дабы минимизировать нагрузку на систему и получить более гибкие настройки/возможности
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Датчик не обновляется.

Сообщение Logrus »

chaoba писал(а): Сб май 04, 2019 9:26 pm В принципе, как я понимаю, проблем особо нет. При появлении газа, датчик срабатывает, орет, отправляет сигнал в Majordomo, статус меняется на зеленый, сценарий отрабатывается. Только портит картинку желтый статус.
https://github.com/sergejey/majordomo/b ... kstate.php
не учитывает вышесказанного, контролирует состояние свойства alive, которое принимает значение 1 при срабатывании сенсора и сбрасывается в 0 по таймеру (по умолчанию 48 часов)

п.с. маленькая ремарка, у тс последняя версия образа (!!!) и там инжекция из ПУ расположена правильно (поправлено, то система ее в конце располагает)
вот у все остальных это или не работает, или закомментировано (у меня закомментировано, но у меня свои механизмы проверок, имхо лучше)
и еще ссылка на материал
https://connect.smartliving.ru/profile/ ... state.html
https://t.me/MajorDoMoRu/119479
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: Датчик не обновляется.

Сообщение SmoKE_xDDD »

Все же, как нибудь можно принудительно запросить свежие цифры допустим по датчику температуры?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:

Re: Датчик не обновляется.

Сообщение skysilver »

SmoKE_xDDD писал(а): Сб май 11, 2019 10:55 pm Все же, как нибудь можно принудительно запросить свежие цифры допустим по датчику температуры?
Записать в метрику command значение read через привязанное свойство объекта. Но не факт, что это будут актуальные данные с датчика, возможно, шлюз отдаст свои кешированные данные.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить