專案

一般

配置概況

動作

後端功能 #11091

進行中

Omni IoT Server

由 Sam Wang 於 3 個月 前加入. 於 約 7 小時 前更新.

狀態:
新建立
優先權:
正常速度
被分派者:
開始日期:
2026/03/10
完成日期:
完成百分比:

50%

預估工時:
(總計: 0:00 小時)
使用工時:
141:00 小時 (總計: 154:30 小時)

概述

🌐 Omni IoT Server 系統簡介

Omni IoT Server 是一款為系統整合商與智慧應用開發者打造的 通訊整合型 IoT 平台。
它提供 MQTT Broker 與 RESTful API 雙通道架構,讓開發者與設備能以最簡單的方式交換資料,而不必深入了解各種通訊協議(如 Modbus、OPC UA、CoAP、BLE、TCP Socket 等)。

Omni Connect IoT Server
「Omni」意指「全方位」,「Connect」代表「連結、整合」。
名稱寓意:讓不同設備、不同通訊協議,都能透過一個統一平台「全方位連結」。

系統架構

🚀 核心特點

1️⃣ 雙通道架構:MQTT + API

MQTT 通訊:支援設備即時上報感測資料與狀態回傳。
API 通訊:提供標準化的 RESTful 介面,系統整合商可透過 API 快速串接資料、控制設備。

2️⃣ 協議屏蔽與統一格式

不論設備底層使用何種通訊協議,資料進入 Omni 後皆轉為統一的 JSON 結構。

整合商無需理解設備協議細節(例如 Modbus 位址、RS485 封包),即可直接透過標準 API 或 MQTT Topic 取得資料。

3️⃣ 高擴充性與彈性部署

支援 Docker / 雲端 / 本地部署。

可根據專案規模動態擴充節點與設備數量。

4️⃣ 安全與授權

MQTT over TLS、API Token 驗證。

支援 JWT 授權機制。

5️⃣ 開發者友善

提供 Swagger / OpenAPI 文件。


🧩 典型應用場景

應用領域 範例說明
智慧工廠 整合 PLC、生產機台感測資料,統一上報至雲端監控系統
智慧建築 整合空調、照明、能源管理系統,提供 API 給管理平台
環境監測 集中收集各廠區感測器(PM2.5、溫濕度、水質)數據
智慧城市 整合交通號誌、路燈控制系統,實現資料可視化與遠端控制


子任務 2 (2 進行中0 已結束)

後端功能 #11528: 場景管理 (Scenes)新建立Sam Wang2026/03/10

動作
後端功能 #11535: 連動管理(SMART)新建立Sam Wang2026/03/12

動作

由 Sam Wang 於 3 個月 前更新

  • 被分派者 設定為 Sam Wang

由 Sam Wang 於 3 個月 前更新

  • 追蹤標籤Bugs 變更為 後端功能

由 Sam Wang 於 3 個月 前更新

電表 (E1401 - E1405)

點數共計 915 點(183 * 5)

MDC-711 (收集電表設置)

No 收集器位址
MDC-711
電表位址
(SMD250-8)
1 1~344 1~344
2 345 505(頻率)

單一設備如下

裝置型號: E1401
說明: 8迴路多功能集合式電表點位配置整理
單一設備點數: 共計 183點

1. 系統全域參數 (System Global)

點數: 共計 7 點

參數代碼 (Key) 參數名稱 單位 換算公式 (Scale) 備註
01_Vol_A A相電壓 V Value / 10
01_Vol_B B相電壓 V Value / 10
01_Vol_C C相電壓 V Value / 10
01_Vol_AB AB線電壓 V Value / 10
01_Vol_BC BC線電壓 V Value / 10
01_Vol_CA CA線電壓 V Value / 10
07_Freq 頻率 Hz Value / 10

2. 迴路分相數值 (Per-Channel Phase Data)

說明

  • x 代表迴路編號:1 ~ 8 (例如 Ch1, Ch2...Ch8)
  • y 代表相別:A, B, C

點數: 共計 120 點

參數代碼格式 參數名稱 單位 換算公式 (Scale) 小數位
02_Chx_Amp_y 各相電流 (Amp) A Value / 1000 1
03_Chx_Watt_y 各相功率 (Watt) kW Value / 1000 1
04_Chx_kWh_y 各相有效電度 (kWh) kWh Value / 100 2
05_Chx_kVarh_y 各相虛功電度 (kVarh) kVArh Value / 100 2
06_Chx_PF_y 各相功率因數 (PF) PF Value / 1000 1

注意: 電度類 (kWh, kVarh) 的除數為 100,其餘瞬時數值多為 1000


3. 迴路總和與平均 (Per-Channel Totals & Averages)

說明

  • x 代表迴路編號:1 ~ 8

點數: 共計 56 點

參數代碼格式 參數名稱 單位 換算公式 (Scale) 小數位
07_Chx_Amp_Avg 平均電流 A Value / 1000 1
07_Chx_Watt_Tot 功率總和 (Total Watt) kW Value / 1000 1
07_Chx_kVar_Tot 虛功總和 (Total Var) kVAr Value / 1000 1
07_Chx_kVA_Tot 視在功率 (Total VA) kVA Value / 1000 1
07_Chx_PF_Avg 平均功率因數 PF Value / 1000 1
07_Chx_kWh_Tot 有效電度總和 (Total kWh) kWh Value / 100 1
07_Chx_kVarh_Tot 虛功電度總和 (Total kVarh) kVArh Value / 100 1

由 Sam Wang 於 3 個月 前更新

空氣品質偵測器 (MODBUS ID: 6)

點數共計 6 點

MDC-711 (收集電表設置)

No 收集器位址
MDC-711
空氣品質偵測器
(MIC 98990)
1 1~7 1~7

裝置名稱: 空氣品質偵測器
ID: 6
說明: 環境感測數值配置表

監測點位列表 (Sensor Data Points)

參數代碼 (Key) 參數名稱 單位 換算公式 (Scale) 小數位 備註
01_Temp 溫度 Value / 10 1
01_RH 濕度 % Value / 10 1
01_CO2 CO2 二氧化碳 ppm Value / 10 1
01_PM10 PM10 懸浮微粒 μg/m³ Value / 10 1
01_HCHO 甲醛 ppm Value / 100 1 注意換算比例不同
01_PM2.5 PM2.5 細懸浮微粒 μg/m³ Value / 10 1

💡 開發提示

  1. 甲醛 (HCHO) 的數值換算除數為 100 (例如讀值 15 代表 0.15 ppm),其餘參數皆為除以 10
  2. 單位符號: PM2.5 與 PM10 的單位為 μg/m³ (微克/立方公尺)。

由 Sam Wang 於 3 個月 前更新

門禁 (Soyal 701Server)

點數共計 104 點(8 * 13)

使用兩個連線,分別為14F、15F 連接 701Server。
輪循設置如下,屆時觀察調整:

  • 14F設備輪循: 200ms
  • 15F設備輪循: 300ms

對應表

No 設備名稱 MODBUS ID Omni Module ID
1 門禁_14F-001 1 MODBUS 7
2 門禁_14F-002 2 MODBUS 7
3 門禁_14F-003 3 MODBUS 7
4 門禁_14F-004 4 MODBUS 7
5 門禁_14F-005 5 MODBUS 7
6 門禁_14F-006 6 MODBUS 7
7 門禁_14F-007 7 MODBUS 7
8 門禁_14F-008 8 MODBUS 7
9 門禁_15F-001 9 MODBUS 8
10 門禁_15F-002 10 MODBUS 8
11 門禁_15F-003 11 MODBUS 8
12 門禁_15F-004 12 MODBUS 8
13 門禁_15F-005 13 MODBUS 8

每台控制器功能

以下依據文件,實際功能是否支援待確認。

ModbusAddress 功能 備註
256 門磁狀態 (R/W) Door Sensor Open:1Close:0
257 警戒狀態 (R/W) Arm Status
258 開門按鈕狀態 Egress Close:1Open:0
259 強迫開門警報狀態 Alarm Status(Force / Open tool long)
260 開門逾時開門警報狀態 Door Open too long
261 強迫開門觸發警報狀態 Force Open Alarm
262 求援輸出警報狀態 Duress Alarm
271 On Line / Off Line

由 Sam Wang 於 3 個月 前更新

二線燈控(WRT2645K)

  • 通訊模組: WRT-2645K-8
  • 14F: 18 迴
  • 15F: 17 迴
    點數共計 35 點(18 + 17)

支援控制二線燈控,類別如下:
屆時明確告知各迴路【FULL-2WAY Address】

項目 FULL-2WAY Address Omni系統定義 範圍 狀態
Light 00-1
63-4
Point_00-1
Point_63-4
1~256 (R/W)
0:OFF
1:ON
Group 1~127 Group_1
Group_127
1~127 (R/W)
0:OFF
1:ON

由 Sam Wang 於 3 個月 前更新

由 Sam Wang 於 2 個月 前更新

  • 預估工時 設定為 5:00 小時
  • 使用者帳號與MQTT Broker 帳號關聯:新增刪除與異動

由 Sam Wang 於 約 2 個月 前更新

前端採用Websocket連線方式

由 Sam Wang 於 約 2 個月 前更新

全熱交換器 (MODBUS ID: 9)

  • 通訊模組: FY-RS15ZDP1W (RS-485模組)
  • Protocol: Modbus RTU
  • 通訊速率: 9600,n,8,1
項目 功能 Modbus Address Omni系統定義 範圍 狀態
1 運轉狀態 1 01_1 0,1 (R/W)
0:OFF
1:ON
2 運轉模式 2 01_2 0,1 (R/W)
0:全熱換氣
1:普通換氣
3 風量 3 01_3 0,3 (R/W)
0:弱
3:強
4 過濾器剩餘時間 13 01_13 0~4320h
5 過濾器更換週期 14 01_14 1:120日
2:150日
3:180日
6 異常狀態 15 01_15 0: 無異常
1: EA馬達異常
2: SA馬達異常
14:液晶控制器操作異常
16:本體迴路異常
17:主子機間通信異常
18:本體迴路異常(子機)
19:EA馬達異常(子機)
20:SA馬達異常(子機)

由 Sam Wang 於 約 2 個月 前更新

資料庫作業計畫 [暫]

DeviceList 資產管理 (設備相關資料表)

日誌

三層式架構:

  • Layer 1 (StateLog):
    DeviceLog 記錄即時狀態變更。
    寫入:僅在值變化時寫入(Change Mode
    保留:估 30 天
  • Layer 2 (Minute):
    DeviceMinuteSummary 每分鐘統計數據。
    保留:12 個月
    彙總:背景 Job 每分鐘從 StateLog 計算
  • Layer 3 (Hourly):
    DeviceHourlySummary 每小時統計數據。
    保留:≥ 3 年
    彙總:背景 Job 每天從 1-Min Summary 計算

背景作業

DataAggregationService 背景工作,負責將原始日誌彙總為分鐘/小時數據。

DataRetentionService 背景工作,定期清理過期資料。

由 Sam Wang 於 約 1 個月 前更新

  • 預估工時 已刪除 (5:00 小時)

功能點位紀錄

點位記錄採取兩種方式:

固定頻率紀錄: data_type = 0
狀態異動: data_type = 1

固定頻率設置參考

config.json
{
  "modbus":{
        "1":{
            "id": 1,
            "recordInterval":5   // 單位:分 , 若為狀態異動,此參數不設置
        }
   }
}
modbus_xx.csv
保留 DATA_TYPE,INTERVAL 不設置
預設 DATA_TYPE = 0
INTERVAL 會使用 "recordInterval" 的設置。
# csv 格式
'Name,ListID,FunId,modbus_addr,Type(0~2:R、W、R/W),unit,range[],setrange[],tag[],bypass,desc,DATA_TYPE,INTERVAL(秒)

注意

若有設置 "recordInterval",但該設備下有功能點位需要採取異動紀錄,則務必要設置 DATA_TYPE = 1

由 Sam Wang 於 18 天 前更新

  • 子任務 #11528 已新增

由 Sam Wang 於 15 天 前更新

  • 子任務 #11535 已新增

由 Sam Wang 於 約 7 小時 前更新

1. 優化首頁顯示與 CI/CD 流程

2. config 欄位採陣列化重構

將 system.get_config MQTT 回應與 GET /api/Config REST API 的 config 欄位
由 JSON Object 改為 JSON Array (各類設備物件)

動作

匯出至 Atom PDF