enocean製品について
enoceanの製品は基本的にバッテリーを必要とせずスイッチを押した動きや光、熱を動力源としている。通信は無線規格であるためケーブル等も必要とせず、バッテリーの交換も不要。またセンサとアクチュエータは相互に直接通信することができる。
どんなことをするのか
enocean製品から出る無線通信をキャッチしてRaspberry PiのNode-RED上で表示する。本来であればセンサとアクチュエータが直接やり取りしてしまうためその信号を覗くためには処理が必要になる。
今回使用するもの
・Raspberry Pi
・enoceanスイッチ


・enoceanレシーバー:https://www.switch-science.com/products/1845

・PC
それぞれの役割

スイッチは際限なく信号を飛ばしている。Raspberry Piは直接その信号を受信することはできないが、レシーバーをかませることでNode-REDで見ることができるようになる。
事前準備
Raspberry PiにNode-REDをインストールしておく必要がある。またPCで接続してNode-REDが扱える環境にしておく。
記事:https://blog.smartlight.co.jp/?p=1492#Node-RED
Raspberry PiのUSBポートにレシーバーを挿してセットアップ完了。
設定
Raspberry PiからNode-REDを起動してPCの画面で見れるようにする。

右上の設定から「パレットの管理」を選択。使えるノードを増やしたりすることができる。そのままではenoceanのノードを使うことができないため追加する必要がある。

今回使用したUSBドングルのデータをNode-REDで活用するためにはNode-REDがシリアル信号を受け取ることができるポート(ノード)を用意してあげる必要がある。
ノードを追加を選択、検索画面で「serial」と入力。
「node-red-node-serialport」を選び「ノードを追加」をクリック。
※画面では既に追加した後であるため「ノードを追加」ではなく「追加しました」と表示されている。

「serial ~」と書かれたシリアル信号をやり取りするための用意ができた。
今回は「serial in」を使う。シリアル信号のインプットをNode-RED側で行うという意味になる。
今回はenoceanスイッチの値をNode-REDに表示することを目的とするため配線は下図のようにする。

しかしこのままではどのシリアル信号を使うのか設定が一切できていない。Node-REDでは勝手に使用する機器が割り当てられることはなく、自分でどの機器に対して操作を行うのか指定してあげなければならない。
私自身はここでの設定を理解しておらず長時間惑わされることになってしまった。
「serial」と書かれているノードをダブルクリックするとserial in ノードを編集という画面が立ち上がる。
一見すると既にポートにセットされているように見えるがこれが罠である。まだ自分では何も設定していないため「新しく」何を使用するのか指定してあげる。プルダウンから「新規にserial-portを追加」を選択する。

そしたらその右の鉛筆マークをクリック。


さらにプロパティ画面が立ち上がる。ここでenocean通信で受け取ったシリアル信号をどう処理するのかを取り決める。後で変更することも可能。
とりあえずシリアルポートは何を使用するのか決めなくてはいけないので検索マークをクリックすると使用できるポートの一覧が表示される。
下のttyAMA0はもとからあったものであるため今回新規に追加したものではない。大抵の場合「ttyUSB~」となっているようだ。新しく出てきているttyUSB0を選び右上の追加ボタンを押す。

詳細な設定は後述することとする。
とりあえずポートの設定が終わったところで「完了」を押して戻ってくるとserialの部分の名前が変わっていることが確認できる。

デプロイすると下図のように「接続済」という文言が追加で見えるようになる。これが見えていないと接続が成功していない。

右側のデバッグ画面に目をやるとエラーらしきものをはいている。
私はここにうまくいかない原因があると考えここを解決しようと奔走していたわけだが、どうやら今回に限って言えばあまり関係ないようであるため無視してよい。


スイッチをカチカチやるとenocean信号がスイッチから発せられてRaspberry Piに接続したレシーバーでそれをキャッチした値がNode-REDで見ることができるようになった。
文字化けする場合
もし値が文字化けしてしまっている場合はプロパティの設定で修正することが可能。

赤枠で囲った部分を表示されている内容に変更。再びデプロイして試してみる。