YAMAHAのDME64NをNode-REDと繋げてみる

今回は、YAMAHAのDME64NとNode-REDを接続して、設定してあるindex Noすべてを操作できるようにしたいと思います。

DME64NのIP設定

まずは、繋げるにあたりIPアドレスの設定をしていきます。
こちらは設定しなくてもいいと思いますが、接続の際にわかりやすいのと念のために設定します。
デバイスのUTILITYを長押しすると画面が切り替わります。

ここで、もう一度UTILITYを押すとページが切り替わりますので、Netに行きIPアドレスを変更します。

また、Node-REDとの接続のためポートを見ておきます。

PCとDME64Nを接続

まずはDME64Nのツールを開き、設定するファイルを開きます。

ここで、USB接続とWi-Fiありどちらも簡単のため、お好みで選んでください。
接続としては、on-lineをクリックすると下記の画面が出ます。ここがNo Assignになっているため、Wi-Fiの場合は自分で設定した名前(今回はUNIT1)、USBの場合はYamaha DME64Nを選択してください。
画像ではTxとRxで選択が違いますが、実際は同じものを選択してください。

こちらの設定が終わると、そのまま下記の画面が出ます。

初めは、左のIPアドレスが空欄のこともあるので、その場合は初めに設定したIPアドレスと同じものを選択してもう一度Go on-lineを押してください。
こちらでOKを押すとデバイスにデータを書き込みをしつつ接続されます。

Node-REDとの接続

Node-REDとはTCPで接続していきます。ここで初めに確認したポートを使います。
まず、TCP requestノードを追加し設定したIPアドレスとポートを入れます。

MuteのON/OFFの設定を入れて、接続されているか確認します。
下記のコードをTCPに繋げて実行してください。

[
    {
        "id": "fn_add_lf2",
        "type": "function",
        "z": "tab_dme_tcp2",
        "name": "Ensure LF (\\n)",
        "func": "let p = msg.payload;\nif (typeof p !== 'string') p = String(p);\n// DME command requires LF (0x0A) at end.:contentReference[oaicite:1]{index=1}\nif (!p.endsWith('\\n')) p += '\\n';\nmsg.payload = p;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 460,
        "y": 200,
        "wires": [
            [
                "tcp_req2",
                "e87b15236110dcbc"
            ]
        ]
    },
    {
        "id": "inj_mute_off2",
        "type": "inject",
        "z": "tab_dme_tcp2",
        "name": "Mute OFF (SMUT 0 OFF)",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "SMUT 0 OFF",
        "payloadType": "str",
        "x": 240,
        "y": 270,
        "wires": [
            [
                "fn_add_lf2"
            ]
        ]
    },
    {
        "id": "inj_mute_on2",
        "type": "inject",
        "z": "tab_dme_tcp2",
        "name": "Mute ON (SMUT 0 ON)",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "SMUT 0 ON",
        "payloadType": "str",
        "x": 230,
        "y": 220,
        "wires": [
            [
                "fn_add_lf2"
            ]
        ]
    }
]

これでエラーが出ず実行されていれば成功です。
あとは操作したいものをコマンドごとに入れていきます。コマンドはかきのURLを確認ください。

https://jp.yamaha.com/files/download/other_assets/3/322573/dme_remote_ctrl_prtcl3102_ja.pdf