未分類

使用RESTful API修改定時設定的步驟

當系統內存在有任何定時項設定時,設定檔內的系統指令會有下列類似的段落出現:

!
timer 0
weekday 0x7f
start time 09:10:30
start target RELAY:0
start action OFF
end time 10:00:00
end target RELAY:1
end action OFF
!

其中的各項指令解釋如下:

timer 0
一般模組內支援最多10個定時項,編號為0~9。若是要編輯其中一項的內容,必須使用timer [0~9]這個指令進入到timer 指令模式內。一旦進入某一特定timer項指令模式內,除非使用”!”指令離開,否則後續任何所下的指令皆只會影響該特定項次的內容。

weekday 0x7f
用來變更本項次內星期的作用範圍,0x7f 為一個16進位表示法,換成二進位時表示為: 0111 1111 。其中bit 0代表星期日,bit 1代表星期一,bit 2代表星期二,其餘以此類推。數值為1時代表有作用,數值為零時代表沒作用。下這個指令的時候,必須使用16進位0x 這個前置詞的表示方法來進行。

start time 09:10:30
開始作用的時間,時間格式為24小時制。分別代表時,分,秒。

start target RELAY:0
開始作用的標的物,一般為第0個繼電器(標示為RELAY:0,預設),當標的物為預設的RELAY:0時,這個指定可以不用下。更多可能的選項請參考EMOS操作手冊。

start action OFF
開始作用時的動作,一般有ON(打開),和OFF(關閉)。更多可能的選項請參考EMOS操作手冊。

end time 10:00:00
end target RELAY:1
end action OFF
結束作用的時間,標的物,動作等設定項,作用類同上面所述。

!
用來離開sub mode(指令子模式)。這裡用來離開timer指令子模式。

瞭解了上述指令內涵後,我們接著來探討如何使用RESTful API來完成上面同樣的工作。

RESTful API 基本格式:
http://[模組IP]/[auth token]/cmd/[要執行的指令;指令間空格請以’/’符號取代]

其中我們只要把要執行的指令原本其中的”空格”用”/”符號取代就可以了。

以下假設:
模組IP: 192.168.1.1
autk token: 123456

則原本的timer指令可以依序由以下RESTful 指令取代:

http://192.168.1.1/123456/cmd/timer/0
http://192.168.1.1/123456/cmd/start/time/09:10:30
http://192.168.1.1/123456/cmd/start/action/OFF
…(略)…
http://192.168.1.1/123456/cmd/!

似乎依照個順序對模組發出指令就可以了,但是執行以後似乎還是失敗了? 所以以下我們要再多加一些東西。

[特權模式]
由於權限分級的關係,修改重要指令前必須先進入特權模式。還未進入特權模式前,通常只能下達”讀取”(read)類的指令。例如: show version..之類。若是想要下達”寫入”(write)類的指令,必須使用”enable”這個指令先進入特權模式。

在console 裡面進入特權模式的過程如下:

UM-R301_c2>
UM-R301_c2> enable
Username: admin
Password: uninus@99
UM-R301_c2#

所以一樣,將上述指令換成RESTful 格式:
http://192.168.1.1/123456/cmd/enable
http://192.168.1.1/123456/cmd/admin
http://192.168.1.1/123456/cmd/uninus@99

結合所有過程,最後變成下面這段RESTful 指令:
http://192.168.1.1/123456/cmd/enable
http://192.168.1.1/123456/cmd/admin
http://192.168.1.1/123456/cmd/uninus@99
http://192.168.1.1/123456/cmd/timer/0
http://192.168.1.1/123456/cmd/start/time/09:10:30
http://192.168.1.1/123456/cmd/start/action/OFF
http://192.168.1.1/123456/cmd/!
http://192.168.1.1/123456/cmd/write

最後不要忘了補上一個”write”指令把設定儲存。一切便完成了!

相關文章

Leave a Comment