記念すべき1日目の記事です。弊社のメインプロダクトはAkerunというスマートロックですが、その開発や工場での生産の過程で様々なIoTツールを開発しています。ネットワークに接続するツールを開発することで、開発生産性を高めたり工場での作業フローを改善して、品質と原価削減を行っています。Calendarではその一部を発表させていただきました。kazuph.hateblo.jpakerun.hateblo.jpakerun.hateblo.jpakerun.hateblo.jpakerun.hateblo.jpあれから1年ちょこちょこ自分がつくったツールを晒してみます。詳しくは、別記事で掘るかも。け取り役などパートごとに開発者が違うので、わざわざ動作を確認してもらうのが億劫なときがあります。いうときに、Slackとかで見れると便利だろうということでつくりました。今回は情報の発信元のログ(MQTTのPublish)をSlackに流し、中継役(ゲートウェイ)、受け取り役(スマートロック本体)の開発者がそれを見ます。使用gemは以下(あ、rubyが前提になってる)。sinatrasqlite3mqttslack-ruby-clientソースコードのイメージは以下のような感じです。endend開発用にPOSTも付けるといいかなと思いましたが、社内向け管理画面に"Chamber"という名前のカッコいいツールがあるので、そっちと統合してもいいかなと思い一旦最低限までやってペンディング中。Sinatraの部分は一旦僕がニヤニヤするためだけに、今後も開発を続けてもいいかなという感じです。[auto-wifi-setting-changer]APの管理画面から自動でWi-Fi設定を更新する君Wi-Fiの周波数・チャネルが切り替わるものが増えてきているので、それを連続で試験するためにつくりました。APの管理画面はWebベースなことが多いので、スクレイピングすればほぼなんでもできます。使用gemcapybaraselenium-webdriverchromedriver-helperpryスクレイピングしたいと思う度にcapybaraは未だ顕在だし、調べれば調べるほどに簡単な書き方が出てきて本当に素晴らしいですね(無駄なsleepを徹底的に解除できる)。最近はChromeDriverも安定していて、開発中はpryで止めてChromeのインスペクターでDOMを確認しながら、pryのconsoleにclick_onとか打ち込みながらどんどんつくれるので、一瞬でつくれていいです。ソースコードのイメージは以下みたいな感じ。endendこれの派生で、サクッとAkerunのユーザー向け管理画面からユーザー追加や鍵発行をして、ハード側にその情報がちゃんと伝搬するかなどのテストとかも行っております。API本体についに組み込みました。工場で動くツール(shellでperlでワンライナー)でバイナリ置換を行っていたのですが、Rails(Ruby)側で置換して単にダウンロードすればいいんじゃね?IoTっぽいしということで、クラウド側に置換処理を持っていきました。置換のくだりは、冒頭に紹介したリンク先の記事をご覧ください。置換部分のソースコードはこんだけ。BINARY形式で読み込むと普通にsubで置換できる。shellでperlでワンライナーしていたのはなんだったのか。endまとめ僕がこの1年でつくったツールの一部を紹介してみました。気分が乗ったら深掘りや別のツールの紹介をしたいと思います。Doxygenのすすめこんばんは。