やること
ETS側でやること
Interra社製 KNX-DALIゲートウェイでシーンを作成します。
今回は3シーン作成しました。
KNX-DALIゲートウェイのSCENEのGroupObjectをシーンのGroupAddressにリンクさせます。 そのままだと、Data Typeは18.001 Scene controlという1byteのデータになります。 このETSプロジェクトをesfという拡張子のファイルにエクスポートします。
bOS Configuratorでやること
bOS Configuratorでは外部システムからのEndPointとなるAPI/RPCから、EnableをTureにしてUsernameとPasswrodを設定します。(RPC/RPCで設定)
DevicesのKNXについて基本的な設定をおこないます。 次に、先程ETSからエクスポートしたesfファイルをインポートします。
ETSで設定したSCENEというグループアドレスが読み込まれます。 このとき、Data Type(bOSではValue Type)は5.000 Undefinedになります。
Valuesのタブをクリック、右のValueの値を変更すると、ETSで設定したシーンが呼び出されます。 ただし、KNX側のシーンは1はじまりですが、bOSのValueは0が対応します。
Node-REDからhttp requestでbOSのシーンを呼び出す
フローはこのようになります。
[{id:650ad3df.79ae6c,type:debug,z:8e2b64bd.097558,name:\,active:true,tosidebar:true,console:false,tostatus:false,complete:false,x:570,y:460,wires:[]},{id:3ba80829.bf2648,type:http request,z:8e2b64bd.097558,name:KNX-Server,method:POST,ret:txt,paytoqs:true,url:http://RPC:RPC@192.168.1.100/API/RPC/SetValue,tls:\,persist:false,proxy:\,authType:\,x:470,y:360,wires:[[650ad3df.79ae6c\]]},{id:53cab58d.910b1c,type:inject,z:8e2b64bd.097558,name:\,topic:\,payload:1,payloadType:num,repeat:\,crontab:\,once:false,onceDelay:0.1,x:230,y:280,wires:[[c8f9de6a.7e176\]]},{id:c8f9de6a.7e176,type:template,z:8e2b64bd.097558,name:SCENE,field:payload,fieldType:msg,format:handlebars,syntax:mustache,template:{\\objectName\\:\\Devices\\\\\\\\KNX\\\\\\\\SCENE\\,\\valueName\\:\\Value\\,\\value\\:\\{{payload}}\\}\\n,output:str,x:430,y:280,wires:[[3ba80829.bf2648\]]},{id:1c86d30e.52457d,type:inject,z:8e2b64bd.097558,name:\,topic:\,payload:2,payloadType:num,repeat:\,crontab:\,once:false,onceDelay:0.1,x:230,y:320,wires:[[c8f9de6a.7e176\]]},{id:c5fdb2e1.0c8b7,type:inject,z:8e2b64bd.097558,name:\,topic:\,payload:�,payloadType:num,repeat:\,crontab:\,once:false,onceDelay:0.1,x:230,y:240,wires:[[c8f9de6a.7e176\]]}]
フロー解説。 最初のInjectノードはシーン番号を数値でおくります。
次のTemplateノードにはこのように記述します。
{objectName:Devices\\\\KNX\\\\SCENE,valueName:Value,value:{{payload}}}
Devices¥KNX¥SCENEはbOS configuratorのdevicesの記述になります。
http requestノードの記述です。
http://RPC:RPC@192.168.1.100/API/RPC/SetValue
bOS ConfiguratorでAPI/RPCのところで設定したUsernameとPWを記載します。
まとめ
以上で外部システム(Node-RED)からbOSサーバーのAPIを叩いてKNX-DALIゲートウェイのシーンを呼び出す方法を紹介しました。