网红像素灯 Awtrix 红极一时。复刻产品卖了不少。估计很多人都吃灰了把。主要也是因为当时2.0产品的设计并不完美。所有的通知都需要一个服务器做中转,而且ESP8266性能有限。真正好用的通知APP也非常少。而且在2024年11月之后Awtrix2.0的APP商店等服务全部下线了,除非自己编译,否则Awtrix2.0各类APP无法在线下载了。
然而实际上,在服务器上设置号mqtt服务器之后,就能接入Homeassistant了。接入Homeassistant任何数据都能够通过编写自动化的方式在Awtrix进行展示。
如下示例为接入Homeassistant的任意音乐播放器展示当前播放歌曲信息的功能。
首先在Homeassistant中建立能对接Awtrix的mqtt服务。需要注意几个数据。首先在Awtrix中打开MQTT功能。
建立input数据。在configuration.yaml或者单独的input.yaml建立如下内容。
input_text:
awtrix_notify:
name: Awtrix Notify
initial: Hello, World!
icon: mdi:form-textarea
input_number:
awtrix_duration:
name: Awtrix Duration (seconds)
min: 1
max: 60
initial: 5
icon: mdi:timer
awtrix_repeat:
name: Awtrix Repeat Times
min: 1
max: 10
initial: 2
icon: mdi:repeat
awtrix_icon:
name: Awtrix Icon ID
min: 1
max: 1500
initial: 1208
icon: mdi:image-filter-center-focus
此目的是建立一个可调节选项的输入用实体。
然后建立一个通知脚本,scripts.yaml
awtrix_notify:
sequence:
- service: mqtt.publish
data:
topic: awtrix/notify
payload: >
{
"name": "HASS Notify",
"force": true,
"duration": {{ states('input_number.awtrix_duration') }},
"repeat": {{ states('input_number.awtrix_repeat') }},
"icon": {{ states('input_number.awtrix_icon') }},
"text": "{{ states('input_text.awtrix_notify') }}"
}
mode: single
icon: mdi:message
最后建立一个蓝图位置在blueprints/automation/homeassistant/awtrix.yaml
blueprint:
name: AWTRIX now playing
description: Show the current playing track
domain: automation
input:
media_player:
name: Media player
description: Media player what you want to control.
selector:
entity:
filter:
- domain: media_player
multiple: false
trigger:
- platform: state
entity_id: !input media_player
action:
- variables:
media_state: >
{% set state = states[trigger.entity_id] %}
{% if state and state.state == 'playing' %}
{
"title": "{{ state.attributes.media_title | default('Unknown Title') }}",
"artist": "{{ state.attributes.media_artist | default('Unknown Artist') }}",
}
{% else %}
{
"title": "Not Playing",
"artist": "",
"album": ""
}
{% endif %}
- service: input_text.set_value
target:
entity_id: input_text.awtrix_notify
data:
value: >
{{ media_state.title }} - {{ media_state.artist }}
- service: script.turn_on
target:
entity_id: script.awtrix_notify
都设置完成后。在HA中配置一蓝图的自动化。设置—-自动化与场景—-蓝图
找到awtrix now playing
选择一个播放器实体,起名保存一下。
然后这个播放器在播放的时候就会在Awtrix上显示当前歌曲的演唱者和歌曲名字啦,可惜的是只能显示英文。另外icon id 758 是tiktok。1296是网易云音乐。其他图标可自行尝试。如下都是spotify播放器推送到Chromecast后的效果。awtrix now playing调用的是Google Home实体。其实任意音乐播放软件的时候airplay到支持airplayer的音箱也可以实现。
另外,别忘了添加添加实体卡片。这样当播放器不播放的时候可以播放自定义的通知.
或者你写一个推送任意数据的蓝图自动化也可以。只要调用scripts.yaml即可进行推送。实在在蓝图中写如如下即可调用。
- service: script.turn_on
target:
entity_id: script.awtrix_notify
另外完整版的Awtrix是支持tf卡中存放mp3文件进行音频通知播放的,感兴趣的去完善一下scripts.yaml文件以及input数据即可。