GSM контроллер CCU825

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
d.v.ermakov
Сообщения: 645
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: GSM контроллер CCU825

Сообщение d.v.ermakov » 25 дек 2018, 08:57

Открытый коллектор можно просто подключить к стандартному входу, соблюдая полярность.
Вот это стоит почитать: http://easyelectronics.ru/osnovy-na-palcax-chast-4.html

olegik-ah
Сообщения: 41
Зарегистрирован: 21 ноя 2017, 18:49
Откуда: Москва

Re: GSM контроллер CCU825

Сообщение olegik-ah » 25 дек 2018, 22:51

Kirill2L писал(а):
22 дек 2018, 11:22
Да, конечно.
Вот пара скриптов. Скрипты завязаны на CMS демо сайта, который Андрей делает.
1. ccu825.php в цикле опрашивает контроллер CCU825 и отражает события в БД.
2. heat_control.php скрипт поддержания температуры в доме. Тут можно взять форму запроса к CCU825, который позволяет GET запросами управлять состоянием выходов CCU825.
Оба скрипта хорошо документированы по тексту, можно брать только нужное, выкидывая лишнее.
Спасибо! На праздниках поковыряю.

THK
Модератор
Сообщения: 577
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: GSM контроллер CCU825

Сообщение THK » 03 янв 2019, 14:12

Всех с наступившим Новым Годом!

Праздники проходят не зря. Удалось таки позаниматься с контроллером. Пока реализован только демон, следящий за состоянием входов, выходов, режимом работы контроллера, состоянием батареи, напряжением питания, температурой в корпусе и датчиком его открытия, а так же за напряжением на входах. В случае изменения любого параметра вызывается соответствующий этому параметру скрипт - дальше дело техники.
Демон пока не прошел тестирование (отработал сутки). Для его испытаний надо скопировать скрипты в \etc\CCUDeamon и запустить его примерно так

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

ccudeamon -p Ваш_пароль_на_CCU825 -D
Кстати, сначала лучше запустить его с ключем -h :)
Исходники (с++) и скомпилированная программа во вложении. Буду рад любым замечанием и предложениям.

PS Задело меня за живое утверждение, что CCU лишняя запчасть, хочу еще раз замолвить за него словечко. МегаД имеет цифровые входа, следовательно контроль состояния линии ей недоступен, у CCU входа аналоговые и она контролирует целостность шлейфов.
Допустим такой сценарий: Жена попросила Вас забить в стену гвоздь для ее любимой картины и Вы случайно попали в провод от датчика дыма (с проводкой и трубами, проложенными в стенах такое случается довольно часто) и Вы, с чувством выполненного долга ушли гулять с собакой, а жена ушла в магазин.
Дальше даже писать страшно, надеюсь Вы не курите и плохо затушенная тлеющая сигарета из пепельницы не упадет на ковер...
CCU способна отследить обрыв/замыкание шлейфа и не отпустит Вас из дома просто так, а мега?
Не хочу сказать ничего плохого про мегу - она хороша, но для своего круга задач.
Как я уже писал система безопасности всегда должна быть самостоятельной, надежной и независимой от всего остального.
Вложения
CCUDeamon 2019.01.03.rar
(125.06 КБ) 5 скачиваний

THK
Модератор
Сообщения: 577
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: GSM контроллер CCU825

Сообщение THK » 04 янв 2019, 18:50

Добавлю пример скрипта, вызываемого деманом:

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

#! /bin/sh
#
d=`date`
echo $d "  Изменен режим работы CCU825. Текуший режим \"Охрана\"." >> /var/log/ccudeamon.log
curl -d "ADR1=MW3000&VALUE1=2&FORMAT1=%d" http://login:password@192.168.1.111/WRITEPI > /dev/null
curl http://192.168.1.112/motion/control/1/detection/start > /dev/null &
Скрипт фиксирует в файле /var/log/ccudeamon.log произошедшее событие и устанавливает бит %MX3000.1 в контроллере, остальные биты в слове %MW3000 сбрасываются. Биты этого слова отражают режим работы CCU825 (Наблюдение, Охрана, Защита). А также активирует запись по детектору движения одной из камер.

Теперь мой контроллер WAGO знает в каком режиме работает сигнализация и может принимать решения о необходимости работы света, вентиляции и других систем, а сервер не пишет видео когда дома кто то есть.

THK
Модератор
Сообщения: 577
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: GSM контроллер CCU825

Сообщение THK » 07 янв 2019, 13:56

Немного причесал исходник, в процессе нашлись моменты, которые надо было подправить. Вот список изменений:
v0.12
- Изменено имя директории с "\etc\CCUDeamon\" на "\etc\ccudeamon\".
- Удалены скрипты "Partition_Arm.sh", "Partition_Disarm.sh", "Partition_Protect.sh" вместо них добавлен скрипт "Partition_State.sh".
- Удалены скрипты "Battery_Disconnected.sh", "Battery_Low1.sh", "Battery_Low2.sh", "Battery_NotUsed.sh", "Battery_OK.sh" вместо них добавлен скрипт "Battery_State.sh".
- В скрипты добавлены описания параметров их вызова.
- Исправлены ошибки, приводящие к падению программы при количестве входов отличном от 16 или при количестве выходов отличном от 7 (2 реле + 5 выходов).
- Добавлена поддержка сигнализаций с количеством разделов охраны более одного.

Теперь можно сказать, что это релизная версия. По крайней мере меня устраивает.

PS Кто то уже пробовал демона? Скачивания есть, но никто ничего не пишет... Либо все устраивает, либо все настолько плохо, что писать не хочется. :)
Вложения
ccudeamon 2019.01.07.rar
(126.42 КБ) 6 скачиваний

THK
Модератор
Сообщения: 577
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: GSM контроллер CCU825

Сообщение THK » 12 янв 2019, 13:33

Столкнулся с такой проблемой, при вызове скрипта надо сделать некоторые арифметические операции над параметрами, которые переданы скрипту.

Во первых надо заменить оболочку выполнения шелл на баш, для этого первую строку скрипта надо заменить с

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

#! /bin/sh
на

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

#! /bin/bash
Теперь стала доступна комманда let которая отлично подходит для проведения целочисленных вычислений. Например для вычисления адреса переменной в контроллере я использую

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

let a=$1+19
После выполнения этой строки в переменной $a содержится адрес в контроллере.

Вторая проблема. Невозможно передать контроллеру переменную с плавающей точкой. Для выхода из положения, переменную умножают на 10, 100 или 1000 и передают ее контроллеру, но команда let не может работать с переменными с плавающей точкой.
Для решения этой проблемы я нашел следующее решение. С помощью регулярных выражений разобрать переданный скрипту параметр как строку, например:

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

[[ $2 =~ ([[:digit:]]+).([[:digit:]]{3}) ]]
v=${BASH_REMATCH[1]}${BASH_REMATCH[2]}
После выполнения этого кода в переменной ${BASH_REMATCH[1]} будет содержаться целая часть числа, в переменной ${BASH_REMATCH[2]} три знака после "запятой" (в нашем случае точки), а в переменной $v целая часть числа + три знака после запятой. Это равнозначно умножению переменной $2 на 1000, что нам и требуется.
Следует упомянуть, что в строке "[[ $2 =~ ([[:digit:]]+).([[:digit:]]{3}) ]]" нельзя ни добавлять пробелы, ни убирать - требования "птичьего языка" bash. В зависимости от задачи надо поменять количество знаков после запятой, в примере указано три знака после запятой - "{3}" и один или более до запятой - "+".

Надеюсь информация поможет кому ни будь сэкономить пару часов на поиски решения. :)

THK
Модератор
Сообщения: 577
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: GSM контроллер CCU825

Сообщение THK » 16 янв 2019, 20:26

Пришел ответ из техподдержки RADS Electronics по поводу моего запроса. Процитирую переписку здесь:
Добрый день.

Столкнулся с такой проблемой. При разборе ответа от CCUproxy состояние батареи Low1 и Low2 не наступают. При разряде до этих уровней Battery.State = OK. События BatteryLow1 и BatteryLow2 происходят.

По описанию JSON протокола Battery.State могут принимать значения "Low2" / "Low1" / "OK" / "NotUsed" / "Disconnected". Собственно вопрос, это ошибка описания или проблема с CCUproxy / контроллером. Версия CCUproxy 1.4. Идентификатор контроллера для обращения в техподдержку: CCU825-H+E011D-h10.02-f02.07-b01.02-May 10 2016-RUS-ххххххххххххххххххххххххххххх
Добрый день.

Внесли правки в прошивку. Проверьте. Загрузка непосредственно через веб интерфейс.
Обновленная прошивка работает корректно. Если кому нужна, пишите в личку. Обновленный файл прошивки называется CCU825-H+E011D_v0209_Jan-16-2019_RUS_h1002_b0101.bin

Ответить