SWX2200とルーターとの設定同期処理完了をブザーで通知する

本設定例では、ルーターのL2MSマスター機能・Luaスクリプト機能と、L2スイッチのL2MSスレーブ機能を使用しています。L2MSを使って、ルーターから、スイッチが持つ機能の設定を行います。

ルーターの対応機種は、RTX1210RTX1200(Rev.10.01.16以降)、RTX810NVR700WNVR510NVR500FWX120です。

L2スイッチの対応機種は、SWX2200-8GSWX2200-24GSWX2200-8PoEです。

L2MSマスター(ルーター)とL2MSスレーブ(L2スイッチ)の対応リビジョンは、 技術資料「L2MS」でご確認ください。

図 SWX2200とルーターとの設定同期処理完了をブザーで通知する (1) 図 矢印 図 SWX2200とルーターとの設定同期処理完了をブザーで通知する (2)

SWX2200とルーターとの設定同期処理が完了したことをブザーで通知するLuaスクリプトです。
ルーターとSWX2200をLANケーブルで接続すると、ルーターに格納されていた設定をSWX2200に流し込みます。これが完了したとき(設定同期処理完了時)に、ルーターのブザーを鳴らして知らせます。
同期処理完了はログにも表示しますが、音に出すことでそのタイミングを設置作業現場で簡単に把握できます。SWX2200はLANケーブルを差すだけの簡易設置作業を実現できますのでPCも不要になるケースも多く、そうした場合の設定完了確認に便利です。

Luaスクリプトを実行する際は、luaコマンドを使用しLuaスクリプトファイル名を指定してください。

実行例:lua /swx2200_sync_bz.lua

対応機種のうち、設定例を掲載している機種は、以下のとおりです。

機種 掲載内容 備考
ルーター RTX1210 RTX1200 RTX810 NVR500 FWX120 コマンド設定例
Luaスクリプト例
L2MSマスター機能、
Luaスクリプト機能
L2スイッチ SWX2200-8G SWX2200-24G SWX2200-8PoE L2MSスレーブ機能

ルーターの設定例

LANインターフェースの設定
(LAN1ポートを使用)

ip lan1 address 192.168.100.1/24

DHCPの設定

dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24

L2MSの設定

switch control use lan1 on
switch select lan1:1
 switch control function set port-use 5 off  # 注釈1
 switch control function set port-use 6 off  # 注釈1

Luaスクリプト例

設定値

-- SWX2200を認識してから同期処理開始までの待ち時間
wait1 = 3

-- 同期処理完了までの待ち時間
wait2 = 60

-- ログ表示
log_level = "info"
log_pfx = "[LUA_SWX_SYNC_BZ] SWX "

-- 関連ログ/コマンド文字列
ptn1 = "find switch"
ptn2 = "(Sync processing)"
ptn3 = "sync done"
cmd1 = "console character ascii"
cmd2 = "show status switch control"

メインルーチン

local rtn, str
local success
local bz, err
while true do
  success = false

  -- SWX2200認識ログを待ち受け --
  rt.syslogwatch(ptn1)
  rt.sleep(wait1)

  -- 状態を確認 --
  rt.command(cmd1)
  rtn, str = rt.command(cmd2)
  if rtn and str then
    rtn = string.match(str, ptn2)
    if rtn then
      -- 同期処理中の場合 --
      rt.syslog(log_level, log_pfx .. "Sync waiting...")
      rtn, str = rt.syslogwatch(ptn3, 1, wait2)
      if rtn and str then
        -- 同期完了検知 --
        success = true
      end
    else
      success = true
    end
  else
    rt.syslog(log_level, log_pfx .. "Command Failure.")
  end

  -- ブザーによる通知 --
  bz, err = rt.hw.open("buzzer1")
  if success then
    -- 認識(同期処理)正常 --
    rt.syslog(log_level, log_pfx .. "Discovery completed.")
    bz:tone("B2")
    rt.sleep(1)
    bz:tone("B4")
    rt.sleep(1)
    rt.syslog(log_level, log_pfx .. "*****OK BUZZER*****")
  else
    -- エラー発生 --
    rt.syslog(log_level, log_pfx .. "Discovery FAILED!")
    bz:tone("B4")
    rt.sleep(1)
    bz:tone("B3")
    rt.sleep(1)
    bz:tone("B2")
    rt.sleep(1)
    rt.syslog(log_level, log_pfx .. "*****NG BUZZER*****")
  end
  bz:off()
  bz:close()
end

[注釈の説明]

注釈1:
SWX2200の設定の一例として、ポート5, 6を遮断しています。

【ご注意】
本設定例は、設定の参考例を示したもので、動作を保証するものではございません。
ご利用いただく際には、十分に評価・検証を実施してください。