name: game-light-tracker description: 追踪NFL、NBA、NHL或MLB的实时比赛,并根据领先队伍自动改变Hue灯的颜色。当用户希望将智能灯光与实时体育比分同步以实现视觉化比赛追踪时使用。支持NFL、NBA、NHL和MLB比赛,并可自定义队伍颜色。
比赛灯光追踪器
自动将您的Hue灯光与实时体育比分同步。当领先方发生变化时,您的灯光颜色会随之改变,以匹配领先队伍的颜色。
快速开始
基本用法:
追踪 [队伍A] 对阵 [队伍B] 的比赛,当 [队伍A] 领先时将我的 [灯光名称] 改为 [颜色1],当 [队伍B] 领先时改为 [颜色2]
示例:
- “追踪公羊队对阵海鹰队的比赛,当公羊队领先时将我的背景灯改为蓝色,海鹰队领先时改为绿色” (NFL)
- “监控湖人队对阵凯尔特人队的比赛,湖人队领先时紫色,凯尔特人队领先时绿色” (NBA)
- “观看游骑兵队对阵魔鬼队的比赛 - 游骑兵队领先时蓝色,魔鬼队领先时红色” (NHL)
- “追踪洋基队对阵红袜队的比赛,让我的客厅灯在洋基队领先时变蓝,红袜队领先时变红” (MLB)
工作原理
- 每20秒从ESPN API获取实时比分
- 检测领先变化
- 通过Home Assistant更改指定的Hue灯光颜色
- 包含自动重启守护程序以防止超时
- 可选:为平局比赛添加第三种颜色
设置要求
- 已配置Hue灯光的Home Assistant
- Home Assistant API令牌(存储在
.homeassistant-config.json中) - Home Assistant中的灯光实体ID
脚本
game-tracker.ps1
主监控脚本,用于追踪特定比赛并更新灯光。
用法:
.\game-tracker.ps1 -Sport "nfl" -Team1 "LAR" -Team2 "SEA" -Light "light.backlight" -Color1 "0,0,255" -Color2 "0,100,0" [-TiedColor "255,0,0"]
参数:
-Sport: “nfl”、“nba”、“nhl” 或 “mlb”-Team1: 第一支队伍的缩写-Team2: 第二支队伍的缩写-Light: Home Assistant灯光实体ID-Color1: Team1的RGB颜色(逗号分隔,例如蓝色为"0,0,255")-Color2: Team2的RGB颜色(逗号分隔,例如深绿色为"0,100,0")-TiedColor: (可选)比赛平局时的RGB颜色
keeper.ps1
自动重启监控程序,防止30分钟超时崩溃。
用法:
.\keeper.ps1 -TrackerScript "game-tracker.ps1" -RestartInterval 25
参数:
-TrackerScript: game-tracker.ps1脚本的路径-RestartInterval: 重启间隔分钟数(默认:25)
常见队伍缩写
NFL:
- 公羊队: LAR,海鹰队: SEA,酋长队: KC,比尔队: BUF,爱国者队: NE
- 牛仔队: DAL,老鹰队: PHI,49人队: SF,包装工队: GB,熊队: CHI
- [完整列表: https://www.espn.com/nfl/teams]
NBA:
- 湖人队: LAL,凯尔特人队: BOS,勇士队: GS,尼克斯队: NY,公牛队: CHI
- 热火队: MIA,篮网队: BKN,76人队: PHI,雄鹿队: MIL,独行侠队: DAL
- 掘金队: DEN,太阳队: PHX,快船队: LAC,猛龙队: TOR
- [完整列表: https://www.espn.com/nba/teams]
NHL:
- 游骑兵队: NYR,魔鬼队: NJ,棕熊队: BOS,枫叶队: TOR,加拿大人队: MTL
- 企鹅队: PIT,首都人队: WSH,飞人队: PHI,闪电队: TB,美洲豹队: FLA
- 红翼队: DET,黑鹰队: CHI,雪崩队: COL,金骑士队: VGK
- [完整列表: https://www.espn.com/nhl/teams]
MLB:
- 洋基队: NYY,红袜队: BOS,道奇队: LAD,巨人队: SF,大都会队: NYM
- 小熊队: CHC,红雀队: STL,太空人队: HOU,勇士队: ATL,费城人队: PHI
- [完整列表: https://www.espn.com/mlb/teams]
常见RGB颜色
- 蓝色: 0,0,255
- 红色: 255,0,0
- 绿色: 0,255,0
- 深绿色: 0,100,0
- 橙色: 255,165,0
- 紫色: 128,0,128
- 黄色: 255,255,0
- 白色: 255,255,255
工作流程
当用户请求比赛追踪时:
-
识别体育项目和队伍:
- 提取体育项目(NFL/NBA/NHL/MLB)
- 从用户处获取队伍缩写或根据队伍名称查找
-
获取灯光和颜色偏好:
- 询问灯光实体ID(或从Home Assistant配置中读取)
- 获取每支队伍所需的RGB颜色
- 可选:询问是否需要平局比赛颜色
-
加载Home Assistant配置:
$config = Get-Content ".homeassistant-config.json" | ConvertFrom-Json $token = $config.token $url = $config.url -
启动比赛追踪器:
.\scripts\game-tracker.ps1 -Sport "nfl" -Team1 "LAR" -Team2 "SEA" -Light "light.backlight" -Color1 "0,0,255" -Color2 "0,100,0" -TiedColor "255,0,0" -
启动自动重启守护程序:
Start-Process powershell -ArgumentList "-File keeper.ps1 -TrackerScript 'game-tracker.ps1'" -WindowStyle Hidden -
向用户确认:
- 告知他们监控已激活
- 显示当前比分(如果可用)
- 解释颜色方案
- 告知如何停止
停止追踪器
要停止监控:
Get-Process powershell | Where-Object { $_.CommandLine -like "*game-tracker.ps1*" -or $_.CommandLine -like "*keeper.ps1*" } | Stop-Process -Force
故障排除
灯光不变化:
- 验证Home Assistant令牌是否有效
- 检查灯光实体ID是否正确
- 确保Home Assistant在配置的URL可访问
脚本崩溃:
- 守护程序应自动重启它
- 检查ESPN API是否可访问
- 验证队伍缩写是否正确
队伍颜色错误:
- 仔细检查RGB值(必须是0-255,逗号分隔)
- 确保颜色分配给了正确的队伍