KNXサーバーbOSのAPIをつかって外部からKNX-DALIゲートウェイのシーンを呼び出す方法

やること

ETS側でやること

Interra社製 KNX-DALIゲートウェイでシーンを作成します。

UntitledImage今回は3シーン作成しました。

UntitledImage

KNX-DALIゲートウェイのSCENEのGroupObjectをシーンのGroupAddressにリンクさせます。 そのままだと、Data Typeは18.001 Scene controlという1byteのデータになります。 このETSプロジェクトをesfという拡張子のファイルにエクスポートします。

bOS Configuratorでやること

UntitledImage

bOS Configuratorでは外部システムからのEndPointとなるAPI/RPCから、EnableをTureにしてUsernameとPasswrodを設定します。(RPC/RPCで設定)

UntitledImage

DevicesのKNXについて基本的な設定をおこないます。 次に、先程ETSからエクスポートしたesfファイルをインポートします。

UntitledImage

ETSで設定したSCENEというグループアドレスが読み込まれます。 このとき、Data Type(bOSではValue Type)は5.000 Undefinedになります。

UntitledImage

Valuesのタブをクリック、右のValueの値を変更すると、ETSで設定したシーンが呼び出されます。 ただし、KNX側のシーンは1はじまりですが、bOSのValueは0が対応します。

Node-REDからhttp requestでbOSのシーンを呼び出す

UntitledImage

フローはこのようになります。

 [{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}}} 

UntitledImage

Devices¥KNX¥SCENEはbOS configuratorのdevicesの記述になります。

UntitledImage

http requestノードの記述です。

 http://RPC:RPC@192.168.1.100/API/RPC/SetValue 

bOS ConfiguratorでAPI/RPCのところで設定したUsernameとPWを記載します。

まとめ

以上で外部システム(Node-RED)からbOSサーバーのAPIを叩いてKNX-DALIゲートウェイのシーンを呼び出す方法を紹介しました。

コメントを残す

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