概要
HomeAssistantにはNature Remoの公式インテグレーションは2021年7月現在存在しないようなので、どうにかするためのリンクとメモ。
APIキーの取得・登録
ここからログインするとAPIキーを取得できる。
データの取得
上記を参考にsecrets.yamlにAPIキーを設定し、configuration.yamlにコピペするのが手っ取り早い。
人感センサは正直使い道が微妙でいらないと思うので省く。
温度センサしかないRemo miniの場合は後述のインテグレーションで温度の取得ができるので、この設定自体いらないかも。
nature_remo_api_token: Bearer {APIキー}
sensor:
- platform: command_line
name: CPU Temperature
command: "cat /sys/class/thermal/thermal_zone0/temp"
# If errors occur, make sure configuration file is encoded as UTF-8
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
- platform: rest
scan_interval: 300
resource: https://api.nature.global/1/devices
name: remo_sensors
headers:
authorization: !secret nature_remo_api_token
value_template: "OK"
json_attributes_path: "$[0].newest_events"
json_attributes:
- hu
- il
- mo
- te
- platform: template
sensors:
remo_temperature:
value_template: '{{ states.sensor.remo_sensors.attributes["te"]["val"] }}'
unit_of_measurement: "°C"
device_class: temperature
remo_humidity:
value_template: '{{ states.sensor.remo_sensors.attributes["hu"]["val"] }}'
unit_of_measurement: "%"
device_class: humidity
remo_illuminance:
value_template: '{{ states.sensor.remo_sensors.attributes["il"]["val"] }}'
device_class: illuminance
blank:
value_template: '1'
リモコンの操作
ON・OFF程度なら、curlコマンドでAPIを叩くのが手っ取り早い。
curl -X GET "https://api.nature.global/1/appliances" -H "authorization: Bearer {APIキー}" | jq
で一覧を取得。
"id": "***************************",
"device": {
"name": "Remo",
"id": "*********************************",
"created_at": "2021-01-14T08:48:16Z",
"updated_at": "2021-07-24T22:46:21Z",
"mac_address": "**:**:**:**:**:**",
"bt_mac_address": "**:**:**:**:**:**",
"serial_number": "*****************",
"firmware_version": "Remo/1.4.17",
"temperature_offset": 0,
"humidity_offset": 0
},
"model": null,
"type": "IR",
"nickname": "照明", #<= Remoに登録した機器名
"image": "ico_other",
"settings": null,
"aircon": null,
"signals": [
{
"id": "****ccb5-f281-****-a5e4-17180d40****", # <= ボタンのID
"name": "オン", # <= ボタンの名前
"image": "ico_on"
},
{
"id": "f44f****-f7d8-45fb-****-eca****2a4f",
"name": "オフ",
"image": "ico_off"
}
]
},
以上のようなJSON(一部*で伏せてあります)が取得できる。各ボタンごとにIDが割り振られているので、
curl -X POST "https://api.nature.global/1/signals/{送信したいボタンのID}/send" -H "authorization: Bearer {APIキー}"
のコマンドを実行すればRemoから信号を送ることができる。
あとはHome Assistantのconfiguration.yamlに以下のような設定を追加して先程のコマンドを実行できるようにする。
shell_command:
lighton: 'curl -X POST "https://api.nature.global/1/signals/****ccb5-f281-****-a5e4-17180d40****/send" -H "authorization: Bearer {APIキー}"'
lightoff: 'curl -X POST "https://api.nature.global/1/signals/f44f****-f7d8-45fb-****-eca****2a4f/send" -H "authorization: Bearer {APIキー}"'
input_boolean:
roomlight:
name: Room Light
switch:
platform: template
switches:
room_light:
value_template: >
{{ is_state('input_boolean.roomlight', 'on') }}
turn_on:
- service: input_boolean.turn_on
entity_id: input_boolean.roomlight
- service: shell_command.lighton
turn_off:
- service: input_boolean.turn_off
entity_id: input_boolean.roomlight
- service: shell_command.lightoff
エアコンの操作
エアコンに関しては有志の方がインテグレーションを作っているので、これをインストールする。
ただし、公式ではない関係上Home AssistantのWebページからインストールすることは(多分)できないので、手動でインストールする必要がある。
インストール方法は、GitHubページの[Code]ボタン→[Download Zip]からダウンロードして解凍するまたはgitコマンドでファイルを取得し、
Home Assistant内のcustom_componentsディレクトリ内にコピーし、configuration.yamlに以下のようにAPIキーを設定する。
nature_remo:
access_token: {APIキー}
上記のインテグレーションを基にON/OFFのリモコン操作にも対応したインテグレーションを作っている方もいる。プルリクが出ているのでいずれマージされそう(2021年8月現在はまだマージされていない)