LoginSignup
3
0

More than 3 years have passed since last update.

続・実録 Node-REDノード作成 24時

Last updated at Posted at 2019-12-14

こんにちは、ポキオです。

IoTLT Advent Calendar 2019enebular Advent Calendar 2019の15日目の記事です。
手抜きです、ごめんなさい。

ポキオ Node-RED ノード作成

tl;dr

  • 京急ノードを作ってみました
  • Node-REDのノードライブラリに反映されるまで時間がかかることがあります
  • 一度公開したあとも、ノードのメンテは必須です
  • Node-RED、だぁいすき!

話の発端:Node-RED向けの京急ノードを作りたかった

この記事をご覧の諸兄姉にとっては釈迦に説法かもしれませんが、Node-REDはグラフィカルなUIで、ノンコーディングでもプログラミングができてしまう、素晴らしいツールでございます。

Node-REDで部品として動くパーツであるノードは色々準備されていたり、ノードライブラリでも種々のノードが公開されていて、Node-REDの可能性を無限に広げてくれています。

ただし、なかなか日本向けのノードがないのに玉に瑕で、だからこそ自分でノードを作って公開しようというモチベーションが湧いてきたわけです。とりわけ、私は京急が大好きなので、京急にまつわるノードを作ろうと思い立ったわけです。

で、作ったのがこれです。

node-red-contrib-keikyu
https://flows.nodered.org/node/node-red-contrib-keikyu

image.png

京急の運行情報が取得できる、すばらしいノードに仕上がっています(笑)

問題①:なかなか公開できない!

詳しい経緯はこちらで公開していますが、公開作業をしている段階で一つの問題にぶち当たりました。

image.png

ノードがノードライブラリで公開されるまで、やることは色々あるわけですが、とりあえずコーディングやnpmjs.comでの公開までは順調に進んだわけです。

image.png

ただ、npmjs.comでnpmモジュールとしてノードを公開したあと、なかなかノードライブラリに反映されないという問題に陥りました。通常は数時間で反映されるわけなのですが、そのときは全く反映されませんでした。

よくある原因としては、

  • package.jsonのkeywordsに「node-red」がない
  • プレフィックス「node-red-contrib-」を用いて命名されてない
  • README.mdがない
  • LICENSEがない
  • npmで公開されてない
  • npm versionしたあとにgit pushし忘れてる

などなどありますが、それはすべてOK。結局、npmjs.comから一度ノードを削除して、再度公開しました・・・。削除後は24時間経たないと再公開できないという制限がありましたが、なんとか再公開後にノードライブラリに反映されました・・・。もし同じようなことで困っている方がいらっしゃいましたら、お試しくださいませ。

問題②:京急ノードが動かなくなった!

公開して、一安心してたんですが、ある日突然ノードが使えなくなっていました。

image.png

結論から言ってしまえば、京急の運行情報ページのレイアウトが更新されていて、いままで使っていたパースのロジックがワークしなくなり、運行情報の取得ができなくなっていました・・・。

image.png

もともとパースのロジックは、かなりのクソコードだったので致し方ないとおもいつつ、とりあえずコードを修正して、再度公開しました。

image.png

また、二度と同じようなことがないように、自分が作ったノードが正しく動作しているか、enebular上でCIのように定期的に動かし、ノードの状態を監視する仕組みを作りました。

image.png

こんな感じでステータスが表示されます。これで完璧ですね!(笑)

現在平常通り運転しています。

というわけで、今年もいろいろとお世話になりました。
来年もポキオと京急を何卒よろしくおねがいします!

宣伝

ポキオとドライブをしながらIoTとかTechな話をする、ポキオ・カープール

image.png

ぜひご覧ください!
一緒にドライブしながら喋ってくれる方も大募集中です!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0