跳转到内容

M5Stack Unit 8 Angle

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

m5stack_8angle 单元。

m5stack_8angle 组件通过 I²C 总线通信,默认地址为 0x43。

# Example configuration entry
m5stack_8angle:
id: m5stack_8angle_base
  • id (可选,ID): 手动指定用于代码生成的 ID。
  • i2c_id (可选,ID): 如果您需要,可手动指定 I²C 组件 的 ID。
  • address (可选,int): 手动指定设备的 I²C 地址。默认为 0x43。

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 的其他所有选项。

指示设备上开关状态的二值传感器。

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' position
light:
- 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;