🍋

Nature Remo のローカルAPIまとめ 【pyhton】

に公開

nature remoのローカルAPIの使い方についてのメモ

目的

家電類を操作する赤外線を送受信するデバイスであるnature remoをpython越しに操作したい!

可能ならLAN内で完結させたい!

手順

RemoのWiFi接続設定

スマホアプリから行う

ローカルAPIサーバのIPを検索

remoのローカルAPIサーバは _remo._tcp らしいので、下記コマンドでIPアドレスを検索

avahi-browse -al

mDNSが元気なら、pingで検索

ping _remo._tcp.local

もしくはアプリの設定画面からmacアドレスを探し、arpテーブルから探すのもアリ(未検証)

APIサーバとの疎通確認

curlコマンドで確認

ヘッダーとして”X-Requested-With: local”を忘れずに

curl http://$IP_ADRESS/messages -H "X-Requested-With: local" 

赤外線信号値の送受信

先ほどのコマンドはRemoが直前に認識した赤外線信号の値を返すコマンドとなっている

したがって、Remoに向かって物理リモコンから信号を送信したのち、下記コマンドを実行することで信号値をファイルに保存できる

curl http://$IP_ADRESS/messages -H "X-Requested-With: local" > @hoge.txt

このファイルを用いて赤外線信号を送信させるコマンドは↓

curl http://$IP_ADRESS/messages -H "X-Requested-With: local" -d @hoge.txt

本題:pythonでの書き方

import requests
import json

path = "./hoge.txt"
with open(path) as f:
    data = f.read()
    json_data = json.loads(data)

url = "http://<IP_ADRESS>/messages"

headers = {
    "X-Requested-With" : "local"
}

response = requests.post(url, headers=headers, json=json_data)

今後の予定

Pub/Subなプロトコルに当てはめて、discodeやラズパイからの命令を受けて同一の動作をするようにさせたい

Discussion