Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8960

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

$
0
0

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

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

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


Viewing all articles
Browse latest Browse all 8960

Trending Articles