Main

<<< Сценарии

Подключаем датчик открытия въездных ворот

Ниже описан сценарий с использованием датчиков типа типа «сухой контакт» (нормально замкнутый) для информирования об открытии , либо закрытии въездных ворот (ворот гаража, входной двери и т.д.) и запуска различных сценариев "умного дома".
В данном случае, предполагается наличие подключенного контроллера Arduino по данной схеме Схема контроллера и датчика гаражной (любой) двери, ворот.

1. Задаём класс объектов keySensors со следующими свойствами класса:

2. Задаем методы данного класса:

3. Пишем код для данного метода

$this->setProperty('status',$params['status']);
$this->setProperty('updatedTimestamp',time());

4. Добавляем объект для данного класса, например sensorGarage

В результате можно уже обращаться с такой ссылкой для установки

статус (закрыт)
http://АДРЕС_СЕРВЕРА/objects/?object=sensorGarage&op=m&m=statusChanged&status=1

статус открыт
http://АДРЕС_СЕРВЕРА/objects/?object=sensorGarage&op=m&m=statusChanged&status=0

В результате можно настроить код метода именно для этого сенсора:

if ((int)$params['status']==0) {
 say("Внимание! Открывается въезд в  гараж.",5);
} else {
 say("Гараж закрыт.",5);
}

if ($params['status']) {
 $this->setProperty('statusText','закрыт');
} else {
 $this->setProperty('statusText','открыт');
}

Обновление (12.03.2012)

Через некоторое время решил дополнить этот сценарий одной полезной функцией -- напоминанием о том, что гараж открыт. Для этого создадим скрипт напоминания под названием reminderGarage с таким вот кодом:

say('Напоминаю, что открыт гараж',5);
SetTimeOut("reminderGarageTimer","runScript('reminderGarage');", 15*60);

По сути, этот скрипт говорит, что гараж открыт и перепланирует запуск самого себя через 15 минут, созданием через функцию SetTimeOut таймера под названием reminderGarageTimer.

Осталось только немного модифицировать вышеприведённый метод сенсора (обработчик события от датчика) для первого запуска скрипта и очистки таймера, когда гараж закрыт:

if ((int)$params['status']==0) {
 SetTimeOut("reminderGarageTimer","runScript('reminderGarage');", 15*60);
 $this->setProperty('statusText','открыт');
 say("Внимание! Открывается въезд в  гараж.",5);
} else {
 ClearTimeOut("reminderGarageTimer");
 $this->setProperty('statusText','закрыт');
 say("Гараж закрыт.",5);
}

В коде добавилась функция SetTimeOut для планирования первого вызова скрипта напоминания через 15 минут и функция ClearTimeOut, которая очищает таймер при закрытии гаража, чтобы не было лишних напоминаний.

Так же я сделал в меню управления отдельную кнопку, на которую повесил такой код:

 ClearTimeOut("reminderGarageTimer");

Этот код просто "прибивает" таймер -- функция полезная на тот случай, если я открыл гараж и он у меня должен быть открыт длительное время в силу каких-то обстоятельств, при этом мне совсем не хочется слушать напоминание об этом каждые 15 минут.

 
 

Обсуждение

 

pdmitry2: Помогите пожалуйста настроить датчик открытия входной двери. пытаюсь сделать на базе датчика наличия напряжения на основе ключа 2406. Что хочу - что бы при открытии двери, выводилось сообщение "Входная дверь открыта", а при закрытии соответственно "Входная дверь закрыта". Что сделано: http://clip2net.com/clip/m6909/thumb640/1368198934-clip-39kb.png http://clip2net.com/clip/m6909/thumb640/1368198860-clip-12kb.png http://clip2net.com/clip/m6909/thumb640/1368198797-clip-12kb.png http://clip2net.com/clip/m6909/thumb640/1368198648-clip-6kb.png http://clip2net.com/clip/m6909/thumb640/1368198496-clip-8kb.png Тут вроде всё хорошо, а вот с кодом statusChanged проблемы. Пробовал прописать код по аналогии с http://smartliving.ru/Main/ScMonitorContact и по аналогии с http://smartliving.ru/Main/ModuleOnewire, но ничего не выходит. Время обновления обновляется, также меняется status, а вот в statusText ничего не появляется, ну и конечно и истории событий тишина. Варианты того, что пробовал: if ($params['VALUE']) { $this->setProperty("status","0"); //say('Входная дверь закрыта'); Явно что то делаю не так, а что не могу понять. $this->setProperty('statusText','Включено'); } else { $this->setProperty("status","1"); //say('Входная дверь открыта'); $this->setProperty('statusText','Выключено'); } if ((int)$params['status']==0) { say("Внимание! Открывается въезд в гараж.",5); } else { say("Гараж закрыт.",5); } if ($params['status']) { $this->setProperty('statusText','закрыто'); } else { $this->setProperty('statusText','открыто'); } if ($params['VALUE']) { sg("status","0"); say('Входная дверь открыта', 1); $this->setProperty('statusText','открыто'); } else { sg("status","1"); say('Входная дверь открыта', 1); $this->setProperty('statusText','закрыто'); } P.S. Не знаю, пригодится ли эта информация, для решения моей проблемы, но выключатель на базе DS2413 у меня работает отлично, использую такой код, в методе statusChanged: if ($params['VALUE']) { $this->setProperty("status","1"); say('Освещение включено'); $this->setProperty('statusText','Включено'); } else { $this->setProperty("status","0"); say('Освещение выключено'); $this->setProperty('statusText','Выключено'); }

pdmitry2: Сергей, помогите пожалуйста решить этот вопрос)

sergejey: попробуем... код для модуля 1-wire (установку updatedTime можно убрать): if (isset($params['sensed.B'])) { callMethod('Door.statusChanged',array('VALUE'=>$params['sensed.B']['VALUE'])); } код метода Door.statusChanged: $this->setProperty('updatedTime',time()); if ($params['VALUE']) { say('Входная дверь закрыта'); $this->setProperty('statusText','Открыто'); } else { say('Входная дверь открыта'); $this->setProperty('statusText','Закрыто'); } привязку к свойству можно оставить как есть, раз она работает

pdmitry2: Ура!) Спасибо огромное Сергей! Так всё работает!

pdmitry2: Похоже рано кричать "Ура") Как то не корректно работает. При любом значении выдаёт одно и то же. http://clip2net.com/clip/m6909/thumb640/1369218907-clip-7kb.png и statusText не меняется http://clip2net.com/clip/m6909/thumb640/1369218373-clip-5kb.png http://clip2net.com/clip/m6909/thumb640/1369218450-clip-5kb.png Но радует, что хоть как то работает и прогресс на лицо ;)

sergejey: а попробуй в этом коде if (isset($params)) { callMethod('Door.statusChanged',array('VALUE'=>$params)); } изменить на if (isset($params)) { say("all params: ".serialize($params)); say("sensed.B: ".$params); callMethod('Door.statusChanged',array('VALUE'=>$params)); } и напиши что в чат будет выдавать при открытии/закрытии.

pdmitry2: При открытии 16:05 : Входная дверь закрыта 16:05 : sensed.B: Array 16:05 : all params: a:3:{s:6:"memory";a:2:{s:9:"OLD_VALUE";s:0:"";s:5:"VALUE";s:0:"";}s:8:"sensed.B";a:2:{s:9:"OLD_VALUE";s:1:"1";s:5:"VALUE";s:1:"1"; При закрытии 16:06 : Входная дверь закрыта 16:06 : sensed.B: Array 16:06 : all params: a:1:{s:8:"sensed.B";a:2:{s:9:"OLD_VALUE";s:0:"";s:5:"VALUE";b:1;}} Открыто 16:09 : Входная дверь закрыта 16:09 : sensed.B: Array 16:09 : all params: a:3:{s:6:"memory";a:2:{s:9:"OLD_VALUE";s:0:"";s:5:"VALUE";s:0:"";}s:8:"sensed.B";a:2:{s:9:"OLD_VALUE";s:1:"1";s:5:"VALUE";s:1:"1"; И опять закрыто 6:12 : Входная дверь закрыта 16:12 : sensed.B: Array 16:12 : all params: a:1:{s:8:"sensed.B";a:2:{s:9:"OLD_VALUE";s:0:"";s:5:"VALUE";b:1;}}

sergejey: класс! нашёлся баг :) я обновил исходники, в частности файл modules\onewire\onewire.class.php там была ошибка и похоже отправлялось не то значение (всегда 1 даже если в 1-wire устанавливалось в 0) теперь можно обновиться из исходников, либо взять только указанный файл здесь: https://github.com/sergejey/majordomo/b ... .class.php

pdmitry2: Отлично! Вот теперь, работает как надо! Спасибо Сергей!

shemnik69: Доброе время суток!!!! Несколько дней, провожу ревизию и ввожу изменения в силовой шкаф своего УД, вот и решил что необходимо заменить модуль управления механикой ворот (а также другими устройствами (вентилятор, датчик освещенности, температурный и т.д.) который был выполнен на основе платы Ардуино (как основной элемент) на самостоятельный с необходимыми функциональными задачами. Итак. Плата была разработана в программе Layout5 (6) ее можно взять в интернете. Сама плата в архиве. Схема а также ее детали распишу отдельно ближайшее время после наладки и окончательных настроек. Скетч который пришит в МК отрабатывается на стандартной плате Ардуино и на ней же "прошивается". Почему так? Уже неоднократно указывалось на то что сама плата Ардуино (UNO. Nano и т.д) это прекрасный полигон для отработки а также прошивки и проверки в работе. Но завершенной конструкции по "моей" (прошу прощения за "авторство" ) концепции не получается. Именно поэтому многофункциональный модуль не всегда отвечает конкретным условиям. Конечно данный вариант не все приемлют и не совсем это обязательно но почему бы так не делать. Теперь по деталькам. Плата, размер 100*100 мм. МК любой из серии Атмега 8-16-328, чем "выше", тем лучше поскольку свободное место в памяти всегда пригодиться, и в него можно прошить дополнительные функции. Выходные порты по сути стандартные как для Ардуино т.е цифровые и аналоговые. Но входах установлены оптроны для разделения цепей микроконтроллера о цепей управления кнопок и датчиков положения створы ворот а также датчиков движения которые фиксируют момент въезда/выезда автомобиля. Датчики движения применены потому что сейчас с переводом времени приезжать уже темно и для удобства прожектора подсвечивают створу и площадку пред въездом. А поскольку система открывает створу заранее то несколько не оптимально включать одновременно и свет. Скетч в основе я взял тот что выложил Сергей. Он доработан немного под особенности платы (наличие 2 х реле которые напрямую управляют автоматикой ворот (так называемая "низовая" автоматика привода) но также прекрасно работает на обычной плате например Uno, т.е проблемы с отладкой нет. Сама же плата взаимодействует с сервером (на данный момент это Аtom 525-4Gb) через Com (1-2) порты поскольку она будет размещена внутри главного щита и в непосредственной близости от материнской платы. Использование USB (8 шт) возможно, и наверное даже более модное.. но приобрести быстро преобразователь USB/USART (микросхему) мне так сразу не удалось ( только заказ) а ждать.... :D Да и потом, использование COM, проще и на плате он присутствует. Кроме того у меня в работе преобразователь USB/rs485 поэтому изменить плату под данный протокол дело нескольких минут. С самим же USB тоже не все так гладко... поскольку например "достучаться" до внешнего MK через Com 1-2 мне оказалось намного проще. Ближайшее 1-2 дня постараюсь приложить всю полную информацию, а также фото готового изделия и его "работу"... :D С Уважением!

shemnik69: Устройство собрано. Детали Микроконтроллер Armega 8A-168-328. Прошивается bootloader для работы с IDE Arluino. Если использовать Авторский скетч Сергея то он умещается в Atmega 8A ну и т.д. Распиновка выводов, стандартная как для плат Ардуино. Кварц ...тут есть нюанс! 8 Мгц и 16 Мгц... особенность см. в IDE Arduino. Но по большому счету для тех приложений которые используются 8 Мгц... даже много. :D Оптроны рекомендую TLP 521-2 есть и 4 в одном корпусе. но тогда не совсем удобный монтаж. Разъемы можно любые поскольку токи малые важны именно качество контактов и наверное некая эстетичность. Наличие нескольких "лишних" диодов оправданно тем что на плате присутствуют 2 реле которые могут порождать импульсы по шинам питания и которые могут "сбивать" нормальную работу МК. Как уже указывал выше, связь с материнской платой через COM. Помимо простоты это также даст возможность удаленной прошивки микроконтроллера т.е если например на самом сервере с MD стоит IDE Arduino то система воспримет данную плату как плату ардуино. И пользуясь стандартной процедурой прошивки можно например оперативно "переполошить" скетч под новые "правила". Либо его вставить в стандартную плату Arduino и сделать тоже самое (но я думаю всем понравится первый способ) ... :D Идем дальше... можно видоизменить плату и вместо конвертера USART/RS232 установить USART/RS485 и получить псевдо аналог USB только L-1200 Max... :D Реле нужны не всем поэтому их можно и не ставить. а поскольку данная плата в первую очередь планируется как "железный" блок начального уровня то он примет на себя все возможные удары как от датчиков так и прочие опасности... ппоэтому у него и такое исполнение. Никто не возражает против функционального аналога на готовых деталях/платах ...но немного это не то... в тоже время данная конструкция ни в коем случае не навязывается как "оптима", это просто один из вариантов исполнения платы опроса контактных датчиков и аналоговых сигналов (освещенность, напряжение, ток, влажность и тп). . :D

shemnik69: Вот схема и ее макет для моделирования и отладки скетча средствами Proteus. Модель можно загрузить в Протеус (7) в симулятор загрузить скетч (NEX) и в живую поиграть со схемой, причем сам симулятор поддерживает и "Живые порты" т.е сигналы как бы отправляются в " железо"...

shemnik69: Итак! Плата работает, скетч (пробный для Atmega8) в архиве. При программирование обращаю Внимание что в стандартной IDE может отсутствовать МК Atmega8 (ее нужно добавить). В принципе скетч будет работать и на 168 и тем более 328 Мегах т.е для пробы можно использовать любую. К сожалению в Меге 8 скетч уместится в "впритык" т.е использовать пока другие свободные порты нельзя. Тут нет проблемы, достаточно прошить в 328 или воспользоваться другой системой прошивки, но тогда нужна система с отладкой. сейчас пишу код и моделирую его в FlovCode V5 AVR, еще нужно будет подработать стандартную Arduino для прошивки микроконтроллеров но это чуть позже. В данный момент, проверяю как работает данная плата с MajorDomo.(система На WIN) как видно. данные поступают на COM 1 (на плате сервера). Для проверки была испробована программа которую предложил Сергей. Реле на плате, (2 шт) управляются посылкой строки "в плату" RelayOpenON(OFF) и RelayCloseON(OFF) т.е либо включить либо выключить. Низовая автоматика, двигателя привода, имеет защиту от "дурака" т.е автоблокировка цепей на релеи, поэтому в схеме и скетче нет логического блока анализа стояния реле поэтому вкл и выкл от команды сервера ( ну и кнопки и брелоки тоже). А вот текущее состояние створы МД понимает из сигналов от датчиков положения, следовательно все информационные сигналы зависимы. При сбросе (по питанию) реле откл. На самой плате тоже есть схемная автоблокировка т.е при возможном "глюк МК" и двойном срабатывании обеих реле контакты само-раз блокируются и ничего страшного не произойдет .. :D С Уважением!

shemnik69: После установки и испытания внёс изменение в скетч. Низовая автоматика не требует постоянного удержания реле, а средствами MD данную процедуру отрабатывать не следует (теряется распределение по функциям) поэтому тработка делаеттся в плате контроллера. Назвать его Ардуино как то не хочется но по сути это оно ... :D Теперь управление реле это посылка команд 81 или 91 т.е 8 (9) это ножка Pin f 1 'это активное состояние.

shemnik69: Тема была-бы не завершенной если не указать вариант схемы "низовой автоматики". т.е те элементы которые сами по себе не являются активными или содержащие активные логические элементы (микросхемы, микроконтроллеры и т.п.) но сочетание данных элементов образуют логические цепи имеющие несколько положений. Почему так? Не буду подробно расписывать. но понятно что если например мы нажали выключатель то свет (или другой прибор) должен работать (либо отключиться) в простом выключателе это механический элемент (перекидная планка), в электронных это сама схема. И там и там одинаковая задача решается но на разных компонентах и деталях. Теперь про привод. Силовой привод (не важно ворот, шторы, подъемник или еще что либо) т.е двигатель который в сочетании с редуктором образует блок механическое усилие которого должно быть ограничено в крайних положениях средствами низовой автоматики. Например створу ворот можно и просто закрыть руками ... не вариант. Можно ждать и смотреть пока привод ее закроет и самому выключить... вариант ... ? А можно просто кнопка открыть закрыть стоп. Классическая схема проверенная годами эксплуатации и гарантия надежности. Добавим в нее концевые элементы и все автоматические ворота готовы. Такая схема гарантирует 100% работу (при наличии 220 V) хоть с сервера, брелков, кнопок ... не зависимо. Детали 2 реле на 24 в. с 2 парами замыкающихся (переключаемых) контактов на напряжение 220 и. и ток 3-5 А. (по мощности двигателя). Кнопочная станция (пост на 3 кнопки) любой вариант который только Вам приглянулся для реверсивного управления. двигателями . В моем варианте двигатель на 220 в с двумя обмотками и пусковым конденсатором. Его мощность 120 вт . в сочетании с редуктором HK-47, на валу примерное усилие == 450-500 кГ. Т.е это уже серьезный агрегат который может не только машину повредить но и травмировать... Концевики - стандартные от пром автоматики, можно например лифтовые или от пром лебедок, но обязательно закрытого исполнения (для улицы). В остальном данная схема полностью автономна и независима и с УД взаимодействует через ранее описанную плату. Рисунок схемы в архиве (Splan7). Будут вопросы отвечу. Обращаю внимание что данная схема ориентированна как на промышленные приводы, так и те которые используются нестандартно. С Уважением!

shemnik69: Ну и вот так это получилось... работу еще не завершил ..(примерно 40%) ..из того что запланировано. На торчащие провода не смотрите..пожалуйста... еще ведется работа. Контроллер освещения установлен но МК отдал на прошивку через программатор поэтому пока он не подключен.

vova5049: Скажите, пожалуйста, shemnik69, а с какой целью у Вас гальванически связаны 220 и 24 вольта ?

shemnik69: Вы про схему "низовой" автоматики управления двигателем? По порядку почему так: 1. Сами детали привода и корпус и редуктор металлические и по правилам безопасности имеют ( и должны так быть выполнены) электрическое присоединение с заземляющим устройством. Т.е это, металлические конструкции забор (столбы и пр), а сами ворота имеют заглубленный 1.7 м. фундамент (для тележек) с элементами металла (арматура). 2. У меня в доме 3-ф питание, соответственно! в главном силовом щите тоже есть присоединение к "заземлению" и одновременно в той же точке и зануление, т.е 0 сети (от линии) электрически соединен с корпусом щита и шиной (проводником) заземления. 3. Цепи питания 24 в. Тут как такового условия нет, поскольку здесь постоянный ток (он же и для аварийного преобразователя питания котла 24/220 в) т.е связь как никак, а есть) и на заземленном корпусе правильнее должен быть + (так меньше коррозии) но поскольку имеется общий проводник и он гарантированного сечения (это металлическая шина сваркой связанная как с конструкциями ворота/заборы и т.д так и с металлическими деталями дома (это арматурный каркас) т.е это металлическая конструкция то его допустимо использовать. Кроме того в многофазной сети это обязательно. Отчасти, данная связь существует только по сути в 1 точке т.е в центральном блоке (блок питания 220/24 в. имеет присоединение (минус питания к корпусу силового шкафа) и как таковая связь не порождает уравнительных токов, по тому что это все-таки это разделенные контуры т.е питание двигателя (основные цепи) само по себе, а питание реле (проводники) само по себе. И потом на фото видны эти реле. НО . Вы правы! что в идеале, правильнее будет такую связь разорвать и питание 24 в. (т.е ответный провод) выполнить отдельным проводом. :D

shemnik69: Вопрос к знающим PHP людям. Прошу Вашей подсказки. Итак: Для удобства,и оперативного управления с планшета или смартфона домашними, ввел в меню управления ворот "выбор времени" ..но как выставить реакцию совпадения по времени (Alarm) привязать к исполнению скажем скрипта OpenGate или статуса Active не найду вариант. Просмотрел "коннекты". похожего варианта нет ни у кого. Скрины прилагаю.

sergejey: Выбор времени можно привязать к какому-нибудь свойству, а потом в onNewMinute объекта ClockChime поставить проверку if (timeIs(getGlobal('Свойство')) { runScript('нужныйскрипт'); } в моём коннекте можно посмотреть как будильник устроен -- приблизительно по такому принципу.

shemnik69: Спасибо! Сергей! Реализую.

shemnik69: В дополнение: Изменен "скетч" теперь есть вариант для передачи как напрямую в сервер через COM порт и программу GW либо Ser2Net дл Linux систем. а также с использованием драйвера сети (микросхема MAX485/487 и аналоги). Оба варианты отличаются только наличием строк управления передатчиком микросхемы в остальном алгоритм одинаков. Алгоритм под контроллер описанный выше но работает и на основе стандартных плат Ардуино. Алгоритм доработан на предмет обработки сигнала с датчика пресечения проема в открытом состоянии а также остановки створы при всех вариантах с уведомлением об данном "факте" сервера. Также добавлено подробное описание. Обращаю внимание что вариантов скетча уже 18 и каждый содержит некоторые изменения которые оперативно вносятся в саму программу. Еще хочу отметить что последняя версия Arduino IDE 1.6.1. (stable) с официального сайта! :!: компилит сам скетч более удачно по МК Атмега типа 8А (меньше сам NEX файл). При использовании других 16/32 Атмег данный факт не критичен. В остальном контроллер прекрасно себя зарекомендовал и отработал "зимнюю страду" во внешнем блоке привода на отлично.

rublin: День добрый, коллеги. Сам не могу разобраться как подключить ардуину, прошу помощи. На ардуину подключены герконы (датчики открытия дверей) и датчики движения. Хочу видеть в системе статус дверей и движение. Еще хотелось бы использовать режим "охраны", когда открытие двери обрабатывается как тревога. Скетч для ардуины взял этот (https://github.com/sochkasov/majordomo- ... roller.ino), только удалил ту часть, что про температуру. Объект sensorGarage сделал по инструкции (http://majordomo.smartliving.ru/Main/ScMonitorContact). Ардуина обрабатывает геркон, в консоли вижу: GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1 GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=0 Но свойства объекта не изменяются: https://www.dropbox.com/s/i611xw2r2l962 ... 4.png?dl=0 Что я делаю не так?

olehs: А как Вы поняли что что-то не так? Судя по картинке ворота закрылись в 15:13.

rublin: А как Вы поняли что что-то не так? Судя по картинке ворота закрылись в 15:13. Записалось одно (первое) состояние и больше не меняется. Не зависимо от того, открыты ворота или закрыты. Хотя ардуина шлет (да я и сам пробовал менять статус через браузер http://192.168.110.191/objects/?object= ... d&status=0)

zelevova: Думаю надо смотреть метод statusChanged объекта sensorGarage или класса содержащего этот объект. Насколько я помню "GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1" это вызов метода с передачей реквизита, а не изменение самого свойства.

rublin: надо смотреть метод statusChanged объекта sensorGarage или класса содержащего этот объект. Метод statusChanged не менял, как из коробки: if ($params['status']) {
 $this->setProperty('status',$params['status']);
}
$this->setProperty('updatedTimestamp',time());

$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=12*60*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); 

zelevova: А если заменить на: if (isset($params['status'])) {
 $this->setProperty('status',$params['status']);
}
$this->setProperty('updatedTimestamp',time());

$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=12*60*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); 

rublin: Заменил, не работает (((

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

dimonkos: Теперь бы придумать как переходить на режим "охрана" и реагировать по любому сработанному датчику... Вот и мне такое не помешало бы. И вообще хорошо бы было добавить режимы охраны по-умолчанию.

shemnik69: Разобрался, оказалось что все работает. Почему-то не заметно было изменения статуса в свойствах объекта. А когда включил хранить историю, то сразу увидел что все видно. Теперь бы придумать как переходить на режим "охрана" и реагировать по любому сработанному датчику... А в чем трудности? В МД уже есть такой режим "Охрана" т.е это кнопка вкл/выкл которая условно ничего не включает а ставит статус "флаг" что активно. А любой датчик "окно". дверь. ворота. протечка ...движение, да всё что угодно, что не должно срабатывать в нормальном режиме, активирует либо скрипт, (сирена, задвижка, усыпляющий газ, спустить собак :lol: ) и который например пишет в Телеграм "то-то и то-то". Все просто. ПРимеров этому навалом. А Вы на это как то реагируете. Либо реагирует система.

dimonkos: В МД уже есть такой режим "Охрана" т.е это кнопка вкл/выкл которая условно ничего не включает а ставит статус "флаг" что активно. А любой датчик "окно". дверь. ворота. протечка ...движение, да всё что угодно, что не должно срабатывать в нормальном режиме, активирует либо скрипт, (сирена, задвижка, усыпляющий газ, спустить собак :lol: ) и который например пишет в Телеграм "то-то и то-то". Все просто. ПРимеров этому навалом. А Вы на это как то реагируете. Либо реагирует система. Ткните носом где искать этот режим. Да и по примерам. Заранее благодарю.

shemnik69: Вот как пример: http://connect.smartliving.ru/profile/572 сценарий "SecurityArmed". (Режим охраны активирован) Смотрите примеры, у которых активны "режим тревога" Это опция есть в МД. Т.е это условно клавиша которая активируется либо человеком (например с планшета) либо автоматически. Я делал это по эффекту пропадания смартфонов (4 шт) из домашней сети, а также по факту закрытой на замок двери (датчик). Также система знает что если дверь не закрыта то это тоже признак (флаг). Потом, активность компютеров, телевизоров (смарты TV например пингуются в сети). Тут масса способов проверить что кто то есть дома и не активировать режим охрана либо активровать. Еще помимо смартфона есть всякие метки (ключи) и пр. Тут вариантов какой ВАм выбрать масса. Начните с простого напишите возможный сценарий поведения ситемы при заданных условиях и стане видно что необходимо и какой сценарий (и) писать. А примеров под эти варианты уже написано столько ... смотри не-хочу.

[ Обсудить на форуме ]

 

MajorDomo

Информация

Проекты

Партнёры

edit SideBar

 
 
 

 

Blix theme adapted by David Gilbert, powered by PmWiki