@City IoT Cloud Platform
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. Devices -Пристрої LoRaWAN 9
1.7. Варіанти бізнесу від бізнесу (B2B) 9
2. @City IoT Функціональність платформи 10
3. Головна сторінка 11
4. Основна форма 11
4.1. Заголовок 12
4.1.1. Домашнє посилання - (відкриває таблицю фактичних результатів) 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. Змінення шкали MAP (рівень масштабування) 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. Виберіть основну кнопку (Увімкнути найпоширеніші поля) 20
6.2.9. Скасувати вибір кнопки All (Видалити всі поля з запиту) 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. Скасувати вибір кнопки All (Видалити всі поля з запиту) 23
8.2.10. Виконати (кнопка запуску запиту) 23
8.2.11. Прапорець "V" (Форма поля відкриття / закриття) 24
8.3. Варіант стовпчиків: (відображає лише доступні дані) 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 is присвячена наступним продуктам iSys.PL
IoT - RF / LoRaWAN (Інтернет речей)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (стільниковий Інтернет речей)
Wi-Fi
Ethernet
@City (eCity) Cloud IoT Platform - це система різних розмірів для продуктів IP IoT (звана разом як @City Hardware або Пристрої CioT ):
@City
@ Світло
@ Вимірювання
@Trace
@AirQ
@Bin
Платформа @City supports підтримує такі протоколи зв'язку:
UDP - пропонується для датчиків / пристроїв CIoT (особливо NBIoT) - найнижче використання даних
TCPIP - пропонується для пристроїв із двонаправленим зв’язком - рукостискання / підтвердження
HTTP - пропонується лише для доступу до даних / візуалізації / експорту / "хмара до хмари"
HTTP Webhooks - для зв'язку LoRaWAN між мережею / сервером додатків LoRaWAN та @City Cloud.
Дані, що надсилаються з контролера на хмарний сервер і навпаки, шифруються в унікальному двійковому форматі для мінімального обсягу даних та підвищеного захисту. Кожен партнер отримує власний унікальний ключ шифрування для авторизації пристрою, перевірки достовірності даних тощо.
Для пристроїв, що не є eHouse / eCity, ми можемо запропонувати індивідуальні алгоритми шифрування ( "C" вихідний код) для кожного партнера для мікропроцесора для захисту даних перед спілкуванням.
У цьому випадку дані повністю захищені під час двостороннього спілкування через засоби масової інформації (Інтернет, Ефір тощо). ).
Платформа @City supports підтримує:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - пристрої (UDP / TCPIP-зв'язок)
Пристрої LoRaWAN (HTTP Webhooks) - через шлюз LoRaWAN та мережу / сервери додатків LoRaWAN
Контролери Ethernet (зв'язок UDP / TCP)
Контролери WiFi (зв’язок UDP / TCP)
Майбутні продукти IP
Не IP-продукти через додаткові локальні @ City / eHouse.PRO Апаратний шлюз
@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)
Оперативна пам'ять (16 .. 512 ГБ)
SSD / HDD (256 ГБ .. 8 ТБ)
Платформа @City is присвячена одному клієнту:
органи місцевого самоврядування та управління (місто, громада, країна)
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 поділяються так само, як і для інших інтерфейсів. Це обговорюється в попередньому розділі.
Інтерфейс інтерфейсу реалізований за допомогою PHP-скриптів для вилучення налаштованих даних із хмарної бази даних @City. Він використовує дуже еластичний механізм пошуку на основі оригінальних запитів SQL для обмеження бажаних даних. Інтерфейс забезпечує результати запиту у форматі JSON для подальшого декодування та обробки за допомогою JavaScript Front-end Web-програми.
Оригінальний інтерфейсний інтерфейс однаковий для кожного користувача і не може бути налаштований для різних клієнтів.
Інтерфейс накладання може бути створений нашими співробітниками або спільно для забезпечення налаштування для клієнта.
Права доступу клієнта (на фізичний Сервер) обмежені.
Доступ до файлів лише для каталогу "шаблони" (власні текстові файли - .txt, .js, .css, .html):
додавання, видалення, модифікація чистих HTML-файлів (інтерфейсний графічний інтерфейс / розробка інтерфейсу)
додавання, видалення, модифікація чистих файлів ((інтерфейсний графічний інтерфейс / розробка інтерфейсу та алгоритми)
додавання, видалення, модифікація чистих файлів CSS (Front-End - Спеціальні подання / Теми)
додавання, видалення, зміна текстових файлів шаблонів (інтерфейсний графічний інтерфейс)
додавання, видалення, модифікація вкладок, ярликів, посилань на результати даних
Інші права доступу:
Повний доступ до @City Cloud Database MySQL / MariaDB, де зберігаються всі дані пристроїв
Доступ до веб-служб визначається (облікові дані) для клієнта.
Клієнт не має права передавати облікові дані третім особам (багаторазовий доступ до результатів може вплинути на продуктивність, стабільність та безпеку загальної системи)
За особливих обставин та використання високопродуктивного виділеного сервера може бути створений загальнодоступний обліковий запис для відстеження більшості поточних даних (не історичних).
Користувач може дублювати дані на власний сервер MySQL та проводити власний аналіз та обробку даних, щоб не впливати на продуктивність сервера @City
iSys - співробітники Інтелектуальних систем - мають необмежений доступ до всього сервера, включаючи обліковий запис root і повний доступ до БД для обслуговування.
За певних обставин iSys може надати додаткові обмежені права замовнику (сценарії PHP, файли) після перевірки вихідного коду, запуску тестів, якщо це не впливає на загальну безпеку, стабільність та продуктивність системи.
Наші пристрої містять мікроконтролер та модуль GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) для зв'язку. Мікроконтролер містить зашифрований завантажувач для безпечного оновлення прошивки OTA. Це дозволяє створювати безліч варіантів системи на основі одного і того ж "Інтелектуальний пристрій CIoT".
Контролери Ethernet та WiFi дозволяють здійснювати зв'язок із системою на основі IP (без оплати за передачу даних оператору GSM). Ці пристрої також мають зашифрований завантажувач, і пристрої можуть оновлюватися через власний інтерфейс. Для WiFi він має оновлення прошивки OTA з головного сервера
LoRaWAN забезпечує передачу даних на дуже великі відстані (до приблизно 15 км). Цей діапазон залежить від швидкості передачі даних, обсягу даних, урбанізації району та ефективності радіоканалів пристроїв.
Наші пристрої включають мікроконтролер та модуль LoRaWAN для зв'язку. Мікроконтролер містить зашифрований завантажувач для безпечного оновлення програмного забезпечення OTA. Це дозволяє створювати кілька варіантів системи на основі одного і того ж "IoT smart device". Пристрої працюють у відкритому діапазоні ISM без додаткової плати за підписку. Потрібно використовувати шлюзи LoRaWAN, щоб охопити всю територію доступом до Інтернету. У випадку існуючих шлюзів LoRaWAN в межах діапазону пристроїв (налаштованих на сервер TTN), можна надсилати інформацію через них. Для оновлення мікропрограми потрібна власна мережа / сервер LoRaWAN та хороший діапазон для спілкування.
Є кілька варіантів бізнесу та співпраці:
імпорт / експорт готової продукції (розподільні щити, пристрої) - кінцева продукція
імпорт / експорт продукції OEM (друковані плати, контролери тощо) - проміжні продукти, запасні частини
франшиза - виробництво на основі нашої ліцензії для місцевих ринків (ми постачаємо лише запрограмовані мікроконтролери) під системою iSys - Intelligent Systems Brands
Спільне виробництво - (як зазначено вище), але під зовнішніми торговими марками
Платформа @City підтримує настроюваний Front-End шаблон для візуалізації, запиту, обмеження та обробки даних (поточні / дані історії):
візуалізувати вибрані дані на карті (геолокалізація)
показує вибрані дані та результати в таблицях
відображає вибрані дані на гістограмах
показує вибрані дані в історичних діаграмах
експортувати дані до сторонніх додатків та подальшої обробки
інші функції будуть оновлюватися за індивідуальними запитами.
Front-End користувача доступний через статичний IP-адресу або домен перенаправлення DNS / піддомен / файл, якщо такий є.
Зразкова та демонстраційна установка (вона доступна лише для потенційних клієнтів).
Будь ласка, повідомте нас, коли ви хочете його протестувати - щоб надати доступ громадськості до платформи.
Це може зажадати статичного IP віддаленого комп’ютера, щоб забезпечити зв’язок із платформою @City.
Головна сторінка навмисно залишається порожньою з міркувань безпеки: http: //% YourIP% / IoT /
Він може бути індивідуально ввімкнений і відредагований і містити посилання на всі доступні служби @City IoT Платформа якщо це потрібно
Основна форма призначена для створення нових пресетів та вкладок: http: //%IP%/IoT/que.php
Це початкова форма для створення результатів, подань та вкладок для кожної конфігурації
Описи (зверху та зліва направо)
Змінити файл CSS теми теми візуалізації повинен існувати у "templates / css /" каталог - перераховується автоматично.
Виберіть основні поля, видимі в таблиці. Це оновлюється автоматично.
Скасуйте вибір усіх полів (після цього слід вибрати деякі з них вручну)
Виділіть усі поля (слід слідувати, скасовуючи вибір деяких з них вручну)
Це еквівалентно всім (X) прапорцям
Індивідуально створені вкладки з іменами та пресетами (зберігаються в cfg / tabs.cfg файл).
Файл фактично містить ім'я та URL-адресу (розділені символом табуляції).
Відображає всі поля, обмежені фільтром полів.
Поля в таблиці:
карта- відображення результатів на карті (може бути вибрано одне або кілька полів)
історії - історичні діаграми (можна вибрати одне або кілька полів)
tab - відображає таблицю (може бути вибрана будь-яка комбінація полів)
бар - на гістограмі відображається лише одне поле
При натисканні одного з його значень відкриються нові результати з вибраними полями (для поточного рядка).
Додавання / видалення вкладки з іменем, встановленим у Вкладка поле. Тут використовуються лише поля, вибрані в одному рядку таблиці.
Натискання будь-якого іншого імені поля ініціює Візуалізацію даних вибраного поля для вибраного рядка.
Порядок відображених полів - це порядок у формі полів (однак tm поле завжди надсилається в кінець тексту). Цей порядок можна змінити лише безпосереднім редагуванням параметрів URL (частина порядку полів).
Наприклад: Встановлення вкладки за допомогою Відстеження активів ім'я та містить карту з часом та швидкістю на карті
Весь опис посилається на рядок де "Map" текст у "Біжи" стовпець.
Введіть ім'я "Відстеження активів" в Вкладка поле (без лапок)
Переконайтеся, що всі стовпці не позначені в рядку
виберіть tm, gps_speed_km лише в ряду
натисніть + кнопка, де знаходиться рядок
Карти можна запускати з MainForm з попередньою конфігурацією
Ініціалізація карти виконується вручну при безпосередньому виконанні за посиланням: > http: //%IP%/IoT/maps.php
Користувач повинен скасувати вибір усіх полів (натисніть Скасувати вибір Кнопка)
Натисніть деякий прапорець для відображених полів (наприклад, Ain5 (для рівня смогу) та tm (для дати / часу вимірювання)
натисніть "V" прапорець, щоб приховати форму полів
натисніть Виконати Кнопка для запуску запиту DB та відображення поточної інформації з усіх датчиків / пристроїв
Карта з даними оновлюється через 30 секунд або більше.
Налаштування описані зліва направо (на скріншоті вище).
Рівень масштабування можна змінити за допомогою кнопок (+/-) для масштабу (поточний_масштаб * 2 або поточний_масштаб / 2 відповідно). Натискання однієї з цих кнопок автоматично змінює масштаб.
Інший спосіб - вибрати рівень масштабування Збільшити Поле Combo Box і натисніть Виконати кнопку. У цьому випадку весь View / Map перезавантажується та оновлюється (триває деякий час під час ініціалізації).
IMEIполе містить унікальний ідентифікатор пристрою або унікальний псевдонім пристрою. За замовчуванням встановлено * (зірочка), що відображає найновіші значення та геолокацію для кожного пристрою.
Встановивши IMEI на будь-яке інше значення, відображатимуться історичні дані вибраного пристрою. Це має сенс лише для мобільних та рухомих датчиків, інакше результати накладатимуться на карту в тому самому положенні.
Встановити центральне положення карти. Це поле встановлюється в положення курсору при натисканні кнопки миші на карті.
Можна вибрати стиль / тему карти Map Поле ComboBox (наприклад, Темний, Сірий, Топографічний).
Різні теми карт можуть мати різні максимальні рівні масштабування, тому це може забезпечити належну тему для збільшення масштабу карти.
Де пункт використовується для додаткового рядка запиту {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.5um частинки (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 & дата = 2019-02-18 & швидкість> 0 км / год
Показати результати в таблиці.
Увімкнено "Основна форма" натисніть "таблиця" пункт, вибравши деякі поля для відображення попередньо налаштованої таблиці
Коли таблиця відкрита за посиланням http: //%IP%/IoT/que.php? func = tabs це вимагає попередньої ініціалізації налаштувань.
Ви можете вибрати видимі поля (натиснувши "Видимі поля" ) прапорець.
Натисніть усі необхідні прапорці для відображених полів
Натисніть прапорець "Видимі поля" щоб приховати форму полів
Натисніть кнопку Виконати, щоб запустити запит DB та відобразити таблицю
Налаштування описані зліва направо (на скріншоті).
Поле сортування еквівалентно натисканню заголовка стовпця.
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 годинами (для можливих оновлення графіків), коли не було встановлено обмежень.
Історичні діаграми при відкритті з головного посилання вимагають ініціалізації як інші результати, коли відкриваються за посиланням без параметрів налаштувань.
Для відображення різних елементів можна вибрати кілька полів. Його також можна встановити у формі фільтра поля.
Натисніть усі необхідні прапорці для відображених полів
Натисніть прапорець "Видимі поля" щоб приховати форму полів
Натисніть кнопку Виконати, щоб запустити запит DB і відобразити таблицю
Елементи, описані зверху та зліва направо (на скріншоті).
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 браузер | Chrome 72 | FireFox 65 | Край | Опера 58 |
Карти | + | + | + | + |
Історичний | + | + (*) | + | + |
Бари | + | + | + | + |
Вкладки | + | + | + | + |
* - Firefox не підтримує інструмент вибору дати / часу (текстове поле має бути відредаговане вручну, використовуючи належний формат часу та дати).
Internet Explorer не підтримується (використовувати Край замість цього)
Інші веб-браузери не тестувались.
Веб-сторінки базуються на загальному файлі шаблону, розміщеному за адресою "шаблони" каталог "* .template".
Крім того, кожен тип сторінки містить:
Файл "* .head", який зберігає заголовок сторінки (посилання, імпортований CSS, JavaScript Файли тощо). )
Файли "* .foot", в яких зберігається нижній колонтитул сторінки (посилання тощо). )
Тему візуалізації можна змінити відповідно до уподобань користувача, обробляючи та змінюючи файли CSS. Файли CSS знаходяться в "шаблони / css" каталог. Для створення оптимізованих для, наприклад, різних тем веб-сторінок. друк, смартфони, шаблони PAD.
Вкладкаle подання - мають поле для вибору файлу CSS для повної модифікації теми (зберігається в "templates / css / tabs" каталог).
Map погляди - загальну тему вибирає "карта" тип комбінованого вікна. Крім того, є файл CSS за замовчуванням "templates / css / map.css" який містить деякі додаткові функціональні можливості, такі як результати приховування / забарвлення на основі його значень. Решта цього файлу CSS практично обмежена формами запитів та полів.
Більшість @City Platform Файли PHP для візуалізації приймаються cssпараметр зі значенням імені файлу для теми (без розширення). Файл повинен знаходитися в каталозі "templates / css", а назва має чутливий регістр.
Деякі елементи відображення теми розташовані безпосередньо у файлі located, що знаходиться в "шаблон / js" каталог.
Головна @City сценарій"@ City.js" знаходиться у верхній директорії. У цьому немає можливості модифікації розташування, однак скрипт може бути скопійовано в "templates / js" каталог і модифікований там. Використання окремого сценарію вимагає оновлення всіх заголовкових файлів.
Деякі унікальні датчики можуть вимагати спеціальних функцій обчислення.
Немає можливості оновити та підтримувати кілька варіантів @City Server Software, Інтерфейс інтерфейсу PHP, що спричинить багато проблем, версій, помилок.
Найкращий і найпростіший спосіб досягти цього - це оновлення файлів "накладання" для належного відображення значення / опису.
Оригінальні сценарії JS є відкритим текстовим файлом і можуть бути прийняті до потреб замовника. Як зазначено в попередньому розділі, їх слід скопіювати в "templates / js" каталог, де клієнт має права доступу для модифікації.
Технічний аспект програмування @City система не є предметом цього документа, однак веб-розробник, який володіє базовими знаннями HTML та JS, може налаштувати інтерфейсну веб-програму під індивідуальні потреби клієнтів.
База даних @City з іменем "IoT" або "* IoT" розділений на таблиці (де астерикс - префікс залежно від хостинг-сервера - якщо потрібно). Базу даних можна спостерігати у PHPAdmin (веб-програмі) за посиланням http: //% IP% / phpmyadmin
Набір таблиць для кожного пристрою (де * {asterix} - це адреса IMEI - унікальний ідентифікатор):
"* _t" - маркери для поточної авторизації користувачів (не використовуються для хмар для одного клієнта)
"* _c" - черга команд (подій) - для надсилання на пристрій
"*" - всі результати декодованого стану.
Інші таблиці:
"ithings_" таблиця - містить розшифрований поточний стан усіх пристроїв (він копіюється під час оновлення будь-якого з "*" таблиці). Структура ithings_ таблиця майже однакова з таблицею "*" таблиці. "ithings_" мати додаткові поля для поштової адреси та описів.
таблиця "користувачі" обмежена і повинна бути змінена.
"idx" - індекс
"тм" - автоматична позначка часу
"dt" - мітка часу unix
"imei" - унікальна адреса пристрою
"rssi" - Рівень сигналу RSSI
"rsrp" - сигнал RSRP
"події" - очікування подій, які будуть надіслані контролеру
"out1" .. "out16" - статус декодованих виходів
"in1" .. "в16" - статус декодованих входів
"ain1" .. "ain8" - декодовані значення ADC (RAW)
"sens1" .. "sens8" - перетворені значення датчика (залежить від типу пристрою)
"dimm1" .. "dimm8" - розшифровані значення диммерів (залежить від типу пристрою)
"int1" .. "int6" - розшифровані значення лічильників (залежить від типу пристрою)
"текст1" .. "text6" - декодовані текстові значення (залежить від типу пристрою)
"створення" - дата / час створення пристрою
"останній" - остання дата / час
"користувач" - майбутнє використання
"pass" - майбутнє використання
"sn" - gsm серійний номер
"статус" - поточний статус контролера не декодується у шістнадцятковому форматі
"hash_code" - майбутнє використання
"addr" - коротка адреса пристрою
"fwnr" - прошивка nr
"disabled" - пристрій з інвалідністю (не виконується)
"gsm_nr" - номер gsm CIoT
"постачальник" - код постачальника (для франшизи / копродукції)
"часовий пояс" - зміщення часового поясу
"dst" - Використовуйте налаштування щоденної економії
"gps_lat" - GPS Latitude
"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
"континент", "країна", "регіон", "субрегіон", "субрегіон", "місто", "район", "вулиця", "вулиця_nr", "item_nr" - Адреса клієнта та поля опису (!!!! Недоступно для "*" історичні таблиці)
"log" - дані журналу
Назви полів важливі для створення SQL-запитів для збільшення функціональності пошуку, оскільки в операторі SQL потрібно використовувати оригінальне ім'я.
Ця таблиця є чергою подій / команд для кожного пристрою та має таку структуру:
"command" - команда, яку потрібно надіслати або вже відправити контролеру
"підтверджено" - прапор підтвердження, якщо він уже надісланий і підтверджений
"date" - мітка часу unix події
"оновлено" - прапор автоматичного оновлення (дата / час позначки часу)
Дані можуть бути доступні без веб-програми Front-end. Система @City містить скрипт із функціями середнього рівня. Результати повертаються у форматі JSON.
http: //%IP%/IoT/que.php? func = devsjson
Запит повертається цілим "_ithings" таблиця (поточні статуси всіх пристроїв) у форматі JSON:
[{ "країна":"", "місто":"", "континент":"", "країна":"", "регіону":"", "субрегіон":"", "субрегіон":"", "місто":"", "район":"", "вул":"", "street_nr":"", "item_nr":"", "gps_lat":"0000,0000Н", "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":"", "статус":"73000200000f360033026800240000002c002c002dffffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb3050000", "хеш-код":"", "адр":"", "fwnr":"", "інваліди":"", "gsm_nr":"", "постачальник":"", "часовий пояс":"", "dst":"", "rssi":"91", "rsrp":"99", "gps_lat":"0000,0000Н", "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", "з10":"1", "з11":"0", "з12":"0", "з13":"0", "з14":"0", "з 15":"0", "out16":"0", "in1":"0", "в2":"0", "in3":"0", "in4":"0", "в5":"0", "в6":"0", "in7":"0", "в8":"0", "в9":"0", "у10":"0", "в11":"0", "у12":"0", "в13":"0", "в14":"0", "у15":"0", "в16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "aв5":"0", "ain6":"44", "ain7":"44", "ain8":"45", "sens1":"0", "sens2":"0", "sens3":"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":"", "текст2":"", "текст3":"", "текст4":"", "текст5":"", "text6":"" }]
Запитувати історичні дані одного пристрою за номером IMEI:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Оскільки ціла таблиця може містити мільйони рядків, вона повинна бути обмежена реченням WHERE, щоб не зависати сервер.
Додаткові параметри url параметри:
func - imeijson
imei - IMEI пристрою
поле - поля, що відображаються в результатах (список, розділений комами)
хв - мінімальне значення для першого поля зі списку
макс - максимальне значення для першого поля зі списку
sабоt - поле для сортування
tm - поле автоматично додається до результатів.
where - де пункт до обмежених даних
Приклад:
Ми хочемо отримати наступний результат
для пристрою з imei=356345080018095
показати поля: ain5, ain6, gps_lat, gps_long
і обмежити aв5 в діапазоні ( 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& поле =aв5, 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"
Результати запиту:
[{ "aв5":"66","ain6":"68","gps_lat":"5202,7326Н","gps_long":"02115.8073E","тм":"2019-02-14 23:04:31" }, { "aв5":"67","ain6":"76","gps_lat":"5202,7328N","gps_long":"02115.8075E","тм":"2019-02-14 23:05:42" }, { "aв5":"63","ain6":"77","gps_lat":"5202,7328N","gps_long":"02115.8074E","тм":"2019-02-14 23:06:05" }, { "aв5":"58","ain6":"77","gps_lat":"5202,7328N","gps_long":"02115.8075E","тм":"2019-02-14 23:06:32" }, { "aв5":"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 і tm додаються автоматично
хв - мінімальне значення для поля
макс - максимальне значення для поля
Для вищевказаного рядка запиту він повертається результати ain5, imei, tm поля:
якщо aв5 знаходиться в діапазоні (135000)
Результати запиту:
[{"imei":"353080090069142", "тм":"2019-03-14 11:51:01", "aв5":"14" },
{"imei":"356345080018095", "тм":"2019-02-20 09:13:04", "aв5":"115" },
{"imei":"karczew", "тм":"2019-03-07 13:08:22", "aв5":"103" }]