Nextion 文本传感器组件
nextion 文本传感器平台支持文本字符串。它可以是 Nextion 显示器中的组件或变量。
最好在 Nextion Editor 中将组件的 vscope 设置为 global。这样无论页面是否显示,组件都会可用。
请参阅 Nextion 设置显示器
# 示例配置条目display: - platform: nextion id: nextion1 # ...
text_sensor:- platform: nextion nextion_id: nextion1 name: text0 id: text0 update_interval: 4s component_name: text0- nextion_id (可选, ID): Nextion 显示器的 ID。
- component_name (可选, string): Nextion 组件的名称。
- update_interval (可选, 时间): 更新传感器的间隔。如果使用 Nextion 自定义文本传感器协议,则不应使用此选项
- background_color (可选, 颜色): 背景颜色
- foreground_color (可选, 颜色): 前景颜色
- font_id (可选, int): 组件的字体 ID
- visible (可选, boolean): 是否可见
- 所有其他选项来自文本传感器。
只能设置 component_name 或 variable_name 其中之一
有关更多信息,请参阅更新机制
Nextion 在页面切换时不会保留数据。此外,如果切换页面且该页面上不存在 component_name,则不会更新任何内容。为了解决这个问题,可以将 Nextion 组件的 vscope 更改为 global。如果设置了此项,则 component_name 应以页面名称为前缀(page0/page1 或您更改后的名称)。
示例: component_name: page0.text0
text_sensor.nextion.publish 动作
Section titled “text_sensor.nextion.publish 动作”您还可以从 YAML 文件的其他位置向 Nextion 文本传感器发布状态,
使用 text_sensor.nextion.publish 动作。
# 示例配置条目text_sensor: - platform: nextion id: nextion_text ...# 在某个触发器中on_...: - text_sensor.nextion.publish: id: nextion_text state: "Hello World" # 这些是可选的。默认为 true。 publish_state: true send_to_nextion: true # 使用模板 - text_sensor.nextion.publish: id: nextion_text state: !lambda 'return "Hello World";' # 这些是可选的。默认为 true。 publish_state: true send_to_nextion: true配置变量:
-
id (必需, ID): Nextion 文本传感器的 ID。
-
state (必需, string, 可模板化): 要发布的字符串。
-
publish_state (可选, bool, 可模板化): 将新状态发布到 Home Assistant。 默认为 true。
-
send_to_nextion (可选, bool, 可模板化): 将新状态发布到 Nextion 显示器以更新组件。默认为 true。
NOTE
此动作也可以用 lambda 编写。请参阅 Lambda 调用
Lambda 调用
Section titled “Lambda 调用”从 lambda 中,您可以调用多个方法来访问 一些更高级的功能(更多信息请参阅完整的 API Reference: nextion_textsensor.h)。
set_state(bool value, bool publish, bool send_to_nextion): 将状态设置为 value。将新状态发布到 HASS。send_to_nextion 用于将状态发布到 Nextion。
update(): 从 Nextion 轮询
set_background_color(Color color): 将背景颜色设置为 Colorset_foreground_color(Color color): 将背景颜色设置为 Colorset_visible(bool visible): 设置是否可见。如果设置为 false,则不会向组件发送更新
如果设置了 update_interval,具有整数值(.val)的 Nextion 组件或 Nextion 变量将被自动轮询。 要让 Nextion 发送数据,您可以使用 Nextion 自定义文本传感器协议。将 Nextion 自定义文本传感器协议添加到 您想触发发送的组件或函数中。通常这是在 Touch Press Event 中,但某些组件(如滑块)应在 Touch Release Event 中设置以捕获所有更改。由于这是自定义协议,可以从 Nextion 的任何位置(定时器/函数/组件)发送。
NOTE
无需为 Touch Press Event 或 Touch Release Event 勾选 Send Component ID, 因为这将向 esphome 发送实际值。
使用上面的 yaml 示例:
-
“text0” 将轮询 Nextion 获取
text0.txt值并相应地设置状态。
NOTE
如果 Nextion 处于睡眠状态,则不会向其发送更新。一旦唤醒,组件将被更新。如果组件不可见(visible(false)),则在设置为可见之前不会更新。
Nextion 自定义文本传感器协议
Section titled “Nextion 自定义文本传感器协议”所有行都是必需的
printh 92prints "text0",0printh 00prints text0.txt,0printh 00printh FF FF FFprinth 92告诉库这是文本传感器prints "text0",0发送与 component_name 或 variable_name 匹配的名称printh 00发送一个 NULLprints text0.txt,0实际要发送的文本。对于变量,使用不带.txt的 Nextion 变量名text0printh 00发送一个 NULLprinth FF FF FFNextion 命令确认