M5Stack Unit 8 Angle
m5stack_8angle 平台允许您在 ESPHome 中使用 m5angle 输入设备。
它有 8 个旋钮、一个开关,并可单独驱动 9 个 RGB LED。

m5stack_8angle 组件通过 I²C 总线通信,默认地址为 0x43。
# Example configuration entrym5stack_8angle: id: m5stack_8angle_base- id (可选,ID): 手动指定用于代码生成的 ID。
- i2c_id (可选,ID): 如果您需要,可手动指定 I²C 组件 的 ID。
- address (可选,int): 手动指定设备的 I²C 地址。默认为
0x43。
旋钮位置传感器
Section titled “旋钮位置传感器”8 个旋钮的位置可以作为传感器使用,值在 0-1 之间(0 为最左位置)。
sensor: - platform: m5stack_8angle m5stack_8angle_id: m5stack_8angle_base channel: 1 name: "Knob 1" bit_depth: 12 bit - platform: m5stack_8angle m5stack_8angle_id: m5stack_8angle_base channel: 2 name: "Knob 2"- update_interval (可选,Time): 检查传感器的间隔。默认为
10s。 - bit_depth (可选,取
12 bit或8 bit)确定模拟读数的精度,默认为8bit。 - raw (可选,boolean) 如果为 true,传感器返回旋钮的原始读数。
- 来自 Sensor 的其他所有选项。
输入开关二值传感器
Section titled “输入开关二值传感器”指示设备上开关状态的二值传感器。
binary_sensor: - platform: m5stack_8angle m5stack_8angle_id: m5stack_8angle_base name: "Switch"- update_interval (可选,Time): 检查传感器的间隔。默认为
10s。 - 来自 Binary Sensor 的其他所有选项。
9 个 LED 可作为可寻址灯光输出。
light: - platform: m5stack_8angle m5stack_8angle_id: m5stack_8angle_base id: m8_angle_leds name: "Lights" effects: - addressable_rainbow:- 来自 Light 的所有选项。
在 Lambda 中读取旋钮位置和开关状态
Section titled “在 Lambda 中读取旋钮位置和开关状态”您可以通过 float value = id(...)->read_knob_pos(index); 触发单个旋钮位置的读数,通过 int value = id(...)->read_switch(); 读取开关状态。
返回负值表示读取状态失败。
# Example configuration entry for having the LEDs indicate the knobs' positionlight: - platform: m5stack_8angle m5stack_8angle_id: m5stack_8angle_base id: m8_angle_leds name: "Lights" effects: - addressable_lambda: name: "Indicate Values" update_interval: 200ms lambda: |- ESPHSVColor hsv; hsv.value = 255; hsv.saturation = 240; auto parent = id(m5stack_8angle_base); for (int i=0; i < 8; i++) { auto kpos = parent->read_knob_pos(i); if (kpos >= 0){ hsv.hue = kpos * 200; it[i] = hsv; } } if (parent->read_switch() > 0) hsv.hue = 200; else hsv.hue = 0; it[8] = hsv;