0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node-REDからpython-broadlinkでRM mini3をコントロール【失敗】[on Onion Omega2+]

Posted at

python-broadlinkでRM mini3をコントロール[on Onion Omega2+]でやっとpython-broadlinkを使って赤外線リモコンをRM mini3経由で制御できるようになりました。
次は、Node-Redに接続して音声でシーリングライトをOn/Offをと頑張ってましたが、Node.jsで躓いてしまいました。(他の手段を模索中・・・)
以下、エラー現象と調査内容を記録として残しておきます。

0.前提条件

  • Node-RED version: v0.18.4
  • Node.js version: v4.3.1
  • Linux 4.4.46 mipsel LE
  • Onion Omega2+
  • Alexa-skill設定済み

1.Node-REDのフロー設定

フローを設定するにあたり、まずは、シェルコマンドを作成しました。

python-broadlink.sh
# !/bin/ash
cd /root/python-broadlink/cli
./broadlink_cli --device @ROOM.device --send @$1

第一引数で渡すのは、broadlink_cli コマンドで学習した赤外線リモコンコードファイルになります。

ファイル名 コード内容
LivingLightOn リビングライトをOnする赤外線リモコンコード
LivingLightOff リビングライトをOffする赤外線リモコンコード

上記シェルコマンドをexecノードで実行できるように以下のようなフローを作成しました。
image.png

switchノードは、以下のようにtruefalseを設定しました。

image.png

そして、execノードは、python-broadlink.shの引数を変えたものを2つ用意しました。

switch python-broadlink.shの引数 機能
true LivingLightOn リビングライトをOnする
false LivingLightOff リビングライトをOffする

image.png
image.png

以上で、「アレクサ、リビングライトをつけて」でリビングライトが点灯、「アレクサ、リビングライトを消して」で消灯されるハズです。
・・・が、エラーが発生して、Node-REDがフリーズしてしまいました。

2.エラー内容

Node-REDのログでは、以下のログが出力されていました。
どうも、シェルコマンドを実行した際に例外が発生しているようです。

29 Sep 06:56:38 - [info] [debug:a60137fd.c462a8] false
29 Sep 06:56:48 - [red] Uncaught Exception:
29 Sep 06:56:48 - TypeError: binary is not a function
    at Function.from (native)
    at Function.from (native)
    at /usr/bin/onion-node-red/node_modules/node-red/nodes/core/core/75-exec.js:135:46
    at ChildProcess.exithandler (child_process.js:220:5)
    at emitTwo (events.js:87:13)
    at ChildProcess.emit (events.js:172:7)
    at maybeClose (internal/child_process.js:821:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

3.調査

Googleでいろいろと調べてみましたが、どうもNode.jsのバージョンを新しくするしかないようです・・(たぶん?)

現在、Onion Omega2でサポートされているNode.jsのバージョンは、v4.3.1です。
自力でバージョンアップをするには、Node.jsのコードをダウンロードして、自力でクロスコンパイルするしかなさそうです(実際、トライしましたがコンパイルエラーで断念しました)。

以上、解決には至りませんでした。
現在、他の方法を模索中です。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?