さて、洗濯検知も完成に近づいてきました。
OpenPLCへMODBUS経由で流し込んで、OpenPLCから結果をもらいます。
NodeRed側ではMODBUSの読み出しノードを使って、グローバル変数で受けます。
これによりNodeRed側は普通の変数としての扱いができます。
ちなみにMODBUSのBIT情報を1BIT取ってきても8BITの配列で
返ってきます。切り出し作業が必要です。はまるので注意!
ちなみにMODBUSサーバーはOpenPLCが組み込みで内蔵しており、
デーモンとして起動するので、何の苦労もありません。
NodeRedでもMODBUSサーバーを立てることができますが
どちらでも変わりません。
むしろNodeRed内の場合デプロイすると一旦値がリセットされるので
デプロイ頻度を考えると、
OpenPLC側のMODBUSサーバーのほうがメリットがありました。
下記が現在のフローです。
朝、定時にInjectionノードで起動して、洗濯があったら、WAVファイルを
スピーカーから流すという、プログラムとなっています。
この実現にはシリアル通信、MODBUS通信,OpenPLC,INFLUXDB,WAVファイル再生
という組み合わせで実現されています。ハードはTWILITE CUEが情報源となって
います。
後は、これをクラウド上のNodeRedへ送信するとスマホから状態確認ができるように
なります。自作のPWA製自宅モニタアプリに項目追加しておきます。
以下、脱線しますが、スマホで家電管理が流行りですが、
それぞれのサーバー経由で外へ出てかれるのが、いやな私はすべて手製でと考えてやってます。
Alexaだけは例外ですが(笑)
AlexaのSkilでNodeRedと連携もあるみたいですが、自分が管理できないサーバーに
アカウント作って情報を送るのが嫌ですね。 家電操作など一般リリースされている製品はクオリティーがそれは高いですが、自宅ネットワークからAPI発行しまくりなので、サーバー側から自宅LANをセンシングされても(極秘VPN貼られていたり)
通常わからないというのが怖いです。技術的には可能ですよね。
悪意あるファーム搭載の製品が突如悪意ある製品になることはあり得ます。
前にコンセントの電源を遠隔で入り切りする製品もどこかのサーバーへの登録
しないと駄目で、コンセント増やすほどアカウント管理が増えるので
便利だけど止めました。
うちのLAN見られても困らないからいいやという人もいるでしょう。
でも踏み台サーバーになる可能性もあります。
もう、なんでもできてしまう世の中、守るのは自分ですね。
ではでは。