当サイトにはアフィリエイト広告が含まれます。
なおレビューは私の感想を書いており、結論を指示するご依頼はお断りしています。(Noステマ宣言)

【おすすめメタクエスト解説】

クーポン使ってお得にレンタル! (記事:【クーポン情報あり】メタクエスト3のレンタル3社を比較!購入前にVRやMRを試してみよう)
メタクエスト ジャンル別おすすめ 無料ゲーム・アプリ (記事:【Meta Quest】おすすめ無料ゲーム・アプリ30選!無料でこれだけ遊べる!)
【スマホVRもOK】
VRゴーグルで3Dブルーレイを観よう!
(記事:【2024年】3DブルーレイをVRゴーグルで見る方法【メタクエスト・スマホVRもOK】)

【Node-Red】sRemoローカルモードでもAlexaから操作できるようした話

2026年3月22日

sRemoローカルモードでもAlexaを声で操作しよう!
(記事:【Node-Red】sRemoローカルモードでもAlexaから操作できるようした話)
Writter: むねりょ
小学生時代に「RPGツクールアトバンス』でプログラミング?に入門。その後、パソコンでのプログラミングに手を出すが、やる気になれす挫折。「制限がある中で工夫して目標を達成すること」が楽しかったと気付く。

しばらくプログラミングから難れるが、仕事の中で工クセルマクロを作成したり、ラズバイを触ったりしたことで、今度は「プログラミングで作業を自動化する楽しさ」に目覚める。

以後、【日常の一手間をプログラミングで便利にする】をテーマに、趣味プログラミングでいろいろ作って楽しんでます。

2026年3月15日にsRemoスマートリモコンsRemoがサービス終了し、Alexa(スマートスピーカー)との連携ができなくなった。

しかし今回「sRemoのローカルモード」と「Node-Red」を組み合わせて、再びAlexaからの操作に成功したので、その方法をざっくりと解説する。

むねりょ
むねりょ

この記事ではAlexaを操作していますが、フローを少し変更すればGoogleホームなどでも使えると思う(多分)

なお私はプログラマーではない。この記事には参考に私が使用しているスクリプトを載せているが、素人作成のものなので大目に見てほしい。コピペで使ってもいいし、コピペからアレンジして使っても構わない。

なおNode-Redについては、以下の過去記事内で簡単に説明している。

あわせて読みたい!

VR関連 セール・割引情報 (終了日が近い順)

必要なもの

  • ローカルモードで動作するsRemoシリーズ
    → 「sRemo-R3」 or バージョン503以降の「sRemo-R1」「sRemo-R2」
  • Node-Redが動くデバイス
    → 私はラズパイ3Bを使用、パソコンや古いスマホでもOK
    → Alexaから操作するにはNode-Redが動いている必要があるので、可能なら24時間稼働しているデバイスが好ましい
むねりょ
むねりょ

Node-Redも使えるQNAP(NAS)がオススメです!

必要なNode-Redのスキル

  • node-red-contrib-alexa-home-skill
    → AlexaとNode-Redを連携させるスキル
    → 使用には「Alexa Home Skill Bridge」への登録と、Alexaスキル「Node-RED」が必要

最終的な動作イメージ

  1. Alexaにキーワードを話しかけてAlexaアプリで設定した「定型アクション」を起動
  2. 定型アクションの動作にて「Alexa Home Skill Bridge」で作成した「仮想照明デバイス」の明るさ(%)を指定
  3. Node-Redが「仮想照明デバイス」の明るさ(数値)を受信、数値に従いsRemoを操作するAPIが書かれたスクリプトを実行

動作させる準備

以下の6つの準備でAlexaから赤外線信号を送信できるようにする。

  1. 1.sRemoをローカルモードで使えるようにする
  2. ローカルモードAPIを使った「照明操作スクリプト」を用意する
  3. Alexa Home Slill Bridgeで仮想照明デバイスを作成する
  4. Alexaスキル「Node-RED」と「Alexa Home Skill Bridge」を連携する
  5. スマホのAlexaアプリで起点となる「定型アクション」を作る
  6. Node-Redで数値ごとの分岐フローを作成する

sRemoをローカルモードで使えるようにする

ローカルモードで動作させる方法は公式の解説を参照。(初期設定① / 初期設定②

※公式サイトは安全が確認できないとブラウザから警告が出るので、WayBackMachineでリンクしてます

リモコンの各番号に赤外線信号も登録し、問題なく動作することも確認しておく。(リモコン設定

私のsRemoリモコンの登録例

ローカルモードAPIを使った「照明操作スクリプト」を用意する

ローカルAPIの使い方は公式の解説を参照。(ローカルモードAPI

ざっくり使い方説明すると、「ログイン処理した後、3秒以内に動作させたいコマンドAPIを実行するだけ

私がローカルモードAPI用で使っているスクリプトは以下。
「login.py」と「send_button_signal.py」を同じフォルダに置いて、「send_button_signal.py」実行すれば、sRemoリモコンに対応した番号の信号が送信される。

【login.py】(IP、Port、ID、PWは自分環境に合わせて変更する)

#!/usr/bin/env python3
import requests
SREMO_IP = "192.168.xxx.xxx"   
PORT = 777
LOCAL_ID = "1234"
PASSWORD = "1234"

def login():
    url = f"http://{SREMO_IP}:{PORT}/d"
    params = {"l": LOCAL_ID, "p": PASSWORD}
    r = requests.get(url, params=params, timeout=3)
    r.raise_for_status()
    return r.text.strip()

【send_button_signal.py】(引数で送信したいリモコン番号を入力)

#!/usr/bin/env python3
import sys
import requests
import time
from login import login, SREMO_IP, PORT

BUTTON_NO = sys.argv[1]

def send_button():
    url = f"http://{SREMO_IP}:{PORT}/xs"
    params = {"z": "z", "n": BUTTON_NO}
    r = requests.get(url, params=params, timeout=3)
    r.raise_for_status()
    return r.text.strip()

def main():
    # 1. Login
    res = login()
    if res != "OK":
        return

    time.sleep(0.2)
    res2 = send_button()
    print("button result:", res2)

if __name__ == "__main__":
    main()

ひとまずAPI使って、リモコン信号が送信できることが確認できればOK。
「send_button_signal.py」に実行権限を付与しておく

プログラム分からない / 動かせない場合

上記のスクリプトが全く分からない、あるいはNode-Redを動かすデバイス上でプログラムスクリプトが動かせない場合は、「http request」ノードを使用して、直接ローカルAPIを送信しよう。

「http request」を使った場合の例
(「タイムスタンプ」(=inject)はテスト動作用なので以降は不要)

「http request」でリモコン信号が送信できることが確認できれば、この先出てくる「exce」ノードを接続するところに「ログイン処理」「delay 300ms」「リモコン制御」の3つを接続すればOK。

Alexa Home Slill Bridgeで仮想照明デバイスを作成する

Alexa Home Skill Bridge」に作成したアカウントでログインし、以下の設定で仮想の照明デバイスを作成する。

  • Name: スクリプト分岐用 ※自分で分かれば何でもいい
  • Description: 対応したスクリプトを実行 ※自分で分かれば何でもいい
  • Action: 「%」にチェック
  • Action Type: 「Light」にチェック
仮想照明デバイスの設定

Alexaスキル「Node-RED」と「Alexa Home Skill Bridge」を連携する

Alexaスキルを追加し、先ほど作成した仮想デバイスを検出、Node-Redで使えるようにしておく。連携できたら、Node-Redで簡単なフローを作って動作確認しておく。

動作確認方法

  1. Node-Redで「alexa-home」→「debug」を接続
  2. スマホのAlexaアプリのデバイスで「スクリプト分岐用」を選択し、適当な明るさパーセントを送信
  3. Node-Redのデバック欄に送信した明るさパーセントの数値が表示されることを確認
2.スマホアプリから仮想照明デバイスを操作
3.Node-Redのデバッグで送信した数値(明るさ)の受信を確認

スマホのAlexaアプリで起点となる「定型アクション」を作る

以下の設定を参考に作成。

定型アクションの設定

  • 実行条件:アレクサ、明かりつけて ※自由に設定する
  • アクション: スクリプト分岐用 - 明るさを設定 1%  ※別の値でもOK
    → ほかに続けてAlexaで実行させたいアクションがあれば好きに追加してもOK

Node-Redで数値ごとの分岐フローを作成する

Node-Redで以下の通りフローを接続する。

Node-Red

  1. Node-Redで「alexa-home」→「switch」を接続
  2. switchのプロパティにさっき定型アクションで指定した「明るさ(%)」の数値を設定
  3. Node-Redで「switch」→「exec」を接続
  4. execのプロパティで「python3 send_button_signal.py」を指定、追加引数の「msg.payload」のチェックを外し、下の欄にsRemoのリモコン番号を入力
ここでの最終的なフローの形
「switch」のプロパティ
「exec」のプロパティ

ここまで設定できたら、「定型アクション」で設定したキーワード(アレクサ、明かりつけて)をAlexaに伝えて、sRemoから信号が送信されれば完成。

今回のフロー作成における最大の注意点として、「明るさの数値」と「sRemoのリモコン番号」を混同しないよう注意。

明るさの数値 → Alexa定型アクションと「switch」の分岐に使用
sRemoのリモコン番号 → 「exec」で引数に指定

「明るさの数値」は定型アクションとswitch分岐で一致させる必要があるが、「sRemoのリモコン番号」と「明るさの数値」は異なっても問題ない。

Alexaの操作をさらに追加したいとき

新しく操作したいリモコン番号をを追加したいときは、以下の通り追加する。

追加手順

  1. 明るさ「x%」を送信する定型アクションを【Alexaアプリ】で作成
  2. 【Node-Red】の「switch」のプロパティに定型アクションから送られてくる「x%(数値)」の分岐を追加
  3. 【Node-Red】で「switch」の先に実行したい処理・スクリプトを追加
点灯・消灯など追加したあと

Node-Redを通して操作するメリット

今回のフローでは定型アクションに設定したキーワードを起点に、Node-Redの分岐を自由に作成・実行できる。

そのためローカルモードでもスマートモードとおおよそ変わらないことができるし、何ならより便利に使える。

ローカルモードでも家の外から操作する

sRemo自体はローカルモードでインターネットに繋がっていないが、Alexaアプリの「定型アクション」を通して家の外からでも操作ができる。

Node-Redでメール送信のフローを作成しておけば、部屋の温度や湿度なども家の外から確認できる。

より複雑な分岐を作成する

例えば「Switch」の先に直接「send_button_signal.py(exec)」を接続するのではなく、「現在時刻を判定する処理」を接続し、朝ならリモコン番号「4番」を送信・夜なら「5番」を送信といった分岐もできる。

これなら「明かりつけて」の一言で「時間帯によって違う電気」を点けられる。

時間判定追加で同じキーワードでも別の動作に

Alexaに対応してないものと連携できる

Node-Red自体がローコードのプログラミングツールなので、使い方次第では何でも連携できる。

今は使えなくなってしまったが、私は以前、Amazonの買い物リストを利用して、AlexaからChatGPTに質問できるようにしたこともある。

あわせて読みたい!

ご支援募集のおしらせ

「オレンタメ!」は節約生活をしながら管理人ひとりで運営しております。
もし当サイトやYouTube𝕏(旧Twitter)で役に立った情報がありましたら、ご支援いただけますと嬉しく思います。
500円で1日長く活動することができます。

節約っぷりが分かるAmazon欲しいものリストを公開しています。
どうぞ『オレンタメ!』をよろしくお願いいたします。

オレンタメ!を支援する

IT/Web業界への転職はGreen。プラグラマから営業職まで。
自分に合う "テクノロジーに関わる仕事" を探そう。

パソコン不要!実用性抜群のメタクエスト専用のR18同人VRゲーム。
VRで女の子の部屋で楽しんでもいいし、MRで自分の部屋で楽しむこともできる!
※メタクエストにインストールする方法はコチラの動画を参照。


Fatal error: Uncaught Error: Call to undefined function wp_parse_auth_cookie() in /home/c6554963/public_html/orentame.com/wp-includes/user.php:3599 Stack trace: #0 /home/c6554963/public_html/orentame.com/wp-content/plugins/microsoft-clarity/clarity-server-analytics.php(58): wp_get_session_token() #1 /home/c6554963/public_html/orentame.com/wp-content/plugins/microsoft-clarity/clarity-server-analytics.php(35): clarity_construct_collect_event() #2 /home/c6554963/public_html/orentame.com/wp-includes/class-wp-hook.php(324): clarity_collect_event() #3 /home/c6554963/public_html/orentame.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #4 /home/c6554963/public_html/orentame.com/wp-includes/plugin.php(517): WP_Hook->do_action() #5 /home/c6554963/public_html/orentame.com/wp-includes/load.php(1304): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /home/c6554963/public_html/orentame.com/wp-includes/user.php on line 3599