Node-RED

Node-REDでDB使うならSQLiteとDB BrowserSQLiteが手軽

DALI Ethernet gatewayとNode-REDを組み合わせてDALIを使った制御システムを開発しています。

当初、DALI側のグループアドレスや個別のDAP・IAPアドレスなどの管理は、Node-REDのグローバル変数を使ってやっていましたが、器具台数が増えたり、シーンの記録をさせたりと機能を追加していくためにはデータベースを使ったほうが効率が良さそうだと考えました。

とはいっても、MySQLを使うほどでもないのでSQLiteを使えれば、いろいろ解決しそうです。

node-red-node-sqliteをインストール

Node-REDのカスタムノードで「node-red-node-sqlite」がありますので、これを入れます。

node-red-node-sqlite – npm

Node RED 2019 07 03 10 48 16

導入するには、Node-REDの「パレットの管理」から行います。

Node RED 2019 07 03 10 49 34

無事にインストールされると、左の「ストレージ」に「sqlite」というノードが追加されます。

これをつかってフローをつくってみます。

サンプルフロー

Node RED 2019 07 03 10 55 30

こちらのフローを作成しました。

Injectionノードには上から

CREATE TABLE test( id, name)

.tables

INSERT INTO test VALUES( “testname”, “testtest”)

select * from test

をtopicにいれてます。

Node RED 2019 07 03 10 56 24

sqliteノードでは、あたらしく「db_test」というDBを作成。SQL分はmsg.topicで送られるようにしました。

Node RED 2019 07 03 10 58 16

プロパティはこちらのとおり。Modeが「Read-Write-Create, Read-Write, Read」の中から選べるので、今回のDALI照明をつかった用途では、現場のDALIコンフィグレーション(アドレッシングやグループの設定)が完了したら、新たにTableを作る必要はなくなるので、「Read-Write」にすればよいでしょう。

で、先のフローの2番目に現在登録されているtableの一覧をだす” .tables”というsqlコマンドがあるのですが、これはエラーになります。

上記以外は大丈夫です。

DB Browser for SQLite

SQLiteでDBを使うには、GUIでテーブルの中身なども確認できたほうがいいので方法を探していたところ、DB Browser for SQLiteというツールがありました。(各プラットフォーム版があります)

DB Browser for SQLite

Db test 2019 07 03 11 14 32

こちらがインストールしたところ。

で、先程Node-RED上で作成したsqliteのDBファイルを開く必要があります。

それがどこにできているかというと、

Node RED 2019 07 03 11 15 46

このようにすると、

/Users/nakachon/db_test

というようになります。

なので、DB Browser for SQLiteから
File -> Open Database… で、/Users/nakachonにあるdb_testというファイルを開けば、DB Browser for SQLiteで管理できます。

まとめ

以上、Node-REDからSQLiteをつなぐ方法とDB Browser SQLiteをつかってGUIでDBを管理する方法を紹介しました。

これで、Node-REDの中でGlobalとDBの使い分けをしながら、効率的に運用できそうな気がしています。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です