5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HomeAssistantでNature Remoを使うリンクとメモ

Last updated at Posted at 2021-07-25

概要

HomeAssistantにはNature Remoの公式インテグレーションは2021年7月現在存在しないようなので、どうにかするためのリンクとメモ。

APIキーの取得・登録

ここからログインするとAPIキーを取得できる。

データの取得

上記を参考にsecrets.yamlにAPIキーを設定し、configuration.yamlにコピペするのが手っ取り早い。
人感センサは正直使い道が微妙でいらないと思うので省く。
温度センサしかないRemo miniの場合は後述のインテグレーションで温度の取得ができるので、この設定自体いらないかも。

secrets.yaml
nature_remo_api_token: Bearer {APIキー}
configuration.yaml
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に以下のような設定を追加して先程のコマンドを実行できるようにする。

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キーを設定する。

configuration.yaml
nature_remo:
  access_token: {APIキー}

上記のインテグレーションを基にON/OFFのリモコン操作にも対応したインテグレーションを作っている方もいるプルリクが出ているのでいずれマージされそう(2021年8月現在はまだマージされていない)

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?