本帖最后由 foggy_fox 于 2020-11-13 20:15 编辑
自打用我的古董树莓派diy了网络音响,用起来还是蛮不错的,但是使用需要ha的app来控制,接入siri语音控制只能控制启停,切歌和更换歌单对于老人来说还是相对比较麻烦,家里老人爱听京剧,所以用最简单的方式让大人小孩都能用成了当务之急。
实体按键的方式最容易接受,且越简单越好,歌单的选择采用RFID卡,卡上面写明是哪个艺术家名字或者专辑名称,只需要刷卡就可以控制播放的歌曲,这样老人小孩都会用。
技术路线:
1.选择NFC卡+PN532读卡器,好处是官方的APP支持NFC卡片的读取和写入,可以直接触发扫码(tag_scanned)自动化,价格稍贵
2.选择125kHz的RFID卡+RDM6300读卡器,与NFC相比不能用官方app读写,卡片id是唯一的,价格便宜
综合考虑使用场景,选择方案2,因为使用场景是面向非折腾人群,功能满足了就可以了,RDM6300为8元,RFID卡5毛一张~主控是我之前做的让米家温湿度计接入HA的蓝牙网关,固件为tasmota,直接在上面加功能就可以了,省了一个8266。
自动化部分:
1.卡片扫码触发的歌曲切换自动化:
思路就是在volumio里面提前建好歌单,将RFID的ID号码与歌单一 一对应,tasmota上传的扫码消息以MQTT形式上传,HA通过MQTT触发自动化,解析出ID号码,然后通过ID号码找到歌单名称,调用播放器服务的选择音源功能。
- alias: handle tag scan
id: handle_tag_scan
mode: single
#Hide warnings when triggered while in delay
max_exceeded: silent
variables:
media_player:
volumio: media_player.volumio_2
tags:
"0800C9833B79":
source: "robbie"
"0800CA2A6F87":
source: "fires"
"0800DC0004D0":
source: "儿歌"
"0800DA7BD47D":
source: "京剧"
trigger:
platform: mqtt
topic: tele/tasmota_661D0C/RESULT
condition:
- "{{ trigger.payload_json['SSerialReceived'] in tags }}"
action:
- service: media_player.select_source
data:
entity_id: "{{ media_player.volumio }}"
source: "{{ tags[trigger.payload_json['SSerialReceived']].source}}"
- delay: 2
2.按键部分
这部分比较简单,根据button的状态直接调用下一首,上一首和暂停/开始服务
- alias: handle_media_button
id: handle_media_button
variables:
media_player:
volumio: media_player.volumio_2
control_action:
"SINGLE":
control: media_player.media_next_track
"DOUBLE":
control: media_player.media_previous_track
"HOLD":
control: media_player.media_play_pause
trigger:
platform: mqtt
topic: stat/tasmota_661D0C/BUTTON1T
condition:
- "{{ trigger.payload_json['TRIG'] in control_action }}"
action:
- service: "{{ control_action[trigger.payload_json['TRIG']].control }}"
data:
entity_id: "{{ media_player.volumio }}"
- delay: 2
视频:
|