Автоматизация в ванной и в туалете

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 274 раза

Re: Автоматизация в ванной и в туалете

Сообщение Divan » Пт дек 25, 2020 4:49 pm

Я это делал на тестовой виртуальной машине, на мастере. Скорее по этой причине и не работает на Альфе. Значит на тестовой машине просто выбирайте мастер.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 274 раза

Re: Автоматизация в ванной и в туалете

Сообщение Divan » Пт дек 25, 2020 6:48 pm

Alexander Znamensky писал(а):
Пт дек 25, 2020 2:26 pm
Привет!

Несколько комментариев:
1. Сцена из бекапа не устанавливается на Альфу. - вешает наглухо систему.
2. В видео и в бекапе не совпадают скрипты - новички запутаются )))
3. Возник вопрос - зачем такая сложная реализация? Мне кажется, что объекты SDoorVannaya / SDoorToilet лишние?

Привожу свой код (он у меня давно работает в чем-то он похож, но, кмк попроще). Может я что-то не учитываю в своей автоматизации?
Этот скрипт я вызываю при открывании-закрывании двери и при обнаружении движения:
СпойлерПоказать

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

// Открыли дверь, включаем свет на 10 секунд.
if (gg('Дверь_в_ванную.status') == 0) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 10);
	}
// Дверь открыта и было движение, включаем свет на 3 минуты.
elseif (gg('Дверь_в_ванную.status') == 0 && gg('Датчик_движения_в_ванной.status') == 1) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 60*3);
	}
// Дверь закрыта и было движение, включаем свет на 10 минут.
elseif (gg('Дверь_в_ванную.status') == 1 && gg('Датчик_движения_в_ванной.status') == 1) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 60*10);
	}
// Дверь закрыта и нет движения, выключаем свет через 5 сек.
elseif (gg('Дверь_в_ванную.status') == 1 && gg('Датчик_движения_в_ванной.status') == 0) 
	{
//	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 5);
	}
Кстати, забыл упомянуть. ДД не фиксирует движение, если лежишь в ванной. Горячая вода и пар препятствуют обнаружению. Система может ошибочно посчитать, что в ванной никого нет и выключит свет.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
AK1
Сообщения: 89
Зарегистрирован: Чт фев 13, 2020 6:39 pm
Благодарил (а): 14 раз
Поблагодарили: 13 раз

Re: Автоматизация в ванной и в туалете

Сообщение AK1 » Пт дек 25, 2020 8:07 pm

Добавь датчик температуры самой ванны. Температура воды д.б. выше температуры воздуха
За это сообщение автора AK1 поблагодарили (всего 2):
Alexander Znamensky (Сб дек 26, 2020 10:56 am) • ZyaK (Сб дек 26, 2020 7:26 pm)
Рейтинг: 2.35%
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 274 раза

Re: Автоматизация в ванной и в туалете

Сообщение Divan » Пт дек 25, 2020 8:13 pm

AK1 писал(а):
Пт дек 25, 2020 8:07 pm
Добавь датчик температуры самой ванны. Температура воды д.б. выше температуры воздуха
В моем случае все надежно. Сбоев нет. Система точно знает, что в ванной\туалете кто-то есть и когда включается режим "в помещении кто-то есть", то ДД уже не нужен и свет физически никто не сможет выключить (кто-то ошибочно посчитал, что внутри никого нет и нажали на выключатель). Можно хоть полдня лежать в ванной, свет не выключится.
За это сообщение автора Divan поблагодарил:
ZyaK (Сб дек 26, 2020 7:26 pm)
Рейтинг: 1.18%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

Re: Автоматизация в ванной и в туалете

Сообщение Alexander Znamensky » Сб дек 26, 2020 10:54 am

Divan писал(а):
Пт дек 25, 2020 6:48 pm
Alexander Znamensky писал(а):
Пт дек 25, 2020 2:26 pm
Привет!

Несколько комментариев:
1. Сцена из бекапа не устанавливается на Альфу. - вешает наглухо систему.
2. В видео и в бекапе не совпадают скрипты - новички запутаются )))
3. Возник вопрос - зачем такая сложная реализация? Мне кажется, что объекты SDoorVannaya / SDoorToilet лишние?

Привожу свой код (он у меня давно работает в чем-то он похож, но, кмк попроще). Может я что-то не учитываю в своей автоматизации?
Этот скрипт я вызываю при открывании-закрывании двери и при обнаружении движения:
СпойлерПоказать

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

// Открыли дверь, включаем свет на 10 секунд.
if (gg('Дверь_в_ванную.status') == 0) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 10);
	}
// Дверь открыта и было движение, включаем свет на 3 минуты.
elseif (gg('Дверь_в_ванную.status') == 0 && gg('Датчик_движения_в_ванной.status') == 1) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 60*3);
	}
// Дверь закрыта и было движение, включаем свет на 10 минут.
elseif (gg('Дверь_в_ванную.status') == 1 && gg('Датчик_движения_в_ванной.status') == 1) 
	{
	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 60*10);
	}
// Дверь закрыта и нет движения, выключаем свет через 5 сек.
elseif (gg('Дверь_в_ванную.status') == 1 && gg('Датчик_движения_в_ванной.status') == 0) 
	{
//	sg('XiRelay26.status', 1);
	SetTimeOut('XiRelay26OffTimer', 'sg("XiRelay26.status", 0);', 5);
	}
Кстати, забыл упомянуть. ДД не фиксирует движение, если лежишь в ванной. Горячая вода и пар препятствуют обнаружению. Система может ошибочно посчитать, что в ванной никого нет и выключит свет.
Да, все верно! В моем случае это непринципиально. Но если лежать в ванной, то можно увеличить время таймера в случае "Дверь закрыта и было движение, включаем свет" с 10 минут, например, до 40 минут или столько, сколько нужно лежать в ванной ))).

Мне только не нравится вариант включения света без ограничения времени. Потому что датчик движения может не сработать. У меня бывает, что zigbee датчики теряются.

Конечно, можно заморочиться и проверять, например, beatrates или время последней активности датчика. Но в этом случае код увеличится и количество обращение к БД вырастет.
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
ZyaK
Сообщения: 387
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 42 раза
Поблагодарили: 67 раз

Re: Автоматизация в ванной и в туалете

Сообщение ZyaK » Сб дек 26, 2020 7:28 pm

AK1 писал(а):
Пт дек 25, 2020 8:07 pm
Добавь датчик температуры самой ванны. Температура воды д.б. выше температуры воздуха
Отличное решение! со 100 процентной гарантией!!!
пожалуй себе так и сделаю!
как раз в процессе ремонта, то есть строительства
PI2 + MQTT + 5 ESP8266 + Atmega16
Gena
Сообщения: 11
Зарегистрирован: Пт ноя 13, 2020 11:45 am
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Автоматизация в ванной и в туалете

Сообщение Gena » Пн ноя 22, 2021 3:22 pm

Добрый день
Спасибо автору Divan за прекрасную логику и реализацию сценария "Автоматизация в ванной".
все прекрасно работает за исключением:
5) Открыли дверь, свет включился и вы зашли и вышли, не важно, закрыли или не закрыли дверь. Если в помещении не будет движения, то свет выключится через указанное вами время (я так понимаю через 3 минуты).

В методе какого датчика (двери или движения) прописан этот сценарий?
Можно ли реализовать эту логику через интерфейс датчиков и выключателя в простых устройствах? Если да, то подскажите, как это сделать?
Спасибо за ответ
krepton85
Сообщения: 52
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Автоматизация в ванной и в туалете

Сообщение krepton85 » Пт янв 07, 2022 6:52 pm

Тоже думаю использовать для туалета датчик-дальномер на задней стенке (напротив двери) и что бы сигнал в MJDM передавался по радио 433МГц, через шлюз. И хотелось бы что бы это все работало от АКБ, т.е. с низким энергопотреблением. По хорошему нужен датчик с низким потреблением и выходом внешних прерываний, что бы будил МК (на Ардуино совместимом МК будет). Может кто-нибудь знает такие датчики с дистанцией до 5М? Ультра-звуковые не особо подходят для АКБ питания т.к. их нужно не прерывно опрашивать с МК.
ZyaK
Сообщения: 387
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 42 раза
Поблагодарили: 67 раз

Re: Автоматизация в ванной и в туалете

Сообщение ZyaK » Сб янв 08, 2022 5:28 pm

вы не правильно рассуждаете, сам датчик не жрет ничего, основную энергию потребляет контроллер во время передачи данных.
у него на выходе если он цифровой это 1 или 0. ну будет он жрать 1 - 10 миллиампер да и хрен с ним нормального литиевого аккума хватит лет на 5 точно.
необходимо решать потребление самим МК и отправкой данных по сети.
например микроконтроллер спит всё время, просыпается когда на внешний вход приходит 1, через пол секунды повторяет опрос внешнего входа и если 1 там же присутствует - отправляет данные и ждет пока единица не сменится нулем. на входе появился 0 -> оправляем данные, делает всё что требуется и опять засыпает.
PI2 + MQTT + 5 ESP8266 + Atmega16
Ответить