РЕКЛАМА НА ФОРУМХАУС Нет предела совершенству. Но есть достаточная целесообразность. зы. возможно переход на использование стандартных ip протоколов решит большинство задач по домашней автоматизации. С учетом нынешних гигабитных скоростей + протоколы с гарантированной доставкой - будет все просто. Как минимум не потребуется до контроллера тянуть 100500 проводов
За 4 дня полностью модифицировал ПО контроллера. С высоты своих накопленных знаний (хотя и не больших) оптимизировал многие алгоритмы. Вообще подход в программировании ПЛК сильно отличается от традиционного (Си, Паскаль и пр). После оптимизации алгоритмов все задачи (а их около 10) стали работать быстрее. Реализовал алгоритмы охранной сигнализации. Принципиальным изменение стало введение понятия "сценарий". Кол-во сценариев практически не ограничено, но мне показались важными только 3. 1. Штатная работа системы. День. Все дома. Охранка не включена 2. Ночной режим или режим ограниченной охраны. При этом включаются некоторые алгоритмы контроля нештатных ситуаций, включается режим охраны внешнего периметра. Данный сценарий включается и выключается автоматически но при условии, что пользователь самостоятельно не повысил режим охраны или не выбрал иной сценарий. Переключение между 1 и 2 сценариями по времени, ручное (планшет, комп), смс. 3. Охрана. В этом режиме так же происходит контроль нештатных ситуаций, перекрывается подача воды в дом (накопителя на 300 л. должно хватить пустому дому), включается охрана внешнего и внутреннего периметра. При переключении между режимами (сценариями) предусмотрена задержка постановки. Настраивается для каждого сценария отдельно. Набор датчиков участвующих в сценариях настраивается маской для каждого сценария. В режимах отличных от 1-го производится контроль автоматических ворот. Если они окажутся открытыми (случайно на брелок вечером нажал, или еще по какой причине) будут несколько попыток закрыть ворота. При не успешном завершении кол-ва попыток - событие - файл - смс - планшет и пр. При сработке охраны посылается СМС с сообщением какой именно датчик сработал. Очистить сработку датчиков можно только в ручную (планшет, СМС, физическая кнопка). Все важные события в системе регистрируются в файле. Кроме того на каждое контролируемое событие можно указать требование отправки СМС и период повторения если событие продолжается. Например нет смысла каждые 10 минут давать сообщение о том, что уровень в выгребной яме достиг максимума. В то же время если давление в системе отопления ниже минимума - то раз в 30 минут можно напомнить. Ну и т. д. На следующем этапе необходимо вывести сигнал в виде маячка на внешнюю сторону дома и подключить голосовую сигнализацию, которая будет оповещать, что обнаружено событие. Ну и самое важное - завести сигнал на штатную сигнализацию в охранную компанию. Со времен стройки в доме стоит и светиться какой-то прибор но все датчики от него уже давно отцеплены. Нужно будет выяснить чего это за зверь и как ему дать знать, что надо охранников вызывать. зы. Пики и провалы на скриншотах это моменты остановки контроллера, пока эксперименты проводил.
Настроил Openhab на отправку сообщений на e-mail о нарушениях безопасности. При обнаружении сработавшего датчика openhab вызывает скрипт, который в свою очередь формирует снапшоты с камер видеонаблюдения и отправляет их на e-mail сопровождая текстом какие именно датчики сработали. Все оказалось довольно легко. Больше времени потратил на постановку задачи - "что я хочу" В items добавил переменные с вызовом скрипта. Код: Switch ePCode_0 { exec="ON:/opt/openhab/cmd/alert.sh 0" } Switch ePCode_1 { exec="ON:/opt/openhab/cmd/alert.sh 1" } Switch ePCode_2 { exec="ON:/opt/openhab/cmd/alert.sh 2" } Switch ePCode_3 { exec="ON:/opt/openhab/cmd/alert.sh 3" } А это собственно сам скрипт Код: #!/bin/bash # # При сработке датчика охраны формируем снапшоты с avreg и отправляем на емейл # # # Позиция сообщения в массиве соответствует позиции датчика охраны PCode_[1..N] BODY=("Обнаружено движение в гараже!" "Обнаружено движение в мастерской!" "Обнаружено движение в котельной!" "Обнаружено движение в ванной 0 этажа!" "Обнаружено движение в фойе 2 этажа!" "Обнаружено движение в прихожей!" "Обнаружено движение в ванной 1 этажа" "Разбито стекло в гараже!" "Разбито стекло в мастерской" "Разбито стекло в котельной!" "Разбито стекло в ванной 0 этажа!" "Разбито стекло в ванной 1 этажа!" "Секционные ворота открыты!" "Калитка секционных ворот открыта!") # формируем строку сообщения IND=$1 # Создаем переменную с датой DATE=`date +%y-%m-%d_%H-%M-%S` echo $DATE 'Starting IND=' $IND 'BODY=' ${BODY[$IND]} >> /opt/openhab/cmd/alert.log # лог-файл команды sendEmail LOGFILE=/opt/openhab/cmd/sendemail.log # Будет отображаться "От кого" FROM=from_addres@mail.ru # Кому MAILTO=to_addres@mail.ru # Тема письма NAME="Smarthome: Нарушение периметра безопасности!" # Тело письма #echo ${BODY[$IND]} # Скрипт легко адаптируется для любых почтовых серверов SMTPSERVER=smtp.mail.ru # Логин и пароль от учетной записи mail.ru SMTPLOGIN=from_addres@mail.ru SMTPPASS=password # Путь к дериктории сохранения снапшотов. Предварительно создать и дать владельцу openhab IMG_PATH=/opt/openhab/cmd/snapshot/ #echo $IMG_PATH # Формируем имена файлов-снапшотов для каждой камеры (добавляем неограниченное кол-во камер) NAME1=cam1_$DATE.jpg NAME2=cam2_$DATE.jpg NAME3=cam3_$DATE.jpg #echo $NAME1 FNAME1=$IMG_PATH$NAME1 FNAME2=$IMG_PATH$NAME2 FNAME3=$IMG_PATH$NAME3 #echo $FNAME1 #echo $FNAME2 #echo $FNAME3 # Забираем снапшоты с avreg wget -q --user=my_user --password=my_password 'http://192.168.1.7:874/avreg-cgi/jpg/image.cgi?camera=1' -O $FNAME1 wget -q --user=my_user --password=my_password 'http://192.168.1.7:875/avreg-cgi/jpg/image.cgi?camera=2' -O $FNAME2 wget -q --user=my_user --password=my_password 'http://192.168.1.7:876/avreg-cgi/jpg/image.cgi?camera=3' -O $FNAME3 # Отправляем письмо. # предварительно установить sendEmail # apt-get install sendEmail # При необходимости добавить другие файлы в т.ч. с других камер /usr/bin/sendEmail -f $FROM -t $MAILTO -o message-charset=utf-8 -u $NAME -m ${BODY[$IND]} -s $SMTPSERVER -o tls=yes -xu $SMTPLOGIN -xp $SMTPPASS -l $LOGFILE -a $FNAME1 $FNAME2 $FNAME3 При проверке на емейл пришло сообщение в котором были 3 снапшота с указанных камер.
@Smith2007, текст сообщений избыточно длинный. Я использую две версии сообщений - для быстрого информирования на дисплеях/SMS и для записи в журналы. Ваша "длинная" форма пригодна для записи в журналы, но на СМС она будет приводить к тому что сообщение не уложится например в 70 знаков и кроме двойной оплаты вы еще и задержите приход сообщения на несколько секунд (приём второй части смс)
Этот скрипт исключительно для емейл информирования. СМС сообщения отправляет сам контроллер без использования openhab. Разные каналы добавляют уверенности, что информация будет доставлена до получателя. В данном случае на СМС отправляется короткое сообщение о нарушении охраны без детализации по датчикам. Далее смотрим емейл, видео или параметры контроллера через openhab.
Дошли руки до создания интерфейса настроек. С учетом того, что все основные настройки были перемещены в массивы (это как раз позволило применить понятие "сценарии") задача по их корректировке свелась к редактированию массивов. Принцип простой: Сначала заносим в переменную номер строки массива, затем выполняем заполнение переменных Modbus Slave значениями из массива. Затем редактируем данные и жмем кнопку сохранить. Переменные из слейва сохраняются в массиве. Так "сложно" - это потому, что редактирование массива по Modbus со стороны Openhab.
Панелька на фотках (софт) - это какая то опенхабовская компонента? как звать? под какие платформы есть?
Это все оригинальное от openhab. Есть ещё несколько шаблонов интерфейсов и они смотрятся вообще шикарно. Множество различных элементов интерфейса. Но на изучение время необходимо, а его не много Клиенты опенхаба есть на андроил и иайосы. Кроме того в качестве клиента может выступать любой браузер.
@Smith2007, заинтриговали ваши отзывы про avreg, попробовал поставить посмотреть чего за 7 лет нового. Увы, рожденый ползать летать не может. Изменилось в проекте не очень много. Как настроить захват с rtsp/h.264 камеры? Я прописал все имеющиеся настройки, но в логах пишет Mar 29 06:45:53 avreg avregd: cam[1]: mjpg -> install@87.255.10.44:55945: have not a source video stream now #5 (resp.status 503) при том что никакого mjpeg у меня нету.
Ну я потому и решил "а вдруг" и попробовать. Но чудес нету. "Нормально поддерживать" - это извините полноценный видеоархив в 2-3 битрейтах, с нормальным поискам по событиям. Что-то вот такое хотя бы. и такое гораздо вернее можно допилить самому на OpenNVR и opencv.
Вопрос к ТС а что если https://ru.aliexpress.com/item/FX3G-60MT-ES-A-MITSUBISHI-PLC-100-240VAC-Main-Unit-New/1900566361.html вродь тож плк только митсубижи да и цена...!
Не нашёл описания на русском, не очень понятно. Не увидел ethernet порт. Для связи с модулями используется rs422, а не rs485. Собственное ПО для программирования. Т. е. в слачае возникновения вопросов задать их будет некому. Я бы не стал такой брать. Если читали эту ветку с начала, то я обосновал выбор для себя. Тех поддержка на русском. Доступность в РФ. Живой форум. Да ицена на приведенный контроллер не маленькая с учётом функционала. Тот же ПЛК110 имеет eth, rs485 2 шт., rs233 2 шт, usb, встроенную поддержку modbus и широко распространенную среду программирования.
На сайте производителя указано наличие USB порта, однако железка все равно сомнительная. Один плюс - что есть версия с транзисторными выходами.