@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


1. Вступ.

@City IoT виділена хмарна платформа "мікрохмара" система для індивідуальних клієнтів. Платформа не може бути спільною, і лише один клієнт має доступ до фізичного або віртуального сервера (VPS або виділених серверів). Клієнт може вибрати один із десятків центрів обробки даних у Європі чи у світі.

1.1 Підтримувані типи пристроїв.

Платформа @City is присвячена наступним продуктам iSys.PL



1.2. Підтримувані типи продуктів.

@City (eCity) Cloud IoT Platform - це система різних розмірів для продуктів IP IoT (звана разом як @City Hardware або Пристрої CioT ):


1.3. Підтримувані протоколи зв'язку

Платформа @City supports підтримує такі протоколи зв'язку:

Дані, що надсилаються з контролера на хмарний сервер і навпаки, шифруються в унікальному двійковому форматі для мінімального обсягу даних та підвищеного захисту. Кожен партнер отримує власний унікальний ключ шифрування для авторизації пристрою, перевірки достовірності даних тощо.


Для пристроїв, що не є eHouse / eCity, ми можемо запропонувати індивідуальні алгоритми шифрування ( "C" вихідний код) для кожного партнера для мікропроцесора для захисту даних перед спілкуванням.

У цьому випадку дані повністю захищені під час двостороннього спілкування через засоби масової інформації (Інтернет, Ефір тощо). ).


1.4. Підтримувані комунікаційні технології пристроїв

Платформа @City supports підтримує:


@City IoT Платформа призначена для пристроїв / вузлів:


1.5. @City Cloud Server

Програмне забезпечення @City працює на VPS на основі Linux (Віртуальний приватний сервер) або Виділений сервер на стороні Інтернету, залежно від запитуваної продуктивності Сервер (званий пізніше Сервер):


Існує кілька варіантів VPS залежно від:


Десятки виділених серверів існують залежно від:


Платформа @City is присвячена одному клієнту:


Оскільки сервер не є спільним для використання між клієнтами, це спрощує доступ до безпеки та проблеми з продуктивністю. З цієї причини лише клієнт несе відповідальність за ефективну безпеку, стабільність, ефективність, пропускну здатність даних тощо. У разі недостатньої продуктивності клієнт може придбати більш високий план (VPS або виділений сервер), більш оптимальний до очікуваної функціональності та продуктивності.

В особливих випадках "Cloud to cloud" комунікація може бути застосована для глобалізації та централізації даних на великих територіях замість хмари для кількох клієнтів.

1.5.1. Серверні та комунікаційні шлюзи

Зв'язок @City Server реалізований на основі низькорівневої програми для максимізації продуктивності.

Основними особливостями програми @City Server є:

Програма @City Server однакова для кожного користувача і не може бути налаштована для різних клієнтів.

1.5.2 Інтеграція HTTP LoRaWAN

Контролери LoRaWAN інтегровані з хмарою @City через інтерфейс HTTP (веб-хуки), доступний на мережі / сервері додатків LoRaWAN.

Підтримується кілька типів серверів мережі / додатків:

TTN (обмежений час "В ефірі" і максимальна кількість команд, надісланих драйверу і не підтримують оновлення мікропрограми)

LoraWAN-Stack (Потрібен хостинг на фізичному пристрої з доступом до Інтернету).

LoraServer.Io (Потрібен хостинг на фізичному пристрої з доступом до Інтернету - лише надсилання даних на сервер і не підтримує оновлення мікропрограми)



Контролери @City Cloud для LoRaWAN поділяються так само, як і для інших інтерфейсів. Це обговорюється в попередньому розділі.

1.5.3. Інтерфейс інтерфейсу

Інтерфейс інтерфейсу реалізований за допомогою PHP-скриптів для вилучення налаштованих даних із хмарної бази даних @City. Він використовує дуже еластичний механізм пошуку на основі оригінальних запитів SQL для обмеження бажаних даних. Інтерфейс забезпечує результати запиту у форматі JSON для подальшого декодування та обробки за допомогою JavaScript Front-end Web-програми.

Оригінальний інтерфейсний інтерфейс однаковий для кожного користувача і не може бути налаштований для різних клієнтів.

Інтерфейс накладання може бути створений нашими співробітниками або спільно для забезпечення налаштування для клієнта.

1.5.3. Права доступу до сервера

Права доступу клієнта (на фізичний Сервер) обмежені.

Доступ до файлів лише для каталогу "шаблони" (власні текстові файли - .txt, .js, .css, .html):

Інші права доступу:


iSys - співробітники Інтелектуальних систем - мають необмежений доступ до всього сервера, включаючи обліковий запис root і повний доступ до БД для обслуговування.

За певних обставин iSys може надати додаткові обмежені права замовнику (сценарії PHP, файли) після перевірки вихідного коду, запуску тестів, якщо це не впливає на загальну безпеку, стабільність та продуктивність системи.


1.6. Розумні пристрої

1.6.1. CIoT - пристрої GSM

Наші пристрої містять мікроконтролер та модуль GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) для зв'язку. Мікроконтролер містить зашифрований завантажувач для безпечного оновлення прошивки OTA. Це дозволяє створювати безліч варіантів системи на основі одного і того ж "Інтелектуальний пристрій CIoT".


1.6.3. BAS, BMS, IoT - пристрої Ethernet та WiFi


Контролери Ethernet та WiFi дозволяють здійснювати зв'язок із системою на основі IP (без оплати за передачу даних оператору GSM). Ці пристрої також мають зашифрований завантажувач, і пристрої можуть оновлюватися через власний інтерфейс. Для WiFi він має оновлення прошивки OTA з головного сервера


1.6.2. IoT - пристрої LoRaWAN

LoRaWAN забезпечує передачу даних на дуже великі відстані (до приблизно 15 км). Цей діапазон залежить від швидкості передачі даних, обсягу даних, урбанізації району та ефективності радіоканалів пристроїв.

Наші пристрої включають мікроконтролер та модуль LoRaWAN для зв'язку. Мікроконтролер містить зашифрований завантажувач для безпечного оновлення програмного забезпечення OTA. Це дозволяє створювати кілька варіантів системи на основі одного і того ж "IoT smart device". Пристрої працюють у відкритому діапазоні ISM без додаткової плати за підписку. Потрібно використовувати шлюзи LoRaWAN, щоб охопити всю територію доступом до Інтернету. У випадку існуючих шлюзів LoRaWAN в межах діапазону пристроїв (налаштованих на сервер TTN), можна надсилати інформацію через них. Для оновлення мікропрограми потрібна власна мережа / сервер LoRaWAN та хороший діапазон для спілкування.

1.7. Варіанти від бізнесу до бізнесу (B2B)


Є кілька варіантів бізнесу та співпраці:

2. @City IoT Функціональність платформи

Платформа @City підтримує настроюваний Front-End шаблон для візуалізації, запиту, обмеження та обробки даних (поточні / дані історії):


Front-End користувача доступний через статичний IP-адресу або домен перенаправлення DNS / піддомен / файл, якщо такий є.


Зразкова та демонстраційна установка (вона доступна лише для потенційних клієнтів).

Будь ласка, повідомте нас, коли ви хочете його протестувати - щоб надати доступ громадськості до платформи.

Це може зажадати статичного IP віддаленого комп’ютера, щоб забезпечити зв’язок із платформою @City.


3. Головна сторінка

Головна сторінка навмисно залишається порожньою з міркувань безпеки: http: //% YourIP% / IoT /

Він може бути індивідуально ввімкнений і відредагований і містити посилання на всі доступні служби @City IoT Платформа якщо це потрібно


4. Основна форма

Основна форма призначена для створення нових пресетів та вкладок: http: //%IP%/IoT/que.php

Це початкова форма для створення результатів, подань та вкладок для кожної конфігурації




Описи (зверху та зліва направо)

4.1. Заголовок

4.1.1. Домашня посилання - (відкриває таблицю фактичних результатів)

4.1.2. "Х" прапорець - відкриває / закриває форму запиту

4.1.3. "V" прапорець - відкриває / закриває форму полів

4.1.4. Графічні значки - посилання на результати візуалізації (можна редагувати)


4.2. Форма:

4.2.1. "Х" прапорець - відкриває / закриває цілу форму запиту

4.2.2. CSS - Виберіть Тема візуалізації

Змінити файл CSS теми теми візуалізації повинен існувати у "templates / css /" каталог - перераховується автоматично.

4.2.3.Видимі поля прапорець - показує / приховує список фільтрів полів

4.2.4. Вкладка: Назва вкладки для додавання чи видалення

4.2.5. Додати / Видалити Кнопки - додавання або видалення вкладок із назвою в Вкладка поле

4.2.6. Виберіть Core Кнопка

Виберіть основні поля, видимі в таблиці. Це оновлюється автоматично.

4.2.7. Скасувати вибір усіх Кнопка

Скасуйте вибір усіх полів (після цього слід вибрати деякі з них вручну)

4.2.7. Вибрати все Кнопка

Виділіть усі поля (слід слідувати, скасовуючи вибір деяких з них вручну)

4.2.8. Сховати фільтр - Приховати цілу форму

Це еквівалентно всім (X) прапорцям

4.2.9. Виконати Кнопка - Зміна параметрів параметрів

4.2.10. "V" прапорець - Показати / Поля високого фільтра.


4.3. Вкладки

Індивідуально створені вкладки з іменами та пресетами (зберігаються в cfg / tabs.cfg файл).

Файл фактично містить ім'я та URL-адресу (розділені символом табуляції).


4.4. Зміст таблиці

Відображає всі поля, обмежені фільтром полів.


Поля в таблиці:

4.4.1. Біжи - тип результату переглядів

карта- відображення результатів на карті (може бути вибрано одне або кілька полів)

історії - історичні діаграми (можна вибрати одне або кілька полів)

tab - відображає таблицю (може бути вибрана будь-яка комбінація полів)

бар - на гістограмі відображається лише одне поле

При натисканні одного з його значень відкриються нові результати з вибраними полями (для поточного рядка).


4.4.2. Копіювати (+/- посилання)

Додавання / видалення вкладки з іменем, встановленим у Вкладка поле. Тут використовуються лише поля, вибрані в одному рядку таблиці.


4.4.3. Посилання на комірку таблиці

Натискання будь-якого іншого імені поля ініціює Візуалізацію даних вибраного поля для вибраного рядка.


4.5. Порядок даних


Порядок відображених полів - це порядок у формі полів (однак tm поле завжди надсилається в кінець тексту). Цей порядок можна змінити лише безпосереднім редагуванням параметрів URL (частина порядку полів).


4.6. Приклад

Наприклад: Встановлення вкладки за допомогою Відстеження активів ім'я та містить карту з часом та швидкістю на карті

Весь опис посилається на рядок де "Map" текст у "Біжи" стовпець.

  1. Введіть ім'я "Відстеження активів" в Вкладка поле (без лапок)

  2. Переконайтеся, що всі стовпці не позначені в рядку

  3. виберіть tm, gps_speed_km лише в ряду

  4. натисніть + кнопка, де знаходиться рядок






5. Карти

Карти можна запускати з MainForm з попередньою конфігурацією


5.1. Ініціалізація карти

Ініціалізація карти виконується вручну при безпосередньому виконанні за посиланням: > http: //%IP%/IoT/maps.php


  1. Користувач повинен скасувати вибір усіх полів (натисніть Скасувати вибір Кнопка)

  2. Натисніть деякий прапорець для відображених полів (наприклад, Ain5 (для рівня смогу) та tm (для дати / часу вимірювання)

  3. натисніть "V" прапорець, щоб приховати форму полів

  4. натисніть Виконати Кнопка для запуску запиту DB та відображення поточної інформації з усіх датчиків / пристроїв

  5. Карта з даними оновлюється через 30 секунд або більше.


5.2. Необов’язкові налаштування для запиту

Налаштування описані зліва направо (на скріншоті вище).

5.2.1. Змінення масштабу MAP (рівень масштабування)

  1. Рівень масштабування можна змінити за допомогою кнопок (+/-) для масштабу (поточний_масштаб * 2 або поточний_масштаб / 2 відповідно). Натискання однієї з цих кнопок автоматично змінює масштаб.

  2. Інший спосіб - вибрати рівень масштабування Збільшити Поле Combo Box і натисніть Виконати кнопку. У цьому випадку весь View / Map перезавантажується та оновлюється (триває деякий час під час ініціалізації).

5.2.2. IMEI (Виберіть поле пристрою)

IMEIполе містить унікальний ідентифікатор пристрою або унікальний псевдонім пристрою. За замовчуванням встановлено * (зірочка), що відображає найновіші значення та геолокацію для кожного пристрою.

Встановивши IMEI на будь-яке інше значення, відображатимуться історичні дані вибраного пристрою. Це має сенс лише для мобільних та рухомих датчиків, інакше результати накладатимуться на карту в тому самому положенні.


5.2.3. Лон, лат (Поля координат довготи, широти)

Встановити центральне положення карти. Це поле встановлюється в положення курсору при натисканні кнопки миші на карті.


5.2.4. Змінення стилю MAP (тема)

Можна вибрати стиль / тему карти Map Поле ComboBox (наприклад, Темний, Сірий, Топографічний).

Різні теми карт можуть мати різні максимальні рівні масштабування, тому це може забезпечити належну тему для збільшення масштабу карти.


5.2.5. Пункт WHERE

Де пункт використовується для додаткового рядка запиту {WHERE part} для MySQL / MariaDB.

Цей пункт враховується для побудови повного рядка QUERY для результату бази даних. Це може обмежувати дані, час та будь-які інші значення, обмежуючи кількість результатів. У цьому полі потрібно використовувати оригінальні назви полів таблиці (не псевдоніми). Напр.

  1. gps_speed_km> 10 // швидкість перевищує 10 км / год

  2. ain5> 3 // ain5 більше 3 (утримуючи кількість частинок 2,5 мкм - рівень смогу)

  3. gps_speed_km> 10 і ain6> 5 // швидкість перевищує 10 км / год, а ain6 перевищує 5 (утримання 10um частинок - рівень смогу)


5.2.6. Виконати (Кнопка запуску запиту)

Натискання цієї кнопки потрібно для зміни будь-яких налаштувань, параметрів (крім натискання +/- кнопки).

Карта завантажується з самого початку новими пресетами.

Карта взагалі не завантажується, коли для поточного запиту немає даних.

5.2.7. Скасувати вибір усіх (Видалити всі поля із запиту)

Після натискання цієї кнопки потрібно щонайменше одне поле вибрати вручну для відображення результатів на карті.


5.2.8. "V" Прапорець (Відкрити / Закрити форму поля)

Цей прапорець використовується, щоб показати / приховати селектор полів для відображення.


5.2.9. "Х" Прапорець (Показати / сховати форму запиту)

Цей прапорець дозволяє приховати цілу форму за винятком ( +/- кнопки)


Результати на карті постійно оновлюються та оновлюються новими значеннями

5.3. Приклад

Наприклад, результати смогу (датчик встановлений на автомобілі): частки смогу 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 км / год



6. Показати результати в таблиці

Показати результати в таблиці.

Увімкнено "Основна форма" натисніть "таблиця" пункт, вибравши деякі поля для відображення попередньо налаштованої таблиці




6.1. Ініціалізація таблиці

Коли таблиця відкрита за посиланням http: //%IP%/IoT/que.php? func = tabs це вимагає попередньої ініціалізації налаштувань.

Ви можете вибрати видимі поля (натиснувши "Видимі поля" ) прапорець.



  1. Натисніть усі необхідні прапорці для відображених полів

  2. Натисніть прапорець "Видимі поля" щоб приховати форму полів

  3. Натисніть кнопку Виконати, щоб запустити запит DB та відобразити таблицю


6.2. Необов’язкові налаштування для запиту

Налаштування описані зліва направо (на скріншоті).

6.2.1. Сортувати - поле сортування та порядок зростання / спадання

Поле сортування еквівалентно натисканню заголовка стовпця.

6.2.2. БД / IMEI - Виберіть Пристрій

IMEIполе містить унікальний ідентифікатор пристрою або унікальний псевдонім пристрою. З порожнім значенням відображається таблиця останніх значень.

Встановивши IMEI на будь-яке інше значення, відображатимуться історичні дані вибраного пристрою.


6.2.3. CSS - вибрати стиль (тема візуалізації)

6.2.4. Видимі поля - Показати / сховати форму полів

6.2.5. Видалити порожнє - Не відображати порожні стовпці

6.2.6. "Х" Прапорець (Показати / сховати форму запиту)

6.2.7. Де Стаття (для обмеження даних)

Це суфікс для додаткового рядка запиту MySQL / MariaDB {WHERE part}

Цей пункт враховується для побудови повного рядка QUERY для результату бази даних. Це може обмежувати дані, час та будь-які інші значення, обмежуючи кількість результатів. У цьому полі потрібно використовувати оригінальні назви полів таблиці (не псевдоніми). Напр.

  1. gps_speed_km> 10 // швидкість перевищує 10 км / год

  2. ain5> 3 // ain5 більше 3 (утримуючи кількість частинок 2,5 мкм - рівень смогу)

  3. gps_speed_km> 10 і ain6> 5 // швидкість перевищує 10 км / год, а ain6 перевищує 5 (утримання 10um частинок - рівень смогу)


6.2.8. Виберіть Core Кнопка (Увімкнути найпоширеніші поля)


6.2.9. Скасувати вибір усіх Кнопка (Видалити всі поля з запиту)

Після натискання цієї кнопки потрібно щонайменше одне поле вибрати вручну для відображення результатів на карті.


6.2.10. Виконати (Кнопка запуску запиту)

Натискання цієї кнопки потрібно для зміни будь-яких налаштувань, параметрів (крім натискання +/- кнопки).

Таблиця перезавантажується з самого початку новими пресетами.



6.2.11. "V" Прапорець (Відкрити / Закрити форму поля)

Цей прапорець використовується, щоб показати / приховати селектор полів для відображення.



Результати в таблиці сортуються за Сортувати налаштування поля. Порядок сортування можна змінити, натиснувши заголовок рядка (один раз для одного напрямку двічі для іншого напрямку).

Деякі результати у стовпцях посилаються на додаткові екрани візуалізації (з жорстким кодуванням).


Під час відображення історичних даних для пристрою його слід обмежити, щоб не відображати всю інформацію про історію, оскільки це може призвести до продуктивності або втрати пам'яті.


7. Гістограми.

Гістограми повинні виконуватися з Основної форми, натискаючи одне поле в рядку "Стовпчик".

Він відображає відсортовані стовпчики, нормовані до максимального значення, відображаючи від найвищого до найнижчого порядку.

Це корисно для швидкої перевірки екстремальних результатів та здійснення деяких дій.





Подія Mouse Over відображатиме додаткову інформацію про пристрій.


8. Історичні діаграми.

Історичні діаграми можна ініціювати з MainForm, натиснувши вибраний стовпець у рядку "History" (для одного поля).

Для декількох полів у рядку "Історія" потрібні поля потрібно перевірити, а в стовпці "Виконати" натиснути посилання "Історія".

Історичні результати обмежуються останніми 24 годинами + наступними 24 годинами (для можливих оновлення графіків), коли не було встановлено обмежень.

8.1. Ініціалізація історичних діаграм


Історичні діаграми при відкритті з головного посилання вимагають ініціалізації як інші результати, коли відкриваються за посиланням без параметрів налаштувань.

Для відображення різних елементів можна вибрати кілька полів. Його також можна встановити у формі фільтра поля.




  1. Натисніть усі необхідні прапорці для відображених полів

  2. Натисніть прапорець "Видимі поля" щоб приховати форму полів

  3. Натисніть кнопку Виконати, щоб запустити запит DB і відобразити таблицю


8.2. Необов’язкові налаштування історичних діаграм

Елементи, описані зверху та зліва направо (на скріншоті).

8.2.1. IMEI - (Виберіть пристрій для відображення історичних даних)

IMEIполе містить унікальний ідентифікатор пристрою або унікальний псевдонім пристрою. Значення * (зірочка) показує таблицю найновіших значень, яка не має сенсу.

Встановивши IMEI на будь-яке інше значення, відображатимуться історичні дані вибраного пристрою.

8.2.2. Хв - обмежити мінімальне значення першого поля

8.2.3. Макс - обмежити максимальне значення першого поля

8.2.4. "V" - Показати / сховати форму полів

8.2.5. Від: встановити мінімальну дату / час (*)

8.2.6. До: встановити максимальну дату / час дати (*)

8.2.7. "Х" Прапорець (Показати / сховати форму запиту)

8.2.8. "Де" Стаття

Стаття для обмеження результатів даних MySQL / MariaDB додатковий рядок запиту {WHERE part}.

Цей пункт враховується для побудови повного рядка QUERY для результату бази даних. Це може обмежувати дані, час та будь-які інші значення, обмежуючи кількість результатів. У цьому полі повинні використовуватися оригінальні назви полів таблиці (не псевдоніми) та дійсний синтаксис SQL. Напр.

  1. gps_speed_km> 10 // швидкість перевищує 10 км / год

  2. ain5> 3 // ain5 більше 3 (утримуючи кількість частинок 2,5 мкм - рівень смогу)

  3. gps_speed_km> 10 і ain6> 5 // швидкість перевищує 10 км / год, а ain6 перевищує 5 (утримання 10um частинок - рівень смогу)


8.2.9. Скасувати вибір усіх Кнопка (Видалити всі поля з запиту)

Після натискання цієї кнопки потрібно щонайменше одне поле вибрати вручну для відображення історичних результатів.


8.2.10. Виконати (Кнопка запуску запиту)

Натискання цієї кнопки потрібно для зміни будь-яких налаштувань, параметрів (крім відображення полів або панелі запитів). Таблиця перезавантажується з самого початку новими пресетами.

8.2.11. "V" Прапорець (Відкрити / Закрити форму поля)

Цей прапорець використовується, щоб показати / приховати селектор полів для відображення.


8.3. Бари Варіант: (відображає лише доступні дані)



8.4. Безперервний варіант (з однаковими даними):



Покажчик миші відображає значення вимірювань та дату / час.

9. Сумісність з веб-браузером


Функція / WWW браузер

Chrome 72

FireFox 65

Край

Опера 58

Карти

+

+

+

+

Історичний

+

+ (*)

+

+

Бари

+

+

+

+

Вкладки

+

+

+

+


* - Firefox не підтримує інструмент вибору дати / часу (текстове поле має бути відредаговане вручну, використовуючи належний формат часу та дати).

Internet Explorer не підтримується (використовувати Край замість цього)

Інші веб-браузери не тестувались.



10. Налаштування тем

Веб-сторінки базуються на загальному файлі шаблону, розміщеному за адресою "шаблони" каталог "* .template".

Крім того, кожен тип сторінки містить:

  1. Файл "* .head", який зберігає заголовок сторінки (посилання, імпортований CSS, JavaScript Файли тощо). )

  2. Файли "* .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" каталог і модифікований там. Використання окремого сценарію вимагає оновлення всіх заголовкових файлів.

11. Оновлення алгоритмів


Деякі унікальні датчики можуть вимагати спеціальних функцій обчислення.

Немає можливості оновити та підтримувати кілька варіантів @City Server Software, Інтерфейс інтерфейсу PHP, що спричинить багато проблем, версій, помилок.

Найкращий і найпростіший спосіб досягти цього - це оновлення файлів "накладання" для належного відображення значення / опису.

Оригінальні сценарії JS є відкритим текстовим файлом і можуть бути прийняті до потреб замовника. Як зазначено в попередньому розділі, їх слід скопіювати в "templates / js" каталог, де клієнт має права доступу для модифікації.


Технічний аспект програмування @City система не є предметом цього документа, однак веб-розробник, який володіє базовими знаннями HTML та JS, може налаштувати інтерфейсну веб-програму під індивідуальні потреби клієнтів.


12. Структура бази даних


База даних @City з іменем "IoT" або "* IoT" розділений на таблиці (де астерикс - префікс залежно від хостинг-сервера - якщо потрібно). Базу даних можна спостерігати у PHPAdmin (веб-програмі) за посиланням http: //% IP% / phpmyadmin




Набір таблиць для кожного пристрою (де * {asterix} - це адреса IMEI - унікальний ідентифікатор):

Інші таблиці:



12.1. Структура таблиць "ithings_" та "*"

12.2. Команда команд пристрою (події) чергу "* _c" таблиця - структура


Ця таблиця є чергою подій / команд для кожного пристрою та має таку структуру:



12.3. Доступ до результатів з баз даних - середній рівень (зчитування даних)


Дані можуть бути доступні без веб-програми Front-end. Система @City містить скрипт із функціями середнього рівня. Результати повертаються у форматі JSON.


12.3.1. Отримайте поточні статуси всіх пристроїв

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":"" }]

12.3.2. Отримайте історичні дані для пристрою

Запитувати історичні дані одного пристрою за номером 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" }]

12.3.3. Отримати список пристроїв - одне поле з поточних статусів з обмеженнями

Ця функція повертає обмежені дані з таблиці "_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" }]