Ccu825 программа для андроид
10 января 2017 г.
- Поддержка контроллеров CCU422-HOME и CCU825-HOME / HOME+ / PLC / GATE.
- Теперь при запросе идентификации не сбрасываются журналы и настройки отображения объекта.
22 августа 2016 г.
- Поддержка контроллеров CCU422-H и CCU422-GATE (для управления воротами и шлагбаумами).
08 апреля 2016 г.
- Поддержка контроллеров с программируемой логикой (ПЛК/PLC): CCU825-HP, CCU825-HP+E011, CCU825-MZP, CCU825-MZP+E011. Язык программирования EXT.
- Добавлено событие об обновлении прошивки.
- Улучшен механизм ввода и сравнения номеров телефонов. Теперь номер телефона может содержать от 7 до 15 цифр.
27 октября 2015 г.
- Добавлена поддержка контроллера CCU422-ARISTON.
- Добавлена настройка "Внешнее питание", с помощью которой задается реакция на отключение внешнего питания контроллера (тревога/уведомление).
- Добавлена настройка "LED индикация", с помощью которой разрешается использовать LED для индикации уведомлений.
06 декабря 2013 г.
- Реализован обход ошибки в Android 4.1+, не позволяющей в некоторых случаях перейти в главный вид из детального по нажатию на иконку в левом верхнем углу.
- Добавлена настройка "количество знаков после запятой" для датчиков.
14 ноября 2013 г.
14 октября 2013 г.
- Повышена информативность диалога изменения объекта.
10 октября 2013 г.
- Исправлена ошибка, возникающая при вычислении математических выражений датчиков на Android 2.2.
08 октября 2013 г.
- Добавлена настройка "Листать по кругу" для детального вида объекта.
- Программа μGuard размещена на Google Play. ТРЕБУЕТСЯ ОБНОВЛЕНИЕ ПРОШИВКИ контроллера до версии 01.03 модификации DROID. Теперь для работы с программой не нужна регистрация (получение ключа). Для каждого объекта, введенного в программу, НЕОБХОДИМО ЗАДАТЬ ПАРОЛЬ доступа для SMS управления в соответствии с конфигурацией контроллера. Как это сделать показано здесь. Для перепрошивки обычных контроллеров в DROID обращаться по адресу Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. .
13 августа 2013 г.
- Обновлен пользовательский интерфейс.
- Реализована возможность листания страниц жестами.
- Реализована возможность быстрого возврата к главному виду из детального посредством нажатия на иконку в левом верхнем углу.
25 апреля 2013 г.
- Добавлена поддержка новых модификаций контроллеров CCU825-H+E011-DROID и CCU825-MZ+E011-DROID, в комплект которых включена лицензия на μGuard (регистрация бесплатна).
- Добавлена поддержка новых модификаций контроллеров CCU825-S+232, CCU825-S+485, CCU825-SM.
04 марта 2013 г.
- Добавлена поддержка новых модификаций контроллеров CCU825-H-DROID и CCU825-MZ-DROID, в комплект которых включена лицензия на μGuard (регистрация бесплатна).
- Добавлена возможность просмотра истории значений следующих элементов: входы, выходы, внешнее питание, батарея, температура платы, баланс. При длительном нажатии на любом из этих элементов появляется контекстное меню "Журнал значений".
20 февраля 2013 г.
- Добавлена поддержка новой модификации контроллера CCU422-LT-DROID, в комплект которого включена лицензия на μGuard (регистрация бесплатна).
- Добавлена функция выборочного просмотра тревог. Длительное нажатие на тревожный объект или тревожные элементы объекта приводит к появлению контекстного меню "Показать тревоги".
- Добавлена функция сброса тревог. Теперь нет необходимости удалять тревожные записи из журнала для сброса тревог. Длительное нажатие на тревожный объект или тревожные элементы объекта приводит к появлению контекстного меню "Сбросить тревоги". Записи в журнале при этом не стираются.
- Добавлена функция автоматической очистки журнала. Время хранения записей задается пользователем.
21 января 2013 г.
ТРЕБУЕТСЯ ОБНОВЛЕНИЕ МИКРОПРОГРАММЫ до версии 01.02 Jan 21 2013
29 декабря 2012 г.
- Теперь содержание формы запроса регистрации сохраняется при формировании запроса для повторного использования.
- Исправлена ошибка, в редких случаях приводящая к исключению при закрытии формы после редактирования параметров входа.
28 декабря 2012 г.
- Добавлена возможность настройки звука и вибрации тревожного оповещения. Расширен набор встроенных звуков. Добавлена возможность выбора внешних звуков.
20 декабря 2012 г.
19 декабря 2012 г.
17 декабря 2012 г.
Выпущена программа μGuard для дистанционного контроля CCU825 и CCU422. Программа работает на смартфонах и планшетах под ОС Android. Минимальная версия Android 2.2.
Вся информация об объекте (состояние входов/выходов, режим охраны, напряжение питания, заряд батареи, температура платы, баланс) отображается в текстовом и графическом виде на нескольких вкладках программы. Журнал событий позволяет в любое время проанализировать события на объекте и порядок их возникновения. Для управления контроллерами достаточно выбрать команду из списка, нет необходимости помнить текстовые имена реле и набирать SMS. Все данные передаются в двоичном виде, что позволяет получать полную информацию о приборе используя одно SMS.
Программа не требует сложной настройки, для начала работы достаточно ввести название и номер телефона объекта, получить лицензионный ключ от компании ООО "Гард-Софт". Поддерживаются все типы контроллеров CCU825 и CCU422 (требуется обновление микропрограммы).
Как настроить μGuard для работы через Интернет?
Необходима версия μGuard 3.x.
Как настроить контроллер CCU для надежной передачи событий через Интернет в программу μGuard?
Для надежной доставки событий необходимо использовать, как минимум, два способа передачи информации, один из которых является основным, а второй - резервным. При такой настройке сначала контроллер будет пытаться передавать события по основному каналу и только в случае неудачи по резервному, то есть по принципу "или". В большинстве случаев нет необходимости дублировать передачу событий по принципу "и" для одного пользователя.
Рассмотрим вариант настройки контроллера для передачи событий в программу μGuard через Интернет в качестве основного способа и через SMS в качестве резервного.
- На вкладке "Соединения" установить настройку "Порядок оповещений" в значение "До первого удачного: μGuard(сеть) или Голос или SMS" .
- На вкладке "Соединения" в группе "μGuard сетевое оповещение (пробуждение коротким звонком)" установить флаг "Разрешено" , выбрать "Доставка через Интернет" , установить "Снять данные с передачи, если не переданы за" в значение 3 мин (за исключением особых случаев этот параметр менять не рекомендуется). После чего выбрать желаемые источники событий.
- На вкладке "Соединения" в группе "Голосовое оповещение" сбросить флаг "Разрешено" .
- На вкладке "Соединения" в группе "SMS оповещение" установить флаг "Разрешено" , установить "Язык SMS" в значение "μGuard" , установить "Снять данные с передачи, если не переданы за" в значение 10 мин. После чего выбрать такие источники событий, которые были выбраны в группе "μGuard сетевое оповещение (пробуждение коротким звонком)" .
- Сохранить настройки в контроллер с помощью кнопки "Сохранить. "
Как добавить новый объект?
Пароль должен совпадать (включая регистр) с прописанным в конфигурации контроллера CCU. В стандартной конфигурации пароль: pass. Рекомендуется изменить пароль на собственный.
Как запросить идентификацию?
Запросить идентификацию можно из главного вида через контекстное меню объекта (меню вызывается долгим нажатием на объект):
Либо из детального вида объекта со страницы ИДЕНТИФИКАЦИЯ:
Если "Соединение 1" в контроллере не было настроено ранее (не прописан номер телефона в соединении), то при запросе идентификации произойдет привязка номера телефона, с которого выполнен запрос, к контроллеру. Об этом будет свидетельствовать запись в журнале событий:
Если "Соединение 1" в контроллере было настроено ранее (прописан номер телефона в соединении), то произойдет только идентификация контроллера.
Как запросить состояние?
Запросить состояние можно из главного вида через контекстное меню объекта:
Либо из детального вида объекта со страницы СОСТОЯНИЕ:
Как изменить режим охраны?
Как просмотреть журнал значений?
Аналогичным образом может быть просмотрен журнал значений для внешнего питания, температуры платы, баланса, входов и выходов.
Как изменить настройки входа?
Аналогичным образом могут быть изменены настройки выходов, профилей и периметров (для модификации MZ контроллера).
Как скрыть неиспользуемые входы/выходы/профили?
Аналогичным образом изменяется отображение выходов и профилей на соответствующих страницах объекта.
Как добавить свой датчик и привести вольты к желаемым единицам измерения?
Датчик можно добавить как новый:
Либо клонировать существующий (через контекстное меню датчика):
Назначение датчика входу:
Как управлять выходом?
Как управлять несколькими выходами одновременно?
Как применить профиль?
Как просмотреть тревоги?
Активные (несброшенные) тревоги отображаются на главном виде (суммарно по объекту), а так же по типам (внешнее питание, батарея, корпус, температура платы, баланс, входы) на страницах детального вида объекта:
Посмотреть все тревоги по объекту можно через контекстное меню объекта:
Посмотреть тревоги по конкретному элементу объекта можно через контекстное меню этого элемента:
Как сбросить тревоги по типу?
При этом запись о тревогах в журнале событий остается.
Аналогичным образом сбрасываются тревоги по внешнему питанию, батарее, корпусу, температуре платы, балансу.
Как сбросить все тревоги?
При этом запись о тревогах в журнале событий остается.
Как очистить журнал событий?
Как вернуться из детального вида объекта к списку объектов?
Что делать, если стали приходить нечитаемые SMS?
На телефон стали приходить нечитаемые SMS с номера SIM-карты, установленной в контроллер CCU, например:
Что делать, если в телефоне две SIM-карты?
В текущих версиях операционной системы Android нет возможности программно управлять выбором SIM-карты. Поэтому приоритет SIM-карты можно задать только средствами самого смартфона вручную. Ниже показан пример настройки смартфона Philips Xenium W632:
Если в конфигурации контроллера CCU включена опция "SMS управление только с телефонов из списка", то номер активной SIM-карты также должен быть прописан в нужном соединении.
В конце 2014 года была написана первая статья посвященная использованию GSM контроллера CCU825 в деревне — «GSM контроллер CCU825. Управление деревенским домом» . В 2016 году вышла новая версия GSM контроллера (версия 2). Давно пришло время обновить мою старую статью и описать настройку второй версии (долго статья лежала в черновиках…).
Во второй версии, серьёзно изменился интерфейс управления GSM контроллером. В версии 1, контроллер управлялся с помощью Windows приложения, а в версии 2 используется WEB интерфейс и появились новые полезные функции (API для интеграции контроллера в приложения, управление через ботов Viber и Telegram, управление GSM контроллером через Интернет и др).
Кто ни чего не слышал о GSM контроллере CCU825 или кому попалась в руки первая версия CCU825, то перед чтением данной статьи, рекомендую прочитать статью: «GSM контроллер CCU825. Управление деревенским домом» .
Новая статья получилась слишком объёмной, по этому разбил её на две части.
Управлять контроллером можно тремя способами:
В данной статье будет рассмотрен смешанный вариант доступа к GSM контроллеру (1 и 2 вариант).
Программа CCU proxy используется для локальной настройки GSM контроллера через USB порт.
CCU proxy есть для разных ОС. Windows, Linux для разных платформ (например его можно использовать на ARM микрокомпьютере Raspberry Pi) и для Mac OS.
В данной статье будет использоваться версия для Windows.
Используя USB кабель, подключаем GSM контроллер CCU825 к компьютеру. Должен загореться оранжевый светодиод (1).
CCU825 v2: Подключение по USB
Распаковываем архив ccuproxy.zip и запускам от прав Администратора файл ccu_shell.bat
Появится чёрное окно консоли Windows.
CCU825 v2: Запуск CCU proxy
и откроется браузер с запросом аутентификации на GSM контроллере
Запрос аутентификации на CCU825 через CCU proxy
Данные по умолчанию:
- Имя пользователя: admin
- Пароль: password
Далее откроется WEB интерфейс управления GSM контроллером CCU825 или CCU422 версии 2.
После покупки GSM контроллера CCU825 (или CCU422) необходимо сразу обновить прошивку до актуальной версии.
После прохождения аутентификации, откроется страница «Общее»
CCU825 v2: WEB страница с версией контроллера
Для обновления прошивки нам нужны следующие данные:
- Тип контроллера: CCU825
- Модификация контроллера: PLC (со встроенным скриптовым языком EXT)
- Аппаратная версия: 12.02
- Версия прошивки: 2.17
CCU825 v2: Загрузка прошивки
Скачиваем файл с расширением *.bin.
Заходим в меню «Прошивка» WEB интерфейса управления GSM контроллера.
CCU825 v2: Обновление прошивки
Так что, моё предубеждение выше в силе!
Выбираем файл прошивки с помощью кнопки «Обзор» (2).
В столбце «Контроллер» (3) видим текущую версию прошивки, в столбце «Файл» (4) — версию в скаченном файле прошивки.
Нажимаем кнопку «Обновить прошивку» (5). После обновления, контроллер автоматически перезагрузится.
CCU825 v2: Уровень сигнала сотовой сети
Постарайтесь разместить антенну так, что бы уровень сигнала был больше 40%. Подробнее ниже в главе: «Решение проблем с сетью и Интернет’ом: Слабый уровень сигнала GSM сети»
Если всё хорошо, то настраиваем контроллеру постоянный доступ в Интернет.
Меню «Общие параметры соединений» , раздел «Интернет» .
CCU825 v2: Настройка доступа в Интернет
Выбираем пункт «Всегда подключен» (1).
Не забудьте подобрать у сотового оператора тариф с пакетом мобильного Интернет’а. Подробнее ниже в главе: «Решение проблем с сетью и Интернет’ом: Неверно подобран тариф»
Если у вас не будет работать Интернет и при этом у вас включена на тарифе опция мобильного Интернет’а, то возможно вам нужно сделать настройки «Точки доступа» (2), указать APN или Имя и Пароль (обычно это не требуется).
Теперь нам нужно создать пользователя, который будет иметь доступ к GSM контроллеру через Интернет (так же он используется и для доступа через CCU proxy). Меню «Соединения» .
CCU825 v2: Настройка соединений
В разделе «Учётные данные Web» указываем «Имя пользователя» и «Пароль«.
Имя пользователя имеет формат: «Имя пользователя@IMEI«.
- Имя пользователя, это то имя, что мы настроили выше в меню «Соединения«.
- IMEI берётся из меню «Общее» в настройках CCU.
Настраиваем используемый с контроллером тип аккумулятора. Свинцово-кислотное (Pb) или Литий-железо-фосфатная (LiFePO4).
Меню «Инженерное меню» .
CCU825 со встроенным аккумулятором типа — LiFePO4.
CCU825 v2: Тип аккумулятора
Меню «Системные параметры» .
Оповещение об отсутствии питания
CCU825 v2: Оповещение об отсутствии питания
Оповещение об уровне разряда аккумулятора
CCU825 v2: Оповещения об уровне разряда аккумулятора
Оповещение о температуре платы CCU825
CCU825 v2: Оповещение о температуре платы
Можно настроить как оповещение о температуре, так и включение выходов, например, для включения охлаждения или обогрева шкафа где установлен GSM контроллер.
Оповещение о вскрытие корпуса CCU
CCU825 v2: Оповещение о вскрытие корпуса CCU
В процессе наладки GSM контроллера, скорей всего, вам придётся часто вскрывать корпус контроллера, по этому, временно, лучше отключить оповещение о вскрытии корпуса.
Меню «Общие параметры соединений» , раздел «Безопасность» .
CCU825 v2: Настройка безопасности соединения
Задаём пароли для удалённой настройки и управления контроллером с помощью СМС и пароль для управления с помощью DTMF (тональный набор) при «голосовом» звонке на контроллер.
Можно позвонить на контроллер, ввести «тоном» пароль и слушая голосовые подсказки, управлять контроллером.
Меню «Общие параметры соединений» , раздел «Контроль баланса» .
CCU825 v2: Настройка контроля баланса
Настраиваем USSD команду и интервал запроса баланса на СИМ карте.
Посмотреть, определился ли баланс можно в меню «Управление» .
CCU825 v2: Меню «Управление». Баланс
Одна из частых проблем — GSM контроллер CCU825 теряет связь с Интернет’ом.
Проявляться проблемы могут следующим образом:
Viber. CCU825 контроллер не в сети
Примерно так это может выглядеть:
Проблемы с ccu.sh
Слабый уровень сигнала GSM сети
Очевидно, что первое, на что следует обратить внимание, это уровень сигнала GSM сети.
Для стабильной работы GSM контроллера через Интернет, старайтесь разместить внешнюю антенну таким образом, что бы уровень сигнала был больше 40% (больше -95 dBm).
Даже если сейчас у вас стабильный сигнал и Интернет работает, то завтра сигнал может упасть. Вы могли настраивать антенну осенью, а летом распустилась листва на деревьях и сигнал упал.
Бывают случаи, когда оператор сотовой связи по каким-то своим причинам снижает мощность сигнала на базовой станции. Если в момент настройки антенны CCU, у вас уровень сигнала, например, 30%, то периодически он может падать, например, до 15-20% и в этом случае могут возникнуть проблемы при работе через Интернет. GSM контроллер может регулярно терять связь с Интернет.
Ниже пример моего графика уровня сигнала на CCU825. Видно, что уровень сигнала падал до 25% (-101,7 dBm) и такое происходит часто без какого либо внешнего воздействия.
Уровень сигнала GSM сети на CCU825
Я замечал, что осенью почти каждую ночь снижался уровень сигнала, а днём восстанавливался. В эти моменты GSM контроллер может терять связь с Интернет’ом.
Неверно подобран тариф
Если проблема с уровнем сигнала является очевидной, то вот проблемы с неверно подобранным тарифом сотового оператора, это не первое, что приходи в голову.
Например, вы купили SIM карту Мегафона, включили опцию для Интернет’а, установили SIM карту в GSM контроллер, настроили Viber или Telegram бот и они даже работают. Вы запрашиваете состояние контроллера, управляете им и вроде всё Ок, но в какой-то момент контроллер начинает сообщать, что он «не в сети», да и через ccu.sh на контроллер вы зайти не можете. Как то «криво» открывается страница управления контроллером.
Проблема тут в следующем. Вы выбрали в Мегафон опцию Интернет, но эта опция для смартфонов и она не работает на других устройствах.
Данную проблему сложно диагностировать, т.к. Интернет вроде как работает, но как только трафик увеличивается, то Интернет сразу «падает», а потом опять начинает работать.
У других операторов, проблемы с неправильно выбранным тарифом могут проявляться по другому, по этому сразу выбирайте правильный тариф и опции.
Нечто подобное, можно посмотреть и у других операторов.
Мы сделали начальные настройки GSM контроллера CCU825 и теперь можно выполнять основные настройки, такие как:
- Расширенная настройка соединений;
- Настройка входов и выходов;
- Сценариев;
- Охранные зоны;
- Реакции на события, оповещения;
- И т.д. и т.п.
Этому будет посвящена вторая часть статьи…
Прямые ссылки:
Также скачайте документацию по старой версии контроллера Windows версии (1.xx). В ней очень подробно описано как подключать к контроллеру различные датчики, управляющие элементы (реле, контакторы), бойлеры и т.д.
В процессе эксплуатации GSM контроллера CCU825 возникали похожие вопросы: как можно из внешних приложений управлять GSM контроллером CCU, получать с него данные, строить графики и т.д и т.п.
С выходом прошивки версии 2 такая возможность появилась. Во второй версии прошивки, реализовали текстовый формат обмена данными JSON API как раз для таких задач.
В данной статье, будет описан процесс получения данных с входов контроллера для построения графиков температуры, напряжения в сети, заряда аккумулятора и т.д.
Данная статья не очень сочетается с тематикой данного сайта и больше посвящена программированию, но возможно она кого-то подтолкнёт к изучению чего-то нового и полезного.
Прошу воспринимать ниже приведенные скрипты как пример реализации, а не законченное решение, т.к. я не являюсь профессиональным программистом.
Используя JSON, можно легко организовать передачу данных между приложениям и серверами, а это как раз то, что нам и нужно.
Теперь, когда стала понятна общая схема работы, слегка опишу как работает сервер ccu.sh (это моё предположение основанное на опыте).
Сервер ccu.sh выполняет функцию прокси сервера (посредника) между нами, находящимися где-то в Интернете и GSM контроллером, который так же, не известно где подключен к Интернет через GSM GPRS и скорей всего, у него нет публичного IP адреса, что не даёт возможности получить к контроллеру прямой доступ.
Упрощенный принцип работы
- При включении CCU825 и доступности GPRS (и если указано в настройках), контроллер инициализирует исходящее соединение к серверу (1) для организации с сервером ccu.sh двухстороннего канала передачи данных (2).
- Тут важно заметить, что именно контроллер начинает исходящее соединение в сторону сервера ccu.sh у которого заранее известен публичный адрес (в отличии от контроллера). Любой контроллер, через Интернет, не имея публичного адреса, может к нему подключиться пройдя процедуру аутентификации.
- После прохождения всех процедур установления двухстороннего канала передачи данных (2), у сервера ccu.sh появляется возможность управлять контроллером. В дальнейшем, для управления контроллером CCU, мы взаимодействием с сервером ccu.sh, а он, уже с контроллером (как говорил выше — функция прокси сервера).
- С нашего сервера, мы отправляем JSON запрос(3) к серверу ccu.sh.
- Сервер ccu.sh, преобразует JSON запрос в свой закрытый протокол и по ранее организованному двухстороннему каналу (2) отправляет запрос(4) на CCU контроллер.
- Контроллер CCU, обработав запрос(4), возвращает на сервер ccu.sh ответ(5) с запрошенными данными.
- Сервер ccu.sh преобразует полученный ответ в JSON формат и уже в JSON формате отдаёт(6) его нашему серверу.
- Наш сервер, используя скрипты, парсит (извлекает данные) полученный JSON ответ(6) и строит графики или, если заложено логикой скрипта, отправляет какую либо команду на контроллер CCU (например для включения реле).
Основной акцент в описании я буду делать на работу с JSON в PHP. На остальных аспектах, таких как установка и настройка Apache, PHP, rrdtool и т.д. я акцентировать своё внимание не буду и предполагаю, что они у вас установлены и работают.
И так, что необходимо для работы:
JSON запрос
Из документации приведенной выше, мы видим, что запрос должен выглядеть следующим образом:
JSON ответ
Ответ на выше приведённый запрос будет следующим:
Ниже приведенный скрипт будет извлекать необходимые нам данные из выше приведённого ответа и преобразовать значения входов контроллера в нужные нам значения (по JSON запросу, отдаётся не напряжение на входе контроллера, а значение в дискретах).
Выше приведённый JSON ответ, скрипт, используя функцию json_decode преобразует в массив, а дальше уже всё просто.
Результат работы функции json-decode:
Теперь, стандартными средствами PHP, извлекаем значения массива и работам с ними.
Код скрипта
Скрипт для CCU прошивки 2.17 и старше.
В результате работы скрипта будут созданы следующие файлы:
- /tmp/ccujson_temp.txt — значение температур (улица, дом и контроллер)
- /tmp/ccujson_volt.txt — напряжение в сети
- /tmp/ccujson_balance.txt — баланс на SIM карте
- /tmp/ccujson_batterycharge.txt — заряд аккумулятора
- /tmp/ccujson_signal.txt — уровень сигнала сотовой сети
- /srv/www/your.site/public_html/ccujson_gprs_status.txt — состояние соединения CCU с сервером ccu.sh
Эти файлы будут использоваться в работе скрипта создания графиков.
Замечание на тему получения уровня сигнала сети
Информация акутальная для версии прошивки CCU 2.16 и ниже.
Начиная с версии 2.17 формат отображения уровня сигнала значительно упростился, нет необходимости ни чего расчитывать. Уровень сигнала в процентах и dBm, получаем сразу из JSON ответа контроллера.
Уровень сигнала сети, мы получаем с GSM контроллера в форме RSSI Index, в скрипте мы его переводим в процентное значение и dBm.
Таблица по которой можно соотнести RSSI Index, RSSI в dBm и процентов:
RSSI Index | RSSI dBm | Процент, % |
---|---|---|
0 | 113 и хуже | 0 |
1 | 111 | 3 |
2 | 109 | 6 |
3 | 107 | 10 |
4 | 105 | 13 |
5 | 103 | 16 |
6 | 101 | 19 |
7 | 99 | 23 |
8 | 97 | 26 |
9 | 95 | 29 |
10 | 93 | 32 |
11 | 91 | 35 |
12 | 89 | 39 |
13 | 87 | 42 |
14 | 85 | 45 |
15 | 83 | 48 |
16 | 81 | 52 |
17 | 79 | 55 |
18 | 77 | 58 |
19 | 75 | 61 |
20 | 73 | 65 |
21 | 71 | 68 |
22 | 69 | 71 |
23 | 67 | 74 |
24 | 65 | 77 |
25 | 63 | 81 |
26 | 61 | 84 |
27 | 59 | 87 |
28 | 57 | 90 |
29 | 55 | 94 |
30 | 53 | 97 |
31 | 51 и лучше | 100 |
Для построения графиков будем использовать RRDtool.
Создание баз данных
Укажите свои пути к базам данных.
Хранение значений температуры
Хранение значений напряжения
Хранение значений баланса
Хранение значений заряда аккумулятора
Хранение значений уровня сигнала сети
Скрипт обновления баз данных и создания графиков
Задание в планировщике
Скрипт rrd_update.sh необходимо запускать каждые 5 минут.
Добавляем в планировщик (cron) следующее правило:
И перезапускам cron.
База данных и графики будут обновляться каждые 5 минут. Теперь нам нужно сделать возможность просматривать графики через web браузер.
Содержимое файла index.php
Не забываем менять пути на свои!
Результат будет примерно следующим
Уровень сигнала сотовой сети
Благодаря постоянному замеру параметров электросети, были сделаны интересные наблюдения. Обратите внимание на ниже приведенный график напряжения. Да… вот такое у нас в деревне напряжение… падает добавлено 21/06/2017).
Напряжение в деревне
Что такое сервис «Народный мониторинг»:
Добавляем в cron запуск скрипта каждые 5 минут
Пример отображения графиков в «Народном мониторинге»
График в «Народном мониторинге»
В процессе эксплуатации GSM контроллера CCU825 возникали похожие вопросы: как можно из внешних приложений управлять GSM контроллером CCU, получать с него данные, строить графики и т.д и т.п.
С выходом прошивки версии 2 такая возможность появилась. Во второй версии прошивки, реализовали текстовый формат обмена данными JSON API как раз для таких задач.
В данной статье, будет описан процесс получения данных с входов контроллера для построения графиков температуры, напряжения в сети, заряда аккумулятора и т.д.
Прошу воспринимать ниже приведенные скрипты как пример реализации, а не законченное решение, т.к. я не являюсь профессиональным программистом.
Используя JSON, можно легко организовать передачу данных между приложениям и серверами, а это как раз то, что нам и нужно.
Схема взаимодействия CCU825 с сервером ccu.sh
Теперь, когда стала понятна общая схема работы, слегка опишу как работает сервер ccu.sh (это моё предположение основанное на опыте).
Сервер ccu.sh выполняет функцию прокси сервера (посредника) между нами, находящимися где-то в Интернете и GSM контроллером, который так же, не известно где подключен к Интернет через GSM GPRS и скорей всего, у него нет публичного IP адреса, что не даёт возможности получить к контроллеру прямой доступ.
Упрощенный принцип работы
Принцип работы сервера ccu.sh
- При включении CCU825 и доступности GPRS (и если указано в настройках), контроллер инициализирует исходящее соединение к серверу (1) для организации с сервером ccu.sh двухстороннего канала передачи данных (2).
- Тут важно заметить, что именно контроллер начинает исходящее соединение в сторону сервера ccu.sh у которого заранее известен публичный адрес (в отличии от контроллера). Любой контроллер, через Интернет, не имея публичного адреса, может к нему подключиться пройдя процедуру аутентификации.
- После прохождения всех процедур установления двухстороннего канала передачи данных (2), у сервера ccu.sh появляется возможность управлять контроллером. В дальнейшем, для управления контроллером CCU, мы взаимодействием с сервером ccu.sh, а он, уже с контроллером (как говорил выше — функция прокси сервера).
- С нашего сервера, мы отправляем JSON запрос(3) к серверу ccu.sh.
- Сервер ccu.sh, преобразует JSON запрос в свой закрытый протокол и по ранее организованному двухстороннему каналу (2) отправляет запрос(4) на CCU контроллер.
- Контроллер CCU, обработав запрос(4), возвращает на сервер ccu.sh ответ(5) с запрошенными данными.
- Сервер ccu.sh преобразует полученный ответ в JSON формат и уже в JSON формате отдаёт(6) его нашему серверу.
- Наш сервер, используя скрипты, парсит (извлекает данные) полученный JSON ответ(6) и строит графики или, если заложено логикой скрипта, отправляет какую либо команду на контроллер CCU (например для включения реле).
Основной акцент в описании я буду делать на работу с JSON в PHP. На остальных аспектах, таких как установка и настройка Apache, PHP, rrdtool и т.д. я акцентировать своё внимание не буду и предполагаю, что они у вас установлены и работают.
И так, что необходимо для работы:
Описание протокола интеграции контроллера CCU в стороннее ПО (JSON API): ccu_json_protocol.pdf
JSON запрос
Из документации приведенной выше, мы видим, что запрос должен выглядеть следующим образом:
JSON ответ
Ответ на выше приведённый запрос будет следующим:
Ниже приведенный скрипт будет извлекать необходимые нам данные из выше приведённого ответа и преобразовать значения входов контроллера в нужные нам значения (по JSON запросу, отдаётся не напряжение на входе контроллера, а значение в дискретах).
Выше приведённый JSON ответ, скрипт, используя функцию json_decode преобразует в массив, а дальше уже всё просто.
Результат работы функции json-decode:
Теперь, стандартными средствами PHP, извлекаем значения массива и работам с ними.
Код скрипта
В результате работы скрипта будут созданы следующие файлы:
- /tmp/ccujson_temp.txt — значение температур (улица, дом и контроллер)
- /tmp/ccujson_volt.txt — напряжение в сети
- /tmp/ccujson_balance.txt — баланс на SIM карте
- /tmp/ccujson_batterycharge.txt — заряд аккумулятора
- /tmp/ccujson_signal.txt — уровень сигнала сотовой сети
- /srv/www/your.site/public_html/ccujson_gprs_status.txt — состояние соединения CCU с сервером ccu.sh
Эти файлы будут использоваться в работе скрипта создания графиков.
Замечание на тему получения уровня сигнала сети
Уровень сигнала сети, мы получаем с GSM контроллера в форме RSSI Index, в скрипте мы его переводим в процентное значение и dBm.
Таблица по которой можно соотнести RSSI Index, RSSI в dBm и процентов:
RSSI Index | RSSI dBm | Процент, % |
---|---|---|
0 | 113 и хуже | 0 |
1 | 111 | 3 |
2 | 109 | 6 |
3 | 107 | 10 |
4 | 105 | 13 |
5 | 103 | 16 |
6 | 101 | 19 |
7 | 99 | 23 |
8 | 97 | 26 |
9 | 95 | 29 |
10 | 93 | 32 |
11 | 91 | 35 |
12 | 89 | 39 |
13 | 87 | 42 |
14 | 85 | 45 |
15 | 83 | 48 |
16 | 81 | 52 |
17 | 79 | 55 |
18 | 77 | 58 |
19 | 75 | 61 |
20 | 73 | 65 |
21 | 71 | 68 |
22 | 69 | 71 |
23 | 67 | 74 |
24 | 65 | 77 |
25 | 63 | 81 |
26 | 61 | 84 |
27 | 59 | 87 |
28 | 57 | 90 |
29 | 55 | 94 |
30 | 53 | 97 |
31 | 51 и лучше | 100 |
Для построения графиков будем использовать RRDtool.
Создание баз данных
Укажите свои пути к базам данных.
Хранение значений температуры
Хранение значений напряжения
Хранение значений баланса
Хранение значений заряда аккумулятора
Хранение значений уровня сигнала сети
Скрипт обновления баз данных и создания графиков
Задание в планировщике
Скрипт rrd_update.sh необходимо запускать каждые 5 минут.
Добавляем в планировщик (cron) следующее правило:
И перезапускам cron.
База данных и графики будут обновляться каждые 5 минут. Теперь нам нужно сделать возможность просматривать графики через web браузер.
Содержимое файла index.php
Не забываем менять пути на свои!
Результат будет примерно следующим
Уровень сигнала сотовой сети
Напряжение Ток
Мощность Температура
Благодаря постоянному замеру параметров электросети, были сделаны интересные наблюдения. Обратите внимание на ниже приведенный график напряжения. Да… вот такое у нас в деревне напряжение… падает добавлено 21/06/2017).
Напряжение в деревне
В версии прошивки 2.22 от 17/01/2020 появилась поддержка работы с сервисом «Народный мониторинг» . Прошивку ещё не тестировал, но, судя по всему, с новой версией уже не нужно будет делать всё, что описано ниже, и можно настроить интеграцию в самом CCU без использования внешних серверов.
Читайте также: