/

HA 联动像素钟

awtrix_api_cover

小弟曾做过一个像素钟 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」。