トップ 最新

ただのにっき

2015-01-08(木) [長年日記]

パトライトをコントロールするgemを書いた

職場の隣のグループがネットワーク接続型のパトライト(たぶんこれ)を買ってもらっていいなーと思ったのでRubyからいじれるライブラリを書いた(もちろんgemも)。なお、Webサイトを探しまわったけど取扱説明書のダウンロードリンクが見つからなかったものの*1、ググったらすぐみつかった(PDF)のでこれを使っている。

こんな感じで使える(赤色ランプを点灯して10秒後に消す):

require 'net/pns'
Net::PNS.new(ADDRESS_OF_PATLITE, 10000) do |patlite|
   patlite.light({red: :on})
   sleep(10)
   patlite.clear
end

「最新型らしいし、いまどきはRESTful Web APIくらいあるんだろ」と思ったらぜんぜんそんなことなくて、SNMPはまぁこの手の製品の本来の用途なので当然として、あとはTCP/UDPソケットを使った独自プロトコルと、rsh(!?)の口しかないの*2。しかもセキュリティないし。そういうもんなのかね。とりあえず一番高機能そうなPNSコマンドというプロトコルを実装した。

しかしまぁ、ネットワークの先に操作可能な「モノ」があるのは楽しいな。IoTのエンジニアリング的な愉しみはやっぱこれに尽きるだろう(という意味でもうちょっとセキュアになって欲しいものだけど)。

Tags: ruby iot

*1 認証(?)先のページにあるっぽいけど。

*2 Debianでrshコマンドを打ったら存在したものの実体はsshコマンドのsymlinkで、実際はrsh-clientパッケージをインストールしないと動かなかった。