Chainシリーズ ESPHomeコンポーネント

Chainシリーズは、Chain Busを介してボタン、ロータリー操作、ジョイスティック、角度、距離などの入力機能を提供します。

1. コンポーネント概要

項目 情報
シリーズ Chainシリーズ
拡張モジュール Chain Key (U206)、Chain Angle (U208)、Chain Encoder (U207)、Chain Joystick (U205)、Chain ToF (U209)
主な機能 ボタン、ロータリー操作、ジョイスティック、角度、距離の入力
通信インターフェース Chain Bus / UART
ESPHomeコンポーネント m5stack_chain_*(外部コンポーネント)
ESPHomeバージョン要件 /

2. コンポーネントの説明

外部コンポーネントの導入

Masterはシステムのマスターコントローラです。拡張センサーを接続する際は、接続方向とIDの順序を正しく設定してください。

方向の選択

拡張センサーを接続するMaster 側に応じて、対応するuart_idを選択します。

  • Masterの左側に接続する場合: chain_uart_left
  • Masterの右側に接続する場合: chain_uart_right

IDの割り当て規則

chain_idは、Masterから見た拡張センサーの位置を示します。

  • Masterに最も近いモジュールから番号を付けます。
  • Masterから遠くなる順にIDを増やします(ID:1 → ID:2 → ID:3 …)。
  • 左側と右側はそれぞれ独立して番号を付けます。
  • 上図で正しい順序を確認してください。

設定例

  • uart_id: chain_uart_left
  • chain_id: 1

Chain DualKey

Chain DualKeyコントローラのUART、ボタン、電源、ライティングの設定については、Chain DualKey ESPHome統合を参照してください。本ページでは、Chain Busに接続する拡張モジュールのみを扱います。

Chain Key

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5stack_chain_key]
    refresh: 0s

binary_sensor:
  - platform: m5stack_chain_key
    id: chain_key_1
    name: "Chain Key Button"
    uart_id: chain_uart_left
    chain_id: 1
    update_interval: 50ms

output:
  - platform: m5stack_chain_key
    id: chain_key_rgb_r
    chain_key_id: chain_key_1
    channel: rgb_red

  - platform: m5stack_chain_key
    id: chain_key_rgb_g
    chain_key_id: chain_key_1
    channel: rgb_green

  - platform: m5stack_chain_key
    id: chain_key_rgb_b
    chain_key_id: chain_key_1
    channel: rgb_blue

light:
  - platform: rgb
    name: "Key RGB"
    red: chain_key_rgb_r
    green: chain_key_rgb_g
    blue: chain_key_rgb_b

Chain Angle

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5stack_chain_angle]
    refresh: 0s

sensor:
  - platform: m5stack_chain_angle
    id: chain_angle_1
    name: "Chain Angle"
    uart_id: chain_uart_left
    chain_id: 1
    update_interval: 200ms

output:
  - platform: m5stack_chain_angle
    id: chain_angle_rgb_r
    chain_angle_id: chain_angle_1
    channel: rgb_red

  - platform: m5stack_chain_angle
    id: chain_angle_rgb_g
    chain_angle_id: chain_angle_1
    channel: rgb_green

  - platform: m5stack_chain_angle
    id: chain_angle_rgb_b
    chain_angle_id: chain_angle_1
    channel: rgb_blue

light:
  - platform: rgb
    name: "Angle RGB"
    red: chain_angle_rgb_r
    green: chain_angle_rgb_g
    blue: chain_angle_rgb_b

Chain Encoder

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5stack_chain_encoder]
    refresh: 0s

sensor:
  - platform: m5stack_chain_encoder
    id: chain_encoder_1
    name: "Chain Encoder"
    uart_id: chain_uart_left
    chain_id: 1
    update_interval: 100ms

output:
  - platform: m5stack_chain_encoder
    id: chain_encoder_rgb_r
    chain_encoder_id: chain_encoder_1
    channel: rgb_red

  - platform: m5stack_chain_encoder
    id: chain_encoder_rgb_g
    chain_encoder_id: chain_encoder_1
    channel: rgb_green

  - platform: m5stack_chain_encoder
    id: chain_encoder_rgb_b
    chain_encoder_id: chain_encoder_1
    channel: rgb_blue

light:
  - platform: rgb
    name: "Encoder RGB"
    red: chain_encoder_rgb_r
    green: chain_encoder_rgb_g
    blue: chain_encoder_rgb_b

binary_sensor:
  - platform: m5stack_chain_encoder
    name: "Encoder Button"
    chain_encoder_id: chain_encoder_1

Chain Joystick

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5stack_chain_joystick]
    refresh: 0s

sensor:
  - platform: m5stack_chain_joystick
    id: chain_joystick_x
    name: "Chain Joystick X"
    uart_id: chain_uart_left
    chain_id: 1
    axis: x
    update_interval: 50ms

  - platform: m5stack_chain_joystick
    name: "Chain Joystick Y"
    uart_id: chain_uart_left
    chain_id: 1
    axis: y
    update_interval: 50ms

output:
  - platform: m5stack_chain_joystick
    id: chain_joystick_rgb_r
    chain_joystick_id: chain_joystick_x
    channel: rgb_red

  - platform: m5stack_chain_joystick
    id: chain_joystick_rgb_g
    chain_joystick_id: chain_joystick_x
    channel: rgb_green

  - platform: m5stack_chain_joystick
    id: chain_joystick_rgb_b
    chain_joystick_id: chain_joystick_x
    channel: rgb_blue

light:
  - platform: rgb
    name: "Joystick RGB"
    red: chain_joystick_rgb_r
    green: chain_joystick_rgb_g
    blue: chain_joystick_rgb_b

binary_sensor:
  - platform: m5stack_chain_joystick
    name: "Joystick Button"
    chain_joystick_id: chain_joystick_x

Chain ToF

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5stack_chain_tof]
    refresh: 0s

sensor:
  - platform: m5stack_chain_tof
    id: chain_tof_1
    name: "Chain ToF"
    uart_id: chain_uart_left
    chain_id: 1
    update_interval: 200ms

output:
  - platform: m5stack_chain_tof
    id: chain_tof_rgb_r
    m5stack_chain_tof_id: chain_tof_1
    channel: rgb_red

  - platform: m5stack_chain_tof
    id: chain_tof_rgb_g
    m5stack_chain_tof_id: chain_tof_1
    channel: rgb_green

  - platform: m5stack_chain_tof
    id: chain_tof_rgb_b
    m5stack_chain_tof_id: chain_tof_1
    channel: rgb_blue

light:
  - platform: rgb
    name: "ToF RGB"
    red: chain_tof_rgb_r
    green: chain_tof_rgb_g
    blue: chain_tof_rgb_b

組み合わせ例

複数のChain 拡張モジュールを1 本のUARTバスで共有できます。各モジュールのchain_idはMasterから遠くなる順に割り当て、左右のバスはそれぞれ独立して番号を付けます。MasterのUARTピン、Chain Busの電源、内蔵機能は、使用するコントローラのデバイスページで設定してください。

完全な設定例ではChain DualKeyをMasterとして使用し、5 種類のChain 拡張モジュールを組み合わせています。

3. 使用例

Chain 拡張モジュールを接続すると、デバイスページに対応するSensor、Binary Sensor、Lightエンティティが表示されます。

4. 関連リンク

Page Tools
PDF
On This Page