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のエンジニアリング的な愉しみはやっぱこれに尽きるだろう(という意味でもうちょっとセキュアになって欲しいものだけど)。