基于家庭自动化的跨生态音乐播放系统

前段日子为了响应消费降级,就把自认为一直不怎么使用的 Apple Music 给退了。但不知怎么的,自从不能再用 Siri 直接让 HomePod Mini 放歌之后,想要在做咖啡或是洗澡的时候舒适地听歌这个念想突然就日渐强烈起来。 我本身并不是 HomePod 的忠实用户,家里也还有小米之类的其他 Wi-Fi 音箱,回去续订 Apple Music 本身并不能解决全部问题。因此眼下的需求便是以相对便捷的方式在 HomePod、小米音箱这些跨生态的设备上实现统一播放来自 Spotify 或是 Plex 等服务上的音乐。 Music Assistant Music Assistant 是一个能同时管理离线音乐和聚合在线音乐服务的音乐库管理工具,它可以轻松将音乐流式传输到各种支持的播放器,并与 Home Assistant 高度契合。不久前刚加入了对 Apple Music 的支持,目前已可以用其聚合非常多的音乐服务。 播放器支持方面则对 Airplay、DLNA、Sonos、Google Cast 等常见方案一应俱全。直接使用已经接入 Home Assistant 的播放器自然不在话下,用户还可以透过官方提供的桌面应用 Music Assistant Companion 将 PC 或者 Mac 的扬声器以 Squeezebox (Slimproto) 播放器的形式加入进去以实现更为同步的全屋音乐。 不同传输协议在 Music Assistant 中存在一定差别,对此官方也在文档中提供了很直观的对比图。 我目前所需要接入的 HomePod Mini 和 XiaoMi Sound 均有且仅支持 Airplay 的传输方式(为什么小米不提供 DLNA?),这里就直接省去思考直奔 Airplay 了。 ...

December 12, 2024 · Chock · Notes

通过 Home Assistant 切换罗技 Unifying 优联频道

自入手 MX Master 2S 起就对罗技的 Unifying 优联系列颇为钟爱,后来也把键盘换成了魔改 K375s 的 DIY 键盘。优联的 Flow 在双机双屏的情况下频道切换十分自如,但相较而言在双机共用一屏的时候因为手动切换频道的按键在鼠标底部就显得十分不便了。 此时购买带 KVM 的 HDMI 切换器使两台电脑共用一个接收器算是比较简单粗暴的办法,但因为听到不少关于此类切换器可能会在使用中遇到各种Bug迟迟没有下手。 于是我便想,有没有一种方法可以用命令来切换键鼠的频道,从而进一步设定调用规则来实现双机一屏的自动切换呢?想着想着我便找到了这个项目 marcelhoffs/input-switcher。经过 2 天的测试算是得到了一个相对满意的结果,特此记录一下。 准备工作 此脚本的原理大概是利用 hidapitester 直接向特定硬件 ID 的 USB 设备发送一串 16 进制的报文来实现频道切换。具体报文可以通过分析 Linux 下的罗技驱动程序 Solaar 进行推测,原 Repo 只提供了 MX Anywhere 和 MX Keys 的报文,在实际使用中发现并不能兼容我的 MX Master 2S 与 K375s,因此需要自行使用 Solaar 提取。 随便起一个 Ubuntu 虚拟机,桌面环境可以直接从自带的应用中心搜索安装 Solaar。 随后打开 Solaar,插上接收器,设备列表中已配对的设备会亮起,此时打开终端,先查询下MX Master 2S solaar -dd config "MX Master 2S" change-host 1 #任意其他频道,此处使用频道1 顺利的话会返回以下信息 logitech_receiver.base: (17) <= w[11 01 091A 01000000000000000000000000000000] 根据 marcelhoffs/input-switcher 的说明,可以确认 MX Master 2S 切换至频道 1 时所发送的报文对应到 hidapitester 的格式为 11,01,09,1A,01,00,00。其中 09 对应具体的设备型号,1A 是一个随机数,这里只需要记住这两个数值即可。 ...

March 15, 2023 · Chock · Notes