小弟曾做过一个像素钟 LaMetric Time 的 DIY 替代品 AWTRIX,有 8*32 个像素,可以显示像素动画、文字信息的等等。比较酷的是, AWTRIX 支持外部控制,这样就可以与其他设备联动。
AWTRIX 可以通过 HTTP 和 MQTT 两种方式从外部控制,控制的元素很多,从显示图标、显示特定文字等都可以,详见 AWTRIX 文档 API 部分。以下实例介绍 AWTRIX 与 Home Assistant 的联动:
利用 HTTP
实例:通过 HTTP 定时控制像素灯泡开关
AWTRIX 某种意义算是一个灯泡组合的信息版,可惜这个灯泡组合不能方便地打开/关闭显示屏幕,有大大利用 HTTP 将 AWTRIX 虚拟成一个灯光开关接入,将以下代码复制粘贴至 configuration.yaml 文件即可(记得将 AWTRIX-SERVER_IP 替换成实际 IP ):
1 2 3 4 5 6 7 8 9 10 11 12 13
| light: - platform: template lights: theater_volume: friendly_name: Steam turn_on: service: shell_command.turn_on_123 turn_off: service: shell_command.turn_off_541
shell_command: turn_off_541: 'curl --header "Content-Type: application/json" --request POST --data {"power":false} http://[AWTRIX-SERVER_IP]/api/v3/basics' turn_on_123: 'curl --header "Content-Type: application/json" --request POST --data {"power":true} http://[AWTRIX-SERVER_IP]:7000/api/v3/basics'
|
加入虚拟开关后,就可以通过自动化控制像素时钟的显示与关闭,如可以设置定时开关屏幕,每天 7 点自动打开屏幕, 晚上 11 点关闭屏幕,自动化配置参考:
1 2 3 4 5 6 7 8 9 10 11 12
| - id: 'xxxxx' alias: awtrix on description: '' trigger: - platform: time at: '7:00' condition: [] action: - service: switch.turn_on data: {} entity_id: switch.original_xiaomi_mi_smart_wifi_socket mode: single
|
1 2 3 4 5 6 7 8 9 10 11
| - id: 'xxxxx' alias: awtrix off description: '' trigger: - platform: time at: '23:00' condition: [] action: - service: shell_command.turn_off_541 data: {} mode: single
|
利用 MQTT
实例:通过 MQTT 实现扫描特定 NFC 标签(或其他条件)显示「降落文字」(falling test)
首先可以在 AWTRIX 设置好 MQTT 服务器,设置成功在 MQTT 服务器中可以看到 awtrix 相关的主题,AWTRIX 基本主题是awtrix
。
这里示例扫描特定 NFC 标签(或其他条件)显示「降落文字」,自动化配置参考:
1 2 3 4 5 6 7 8 9 10 11 12 13
| - id: 'xxxxx' alias: Tag blue is scanned description: '' trigger: - platform: tag tag_id: xx-xx-xx-xx condition: [] action: - service: mqtt.publish data: topic: awtrix/notify payload: '{"name":"TestNotification", "force":true, "repeat":10,"fallingText":"keep cool", "color":[0, 255, 0]}' mode: single
|
扫描 NFC 标签后, AWTRIX 先绿色字体显示「keep」,之后掉落显示「cool」。