@City IoT Облачная платформа
iSys - Интеллектуальные системы IoT Решения
IoE.Systems
Оглавление
1. Вступление. 5
1.1 Поддерживаемые типы устройств. 5
1.2. Поддерживаемые типы товаров. 5
1.3. Поддерживаемые протоколы связи 5
1.4. Поддерживаемые коммуникационные технологии устройств 6
1.5. @City Cloud Server 6
1.5.1. Серверные и коммуникационные шлюзы 7
1.5.2 Интеграция HTTP LoRaWAN 7
1.5.3. Внешний интерфейс 8
1.5.3. Права доступа к серверу 8
1.6. Умные устройства 9
1.6.1. CIoT - GSM устройства 9
1.6.3. BAS, BMS, IoT - устройства Ethernet и WiFi 9
1.6.2. IoT -Устройства LoRaWAN 9
1.7. Варианты Business to Business (B2B) 9
2. @City IoT Функциональность платформы 10
3. Главная страница 11
4. Основная форма 11
4.1. Заголовок 12
4.1.1. Home Link - (открывает таблицу фактических результатов) 12
4.1.2. Флажок "X" - открывает / закрывает форму запроса 12.
4.1.3. Флажок «V» - открывает / закрывает поля формы 12
4.1.4. Графические значки - ссылки на результаты визуализации (редактируемые) 12
4.2. Форма: 12
4.2.1. Флажок "X" - открывает / закрывает всю форму запроса 12.
4.2.2. CSS - Выберите тему визуализации 12
4.2.3. Флажок Видимые поля - показывает / скрывает список фильтров полей 12
4.2.4. Вкладка: Имя вкладки для добавления или удаления 12
4.2.5. Добавить / удалить кнопки - добавить или удалить вкладки с именем в поле вкладки 12.
4.2.6. Выбрать основную кнопку 12
4.2.7. Кнопка Отменить все 12
4.2.7. Кнопка Выбрать все 12
4.2.8. Скрыть фильтр - скрыть всю форму 12
4.2.9. Кнопка «Выполнить» - изменение настроек параметров 13
4.2.10. Флажок "V" - показать / высокий фильтр поля. 13
4.3. Вкладки 13
4.4. Содержание 13
4.4.1. Выполнить - просмотр типа результата 13
4.4.2. Копировать (+/- ссылки) 13
4.4.3. Ссылки на ячейки таблицы 13
4.5. Порядок данных 13
4.6. Пример 13
5. Карты 15
5.1. Инициализация карты 15
5.2. Дополнительные настройки для запроса 15
5.2.1. Изменить масштаб карты (уровень масштабирования) 16
5.2.2. IMEI (выберите поле устройства) 16
5.2.3. Lon, Lat (поля координат долготы и широты) 16
5.2.4. Изменить стиль (тему) MAP 16
5.2.5. ГДЕ Пункт 16
5.2.6. Выполнить (кнопка запуска запроса) 16
5.2.7. Отменить выбор (удалить все поля из запроса) 17
5.2.8. Флажок "V" (форма открытия / закрытия поля) 17
5.2.9. Флажок "X" (Показать / скрыть форму запроса) 17
5.3. Пример 17
6. Показать результаты в таблице 18
6.1. Инициализация таблицы 18
6.2. Дополнительные настройки для запроса 19
6.2.1. Сортировка - поле сортировки и порядок по возрастанию / убыванию 19
6.2.2. DB / IMEI - Выбрать устройство 19
6.2.3. CSS - выберите стиль (Тема визуализации) 20
6.2.4. Видимые поля - Показать / скрыть поля Форма 20
6.2.5. Удалить пустые - не отображать пустые столбцы 20
6.2.6. Флажок "X" (Показать / скрыть форму запроса) 20
6.2.7. Пункт "Где" (для ограничения данных) 20
6.2.8. Select Core Button (Включить наиболее распространенные поля) 20
6.2.9. Кнопка «Отменить выбор» (удалить все поля из запроса) 20
6.2.10. Выполнить (кнопка запуска запроса) 20
6.2.11. Флажок "V" (форма открытия / закрытия поля) 20
7. Гистограммы. 21 год
8. Исторические карты. 22
8.1. Инициализация исторических диаграмм 22
8.2. Дополнительные настройки исторических диаграмм 23
8.2.1. IMEI - (выберите устройство для отображения исторических данных) 23
8.2.2. Min - ограничение минимального значения первого поля 23
8.2.3. Max - ограничение максимального значения первого поля 23
8.2.4. "V" - Показать / скрыть поля формы 23
8.2.5. От: установить минимальную дату / время (*) 23
8.2.6. Кому: установить максимальную дату дата / время (*) 23
8.2.7. Флажок "X" (Показать / скрыть форму запроса) 23
8.2.8. "Где" Пункт 23
8.2.9. Кнопка «Отменить выбор» (удалить все поля из запроса) 23
8.2.10. Выполнить (кнопка "Выполнить запрос") 23
8.2.11. Флажок "V" (форма открытия / закрытия поля) 24
8.3. Bars Variant: (отображает только доступные данные) 24
8.4. Непрерывный вариант (с теми же данными): 24
9. Совместимость с веб-браузером 25
10. Настройка тем 26
11. Обновление алгоритмов 27
12. Структура базы данных 28
12.1. Структура таблиц «ithings_» и «*» 29
12.2. Таблица "* _c" очереди команд (событий) устройства - структура 30
12.3. Доступ к результатам из баз данных - средний уровень (чтение данных) 30
12.3.1. Получать текущие статусы всех устройств 30
12.3.2. Получить исторические данные для устройства 31
12.3.3. Получить список устройств - одно поле из текущих статусов с ограничением 32
@City IoT Облачная платформа посвящена "микрооблако" система для индивидуальных клиентов. Платформа не является общедоступной, и только один клиент имеет доступ к физическому или виртуальному серверу (VPS или выделенным серверам). Заказчик может выбрать один из десятков дата-центров в Европе или в мире.
Платформа @City IoT предназначена для следующих продуктов iSys.PL
IoT - RF / LoRaWAN (Интернет вещей)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (сотовый Интернет вещей)
Вай-фай
Ethernet
@City (eCity) Cloud IoT Платформа - это система различного размера для IP IoT продуктов (вместе называемых @City Оборудование или же CioT устройства ):
@Город
@Свет
@ Измерение
@След
@AirQ
@Bin
Платформа @City IoT поддерживает следующие протоколы связи:
UDP - рекомендуется для датчиков / устройств CIoT (особенно NBIoT) - минимальное использование данных
TCPIP - рекомендуется для устройств с двунаправленной связью - квитирование / подтверждение
HTTP - предлагается только для доступа к данным / визуализации / экспорта / "облако в облако"
HTTP Webhooks - для связи LoRaWAN между сетью / сервером приложений LoRaWAN и @City Cloud.
Данные, отправляемые с контроллера на облачный сервер и наоборот, шифруются в уникальном двоичном формате для минимального размера данных и повышенной безопасности. Каждый партнер получает свой уникальный ключ шифрования для авторизации устройства, проверки достоверности данных и т. Д.
Для устройств, отличных от eHouse / eCity, мы можем предоставить индивидуальные алгоритмы шифрования ( "C" исходный код) для каждого партнера для микропроцессора для защиты данных перед обменом.
В этом случае данные полностью защищены во время двунаправленной связи через общедоступные средства связи (Интернет, эфир и т. Д.). ).
Платформа @City IoT поддерживает:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - устройства (связь UDP / TCPIP)
Устройства LoRaWAN (HTTP Webhooks) - через шлюз LoRaWAN и серверы сети / приложений LoRaWAN
Контроллеры Ethernet (связь UDP / TCP)
Контроллеры WiFi (связь UDP / TCP)
Будущие продукты ИС
Продукты без IP через дополнительный локальный @ City / eHouse. Аппаратный шлюз
@City IoT Платформа предназначена для устройств / узлов:
Собственные продукты iSys:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - специализированные продукты для платформы @City
Ethernet - специализированные продукты для платформы @City
Продукты совместного производства (произведенные третьими сторонами по лицензии iSys и под внешним брендом)
Франчайзинговые продукты (производимые третьими сторонами по лицензии iSys с логотипами iSys)
Программное обеспечение @City работает на VPS (виртуальном частном сервере) на базе Linux или на выделенном сервере на стороне Интернета, в зависимости от требуемой производительности Сервер (названный позже Сервером):
частный / публичный доступ
общее количество устройств
частота обновления статуса устройств
частота обновления данных
Существует несколько вариантов VPS в зависимости от:
Цена
геолокация дата-центра
Виртуальные ядра процессора (1-8)
Виртуальная оперативная память (1-32 ГБ)
SSD-диск (20–1 ТБ)
Десятки выделенных серверов существуют в зависимости от:
Цена
геолокация дата-центра
Ядра процессора (4 .. 32)
RAM (16 .. 512 ГБ)
SSD / HDD (256 ГБ .. 8 ТБ)
Платформа @City IoT предназначена для одного клиента:
органы местного самоуправления и власти (город, сообщество, страна)
B2B (для стороннего владельца)
Поскольку клиенты не могут совместно использовать этот сервер, он упрощает доступ к безопасности и снижает производительность. По этой причине только клиент несет ответственность за эффективную безопасность, стабильность, эффективность, пропускную способность данных и т. Д. В случае недостаточной производительности клиент может приобрести более высокий тарифный план (VPS или выделенный сервер), более оптимальный для ожидаемой функциональности и производительности.
В особых случаях "Cloud to cloud" обмен данными может быть реализован для глобализации и централизации данных в более крупных областях вместо облака для нескольких клиентов.
Связь @City Server реализована на основе низкоуровневого приложения для максимизации производительности.
Основные возможности приложения @City Server:
асинхронно получать данные от устройств (по протоколам: UDP, TCP IP, HTTP)
минимизировать использование данных и их затраты между устройствами и облаком (за счет использования протоколов связи низкого уровня UDP, TCP IP)
получать зашифрованный статус устройств (через любые средства связи)
авторизация и проверка данных с устройств путем расшифровки их статусов
декодирование состояния устройств и непосредственное обновление его в таблицах MariaDB / MySQL (в формате необработанных данных)
текущая таблица данных (содержит только новейшее состояние каждого устройства)
таблица исторических данных (содержит все статусы для одного устройства)
отправлять ожидающие команды (события) на устройства
обеспечение квитирования, проверки и подтверждений
Программное обеспечение @City Server одинаково для каждого пользователя и не может быть настроено для разных клиентов.
Контроллеры LoRaWAN интегрируются с облаком @City через интерфейс HTTP (веб-перехватчики), доступный в сети / сервере приложений LoRaWAN.
Поддерживаются несколько типов серверов сети / приложений:
TTN (ограниченное время "В эфире" и максимальное количество команд, отправленных драйверу и не поддерживающих обновление прошивки)
LoraWAN-Stack (требуется хостинг на физическом устройстве с доступом в Интернет).
LoraServer.Io (требуется хостинг на физическом устройстве с доступом в Интернет - только отправка данных на сервер и не поддерживает обновление прошивки)
@City Cloud для контроллеров LoRaWAN делится так же, как и для других интерфейсов. Об этом говорилось в предыдущей главе.
Front-end интерфейс реализован с помощью PHP-скриптов для извлечения настроенных данных из @City Cloud Database. Он использует очень эластичный механизм поиска, основанный на исходных SQL-запросах для ограничения желаемых данных. Интерфейс предоставляет результаты запроса в формате JSON для дальнейшего декодирования и обработки JavaScript Front-end Web «приложением».
Исходный интерфейсный интерфейс одинаков для каждого пользователя и не может быть настроен для разных клиентов.
Интерфейс оверлея может быть создан нашими сотрудниками или в сотрудничестве для обеспечения индивидуальной настройки для клиента.
Права доступа клиента (к физическому Серверу) ограничены.
Доступ к файлам только для каталога "templates" (собственные текстовые файлы - .txt, .js, .css, .html):
добавление, удаление, изменение чистых файлов HTML (Front-End GUI / Разработка интерфейса)
добавление, удаление, изменение чистых файлов JavaScript (Front-End GUI / Разработка интерфейсов и алгоритмы)
добавление, удаление, изменение чистых файлов CSS (Front-End - Custom views / Themes)
добавление, удаление, изменение текстовых файлов шаблонов (Front-End GUI)
добавление, удаление, изменение вкладок, ярлыков, ссылок на результаты данных
Другие права доступа:
Полный доступ к @City Cloud Database MySQL / MariaDB, где хранятся данные обо всех устройствах
Доступ к веб-службам определяется (учетные данные) для клиента.
Заказчику не разрешается передавать учетные данные третьим лицам (множественный доступ к результатам может повлиять на производительность, стабильность и безопасность всей системы)
При особых обстоятельствах и при использовании высокопроизводительного выделенного сервера общедоступная учетная запись может быть настроена для наблюдения за самыми последними данными (не историческими).
Пользователь может копировать данные на свой собственный сервер MySQL и выполнять собственный анализ и обработку данных, чтобы не влиять на производительность @City Server.
iSys - сотрудники Intelligent Systems - имеют неограниченный доступ ко всему серверу, включая учетную запись root и полный доступ к базе данных для обслуживания.
При определенных обстоятельствах iSys может предоставить заказчику дополнительные ограниченные права (сценарии PHP, файлы) после проверки исходного кода, запуска тестов, если это не влияет на общую безопасность, стабильность и производительность системы.
Наши устройства содержат микроконтроллер и модуль GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) для связи. Микроконтроллер содержит зашифрованный загрузчик для безопасного обновления прошивки OTA. Это позволяет создавать множество вариантов системы на основе одного и того же "Смарт-устройство CIoT".
Контроллеры Ethernet и WiFi обеспечивают связь с системой по IP (без взимания платы за передачу данных оператору GSM). Эти устройства также имеют зашифрованный загрузчик, и устройства могут быть обновлены через его собственный интерфейс. Для Wi-Fi есть обновление прошивки OTA с основного сервера
LoRaWAN позволяет передавать данные на очень большие расстояния (до прибл. 15 км). Этот диапазон зависит от скорости передачи данных, количества данных, урбанизации местности и эффективности радиотрактов устройств.
Наши устройства включают микроконтроллер и модуль LoRaWAN для связи. Микроконтроллер содержит зашифрованный загрузчик для безопасного обновления программного обеспечения OTA. Это позволяет создавать несколько вариантов системы на основе одного и того же "IoT smart device". Устройства работают в открытом диапазоне ISM без дополнительной абонентской платы. Необходимо использовать шлюзы LoRaWAN, чтобы покрыть всю территорию с доступом в Интернет. В случае существующих шлюзов LoRaWAN в пределах диапазона устройств (настроенных для сервера TTN), через них можно отправлять информацию. Для обновления прошивки требуется собственный сетевой / прикладной сервер LoRaWAN и хороший диапазон для связи.
Есть несколько вариантов для бизнеса и сотрудничества:
импорт / экспорт готовой продукции (щиты, приборы) - готовая продукция
импорт / экспорт продукции OEM (печатные платы, контроллеры и т. д.) - промежуточные продукты, запчасти
франшиза - производство на основе нашей лицензии для местных рынков (мы поставляем только программируемые микроконтроллеры) под iSys - Intelligent Systems Brands
Совместное производство - (как указано выше), но под внешними брендами
Платформа @City поддерживает настраиваемый шаблон Front-End для визуализации, запроса, ограничения и обработки данных (текущие / исторические данные):
визуализировать выбранные данные на карте (геолокация)
показывает выбранные данные и результаты в таблицах
показывает выбранные данные в виде гистограмм
показывает выбранные данные в исторических диаграммах
экспорт данных в сторонние приложения и дальнейшая обработка
другие функции будут обновляться по индивидуальным запросам.
Пользовательский интерфейс доступен через статический IP-адрес или домен / субдомен / файл перенаправления DNS, если он доступен.
Образцовая и демонстрационная установка (доступна только для потенциальных клиентов).
Пожалуйста, сообщите нам, когда вы хотите протестировать его - чтобы разрешить публичный доступ к платформе.
Для связи с платформой @City может потребоваться статический IP-адрес удаленного компьютера.
Главная страница намеренно оставлена пустой в целях безопасности: http: //% YourIP% / IoT /
Он может быть индивидуально включен и отредактирован и содержать ссылки на все доступные службы @City IoT Платформа если это требуется
Основная форма предназначена для создания новых пресетов и вкладок.: http: //%IP%/IoT/que.php
Это начальная форма для создания результатов, представлений и вкладок для каждой конфигурации.
Описания (сверху и слева направо)
Файл CSS для изменения темы визуализации должен существовать в "шаблоны / css /" каталог - перечисляется автоматически.
Выберите основные поля, видимые в таблице. Это обновляется автоматически.
Снимите выделение со всех полей (необходимо выбрать некоторые из них вручную)
Выбрать все поля (после этого необходимо снять выделение с некоторых из них вручную)
Это эквивалент флажка all (X)
Индивидуально созданные вкладки с именами и предустановками (хранятся в cfg / tabs.cfg файл).
Файл фактически содержит имя и URL-адрес (разделенные символом табуляции).
Отображает все поля, ограниченные фильтром полей.
Поля в таблице:
карта- отображение результатов на карте (можно выбрать одно или несколько полей)
история - исторические диаграммы (можно выбрать одно или несколько полей)
tab - отображает таблицу (можно выбрать любую комбинацию полей)
бар - на гистограмме отображается только одно поле
При нажатии на одно из его значений откроются новые результаты с выбранными полями (для текущей строки).
Добавление / удаление вкладки с именем, заданным в Вкладка поле. Он использует только поля, выбранные в той же строке таблицы.
Нажатие любого другого имени поля инициирует визуализацию данных выбранного поля для выбранной строки.
Порядок отображаемых полей соответствует их порядку в форме полей (однако тм всегда отправляется в конец текста). Этот порядок можно изменить только при прямом редактировании параметров URL (части порядка полей).
Например: Вкладка настроек с Отслеживание активов название и содержит карту со временем и скоростью на карте
Все описание относится к строке, где "Map" текст в "Запустить" столбец.
Введите имя "Отслеживание активов" в Вкладка поле (без кавычек)
Убедитесь, что все столбцы в строке не выделены
Выбрать тм, gps_speed_km только в ряду
Нажмите + кнопка где в строке
Карты можно запускать из MainForm с предварительной настройкой
Инициализация карты выполняется вручную при запуске напрямую по ссылке: > http: //%IP%/IoT/maps.php
Пользователь должен отменить выбор всех полей (нажмите Отменить выбор Кнопка)
Установите флажок для отображаемых полей (например, Ain5 (для уровня смога) и тм (для даты / времени измерения)
Нажмите "V" флажок, чтобы скрыть форму полей
Нажмите Выполнять кнопка для запуска запроса к БД и отображения текущей информации со всех датчиков / устройств
Карта с данными обновляется через 30 секунд и более.
Настройки описаны слева направо (на скриншоте выше).
Уровень масштабирования можно изменить с помощью кнопок (+/-) для масштабирования (current_scale * 2 или current_scale / 2 соответственно). Нажатие одной из этих кнопок автоматически изменит масштаб.
Другой способ - выбрать уровень увеличения. Увеличить Поле со списком и нажмите Выполнять кнопка. В этом случае весь вид / карта перезагружается и обновляется (требуется некоторое время во время инициализации).
IMEIПоле содержит уникальный идентификатор устройства или уникальный псевдоним устройства. Настройка по умолчанию: * (звездочка), которая показывает самые последние значения и геолокацию для каждого устройства.
Если установить для IMEI любое другое значение, отобразятся исторические данные выбранного устройства. Это имеет смысл только для мобильных и движущихся датчиков, иначе результаты будут перекрываться на карте в одном и том же месте.
Установите центральное положение карты. Это поле устанавливается в положение курсора при нажатии кнопки мыши на карте.
Стиль / тему карты можно выбрать из Map Поле ComboBox (например, Темный, Серый, Топографический).
Различные темы карты могут иметь разные максимальные уровни масштабирования, поэтому для увеличения масштаба карты может применяться соответствующая тема.
Предложение Where используется для дополнительной строки запроса {WHERE part} для MySQL / MariaDB.
Это предложение учитывается при построении полной строки QUERY для результата базы данных. Он может ограничивать данные, время и любые другие значения, ограничивая количество результатов. В этом поле должны использоваться исходные имена полей таблицы (не псевдонимы). Например.
gps_speed_km> 10 // скорость больше 10 км / ч
ain5> 3 // ain5 больше 3 (количество частиц 2,5 мкм - уровень смога)
gps_speed_km> 10 и ain6> 5 // скорость больше 10 км / ч, а ain6 больше 5 (количество частиц 10um - уровень смога)
Нажатие этой кнопки необходимо для изменения любых настроек, параметров (кроме нажатия +/- кнопки).
Карта загружается с самого начала с новыми предустановками.
Карта вообще не загружается, когда нет данных для текущего запроса.
После нажатия этой кнопки необходимо вручную выбрать хотя бы одно поле для отображения результатов на карте.
Этот флажок используется для отображения / скрытия селектора отображаемых полей.
Этот флажок позволяет скрыть всю форму, кроме ( +/- кнопки)
Результаты на карте постоянно обновляются и обновляются новыми значениями.
Например, результаты смога (датчик установлен на автомобиле): уровень смога частиц 2,5 мкм (Ain5), скорость (gps_speed_km), дата / время (tm), карта (2 - топографическая), уровень масштабирования 16,
Предложение где:
"gps_fix = 3 и tm> "2019-02-18 00:00:00" и tm <"2019-02-19 00:00:00" и gps_speed_km> 0".
// GPS = действительные результаты 3D & date = 18.02.2019 & скорость> 0 км / ч
Показать результаты в таблице.
На "Основная форма" Нажмите "Таблица" элемент, после выбора некоторых полей для отображения предварительно настроенной таблицы
Когда таблица открыта по ссылке http: //%IP%/IoT/que.php? func = tabs требует предварительной инициализации настроек.
Вы можете выбрать видимые поля (нажав "Видимые поля" ) флажок.
Установите все необходимые флажки для отображаемых полей
Установите флажок "Видимые поля" скрыть форму полей
Нажмите кнопку «Выполнить», чтобы запустить запрос БД и отобразить таблицу.
Настройки описаны слева направо (на скриншоте).
Поле сортировки эквивалентно нажатию заголовка столбца.
IMEIПоле содержит уникальный идентификатор устройства или уникальный псевдоним устройства. При пустом значении отображается таблица последних значений.
Если установить для IMEI любое другое значение, отобразятся исторические данные выбранного устройства.
Это суфикс для дополнительной строки запроса MySQL / MariaDB {WHERE part}
Это предложение учитывается при построении полной строки QUERY для результата базы данных. Он может ограничивать данные, время и любые другие значения, ограничивая количество результатов. В этом поле должны использоваться исходные имена полей таблицы (не псевдонимы). Например.
gps_speed_km> 10 // скорость больше 10 км / ч
ain5> 3 // ain5 больше 3 (количество частиц 2,5 мкм - уровень смога)
gps_speed_km> 10 и ain6> 5 // скорость больше 10 км / ч, а ain6 больше 5 (количество частиц 10um - уровень смога)
После нажатия этой кнопки необходимо вручную выбрать хотя бы одно поле для отображения результатов на карте.
Нажатие этой кнопки необходимо для изменения любых настроек, параметров (кроме нажатия +/- кнопки).
Таблица перезагружается с самого начала с новыми пресетами.
Этот флажок используется для отображения / скрытия селектора отображаемых полей.
Результаты в таблице отсортированы по Сортировать полевая установка. Порядок сортировки можно изменить, нажав заголовок строки (один раз для одного направления, два раза для другого направления).
Некоторые результаты в столбцах ссылаются на дополнительные экраны визуализации (жестко запрограммированные).
При отображении исторических данных для устройства его следует ограничить, чтобы не отображать всю историческую информацию, поскольку это может привести к проблемам с производительностью или нехватке памяти.
Гистограммы следует запускать из Основной формы, нажав на одно поле в строке «Бар».
Он отображает отсортированные столбцы, нормализованные до максимального значения, от самого высокого до самого низкого порядка.
Это полезно для быстрой проверки крайних результатов и выполнения некоторых действий.
Событие Mouse Over отобразит дополнительную информацию об устройстве.
Исторические диаграммы могут быть инициированы из MainForm при нажатии на выбранный столбец в строке «History» (для одного поля).
Для нескольких полей в строке «История» необходимо отметить нужные поля и нажать ссылку «История» в столбце «Выполнить».
Исторические результаты ограничены последними 24 часами + следующими 24 часами (для возможного обновления графиков), когда ограничения не были установлены.
Исторические диаграммы при открытии по основной ссылке требуют инициализации, как и другие результаты, когда открываются по ссылке без параметров предпочтений.
Для отображения различных элементов можно выбрать несколько полей. Его также можно установить в форме фильтра поля.
Установите все необходимые флажки для отображаемых полей
Установите флажок "Видимые поля" скрыть форму полей
Нажмите кнопку «Выполнить», чтобы запустить запрос БД и отобразить таблицу.
Пункты описаны сверху и слева направо (на скриншоте).
IMEIПоле содержит уникальный идентификатор устройства или уникальный псевдоним устройства. Со значением * (звездочка) показывает таблицу самых последних значений, которая не имеет смысла.
Если установить для IMEI любое другое значение, отобразятся исторические данные выбранного устройства.
Пункт для ограничения результатов данных MySQL / MariaDB дополнительная строка запроса {WHERE part}.
Это предложение учитывается при построении полной строки QUERY для результата базы данных. Он может ограничивать данные, время и любые другие значения, ограничивая количество результатов. В этом поле должны использоваться исходные имена полей таблицы (не псевдонимы) и допустимый синтаксис SQL. Например.
gps_speed_km> 10 // скорость больше 10 км / ч
ain5> 3 // ain5 больше 3 (количество частиц 2,5 мкм - уровень смога)
gps_speed_km> 10 и ain6> 5 // скорость больше 10 км / ч, а ain6 больше 5 (количество частиц 10um - уровень смога)
После нажатия этой кнопки необходимо вручную выбрать хотя бы одно поле для отображения исторических результатов.
Нажатие этой кнопки необходимо для изменения любых настроек, параметров (кроме отображения полей или панели запросов). Таблица перезагружается с самого начала с новыми пресетами.
Этот флажок используется для отображения / скрытия селектора отображаемых полей.
Указатель мыши отображает значения измерений и дату / время.
Функция / WWW-браузер | Хром 72 | FireFox 65 | Край | Опера 58 |
Карты | + | + | + | + |
Исторический | + | + (*) | + | + |
Бары | + | + | + | + |
Вкладки | + | + | + | + |
* - Firefox не поддерживает выбор даты / времени (текстовое поле необходимо редактировать вручную, используя правильный формат даты и времени).
Internet Explorer не поддерживается (используйте Край вместо)
Другие браузеры не тестировались.
Веб-страницы основаны на общем файле шаблона, расположенном по адресу "шаблоны" каталог "* .template".
Дополнительно каждый тип страницы содержит:
Файл "* .head", в котором хранится заголовок страницы (ссылки, импортированные CSS, JavaScript файлы и т. д.) )
Файлы "* .foot", в которых хранится нижний колонтитул страницы (ссылки и т. д.). )
Тема визуализации может быть изменена в соответствии с предпочтениями пользователя путем копирования и изменения файлов CSS. Файлы CSS находятся в "шаблоны / CSS" каталог. Различные темы веб-страниц могут быть использованы для создания оптимизированных, например, для. печать, смартфоны, шаблоны планшетов.
Вкладкаle views - есть поле выбора для выбора файла CSS для полной модификации темы (хранится в "шаблоны / CSS / вкладки" каталог).
Map взгляды - общая тема выбрана "карта" введите поле со списком. Дополнительно есть файл CSS по умолчанию "шаблоны / css / map.css" который содержит некоторые дополнительные функции, такие как скрытие / раскрашивание результатов на основе его значений. Остальная часть этого CSS-файла практически ограничена формами запросов и полей.
Большинство @City Platform PHP файлы для визуализации принимают cssпараметр со значением имени файла для Темы (без расширения). Файл должен находиться в каталоге "templates / css", а имя должно быть чувствительно к регистру.
Некоторые элементы отображения темы находятся непосредственно в JavaScript файле, расположенном в "шаблон / js" каталог.
Основной @Город сценарий"@ City.js" находится в верхнем каталоге. В этом нет возможности модификации местоположение, однако сценарий может быть скопирован в "шаблоны / js" каталог и изменен там. Использование отдельного скрипта требует обновления всех файлов заголовков.
Для некоторых уникальных датчиков могут потребоваться специальные функции расчета.
Нет возможности обновлять и поддерживать несколько вариантов Серверное программное обеспечение @City, Внешний интерфейс PHP, что вызвало бы множество проблем, версий, ошибок.
Лучший и самый простой способ добиться этого - обновить JavaScript «оверлейные» файлы для правильного отображения значения / описания.
Оригинальные сценарии JS представляют собой открытый текстовый файл и могут быть адаптированы к потребностям клиентов. Как было сказано в предыдущей главе, они должны быть скопированы в "шаблоны / js" каталог, в котором у клиента есть права доступа для изменения.
Технический аспект программирования @Город Система не является предметом этого документа, однако веб-разработчик с базовыми знаниями HTML и JS может настроить интерфейсное веб-приложение в соответствии с индивидуальными потребностями клиента.
@City База данных с именем «Интернет вещей» или же «* IoT» разделен на таблицы (где звездочка - префикс в зависимости от сервера хостинга - при необходимости). Базу данных можно увидеть в PHPAdmin (веб-приложение) по ссылке http: //% IP% / phpmyadmin
Таблицы, установленные для каждого устройства (где * {asterix} - адрес IMEI - уникальный идентификатор):
"* _t" - токены для авторизации текущих пользователей (не используются для облаков Single-Customer)
"* _c" - очередь команд (событий) - для отправки на устройство
"*" - все расшифрованные статусные результаты.
Другие таблицы:
"ithings_" таблица - содержит декодированный текущий статус всех устройств (копируется при обновлении любого из "*" таблицы). Структура ithings_ таблица почти такая же, как и "*" столы. "ithings_" есть дополнительные поля для почтового адреса и описания.
Таблица "пользователи" ограничена и должна быть изменена.
"idx" - индекс
"тм" - автоматическая отметка времени
"дт" - временная метка unix
"imei" - уникальный адрес устройства
"rssi" - Уровень сигнала RSSI
"rsrp" - сигнал RSRP
"События" - ожидающие события для отправки в контроллер
"out1" .. "out16" - статус декодированных выходов
"в 1" .. "in16" - статус декодированных входов
"ain1" .. "ain8" - декодированные значения АЦП (RAW)
"sens1" .. "sens8" - преобразованные значения датчика (зависит от типа устройства)
"dimm1" .. "dimm8" - расшифрованные значения диммеров (зависит от типа устройства)
"int1" .. "int6" - декодированные значения счетчиков (зависит от типа устройства)
"текст 1" .. "текст6" - декодированные текстовые значения (зависит от типа устройства)
"создание" - дата / время создания устройства
"последний" - последняя дата / время
«пользователь» - будущее использование
«пройти» - использование в будущем
"sn" - серийный номер GSM
"статус" - текущий статус контроллера не декодируется в шестнадцатеричном формате
"hash_code" - будущее использование
"addr" - короткий адрес устройства
"fwnr" - номер прошивки
«disabled» - отключенное устройство (не выполняется)
"gsm_nr" - номер CIoT gsm
"vendor" - код вендора (для франшизы / копродукции)
"часовой пояс" - смещение часового пояса
"dst" - Использовать настройки ежедневной экономии
"gps_lat" - Широта GPS
"gps_long" - Долгота GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Высота по GPS
"gps_fix" - GPS-фиксация (должно быть 3 - для достоверных результатов)
"gps_cog" - GPS Cog
"gps_speed_km" - Скорость GPS в [км / ч]
"gps_sat" - Найдены спутники GPS
«континент», «страна», «регион», «субрегион», «подобласть», «город», «район», «улица», «street_nr», «item_nr» - Адрес клиента и поля описания (!!!! Недоступно для "*" исторические таблицы)
«журнал» - данные журнала
Имена полей важны для создания SQL-запросов для увеличения функциональности поиска, потому что в операторе SQL необходимо использовать исходное имя.
Эта таблица представляет собой очередь событий / команд для каждого устройства и имеет следующую структуру:
"command" - команда, которая будет отправлена или уже отправлена контроллеру
"подтверждено" - флаг подтверждения, если оно уже было отправлено и подтверждено
"date" - временная метка события в unix
"обновлено" - флаг автообновления (дата / время отметки времени)
Данные могут быть доступны без интерфейсного веб-приложения. Система @City содержит скрипт с функциями среднего уровня. Результаты возвращаются в формате JSON.
http: //%IP%/IoT/que.php? func = devsjson
Запрос возвращает целиком "_ithings" таблица (текущие статусы всех устройств) в формате JSON:
[{ "страна":"", "город":"", "континент":"", "страна":"", "область, край":"", "субрегион":"", "подобласть":"", "город":"", "округ":"", "улица":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "тм":"2019-02-10 12:56:23", "создание":"2019-02-09 18:12:38", "последний":"0000-00-00 00:00:00", "События":"", "Пользователь":"", "проходить":"", "imei":"351580051067110", "sn":"", "статус":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb30532532", "хэш-код":"", "адрес":"", "fwnr":"", "отключен":"", "gsm_nr":"", "продавец":"", "часовой пояс":"", "dst":"", "rssi":"91", "rsrp":"99", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "gps_hdop":"", "gps_alt":"", "gps_fix":"4", "gps_cog":"", "gps_speed_km":"", "gps_sat":"", "События":"", "out1":"0", "out2":"0", "out3":"0", "out4":"0", "out5":"0", "out6":"0", "out7":"0", "out8":"0", "out9":"0", "out10":"1", "out11":"0", "out12":"0", "out13":"0", "out14":"0", "out15":"0", "out16":"0", "в 1":"0", "in2":"0", "in3":"0", "in4":"0", "in5":"0", "in6":"0", "in7":"0", "in8":"0", "in9":"0", "in10":"0", "in11":"0", "in12":"0", "in13":"0", "in14":"0", "in15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "ain5":"0", "ain6":"44 год", "ain7":"44 год", "ain8":"45", "sens1":"0", "sens2":"0", "сенс3":"0", "sens4":"0", "sens5":"0", "sens6":"0", "sens7":"0", "sens8":"0", "dimm1":"255", "dimm2":"255", "dimm3":"255", "dimm4":"255", "dimm5":"255", "dimm6":"255", "dimm7":"255", "dimm8":"255", "int1":"-16776767", "int2":"450", "int3":"", "int4":"", "int5":"", "int6":"0", "текст 1":"", "text2":"", "text3":"", "text4":"", "text5":"", "текст6":"" }]
Запросить исторические данные одного устройства по номеру IMEI:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Поскольку вся таблица может содержать миллионы строк, ее следует ограничить предложением WHERE, чтобы сервер не зависал.
Дополнительные параметры параметры url:
func - имейджсон
imei - IMEI устройства
поле - поля для отображения в результатах (список, разделенный запятыми)
мин - минимальное значение для первого поля из списка
Максимум - максимальное значение для первого поля из списка
sили жеt - поле для сортировки
тм - поле автоматически добавляется к результатам.
where - пункт where для ограничения данных
Пример:
Мы хотим получить следующий результат
для устройства с imei=356345080018095
показать поля: ain5, ain6, gps_lat, gps_long
и ограничить ain5 в диапазоне ( 1, 10000 ) - должно быть первым полем в списке
а также GPS иметь действительные данные (gps_fix = 3)
и дата / время (тм) from2019-02-14 23:00:19 to 2019-02-15 00:00:00
Созданная строка URL:
http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& field =ain5, ain6, gps_lat, gps_long& min =1& max =1000& где =gps_fix = 3 и tm> "2019-02-14 23:00:19" и tm <"2019-02-15 00:00:00"
Результаты запроса:
[{ "ain5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","тм":"2019-02-14 23:04:31" }, { "ain5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","тм":"2019-02-14 23:05:42" }, { "ain5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","тм":"2019-02-14 23:06:05" }, { "ain5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","тм":"2019-02-14 23:06:32" }, { "ain5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","тм":"2019-02-14 23:06:55" }]
Эта функция возвращает ограниченные данные из таблицы "_ithings".
http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000
Параметры:
func - fieldjson
поле - поле для отображения в результатах - imei а также тм добавляются автоматически
мин - минимальное значение для поля
Максимум - максимальное значение для поля
Для приведенной выше строки запроса он возвращает Результаты ain5, imei, tm поля:
если ain5 в пределах досягаемости (13 500)
Результаты запроса:
[{"imei":"353080090069142", "тм":"2019-03-14 11:51:01", "ain5":"14" },
{"imei":"356345080018095", "тм":"2019-02-20 09:13:04", "ain5":"115" },
{"imei":"Карчев", "тм":"2019-03-07 13:08:22", "ain5":"103" }]