You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell清除LaMetric时钟的通知?

用PowerShell自动清除LaMetric时钟的通知

嘿,这事儿好办!LaMetric提供了REST API来管理通知,完全可以用PowerShell调用它来自动清除,不用再手动按按钮啦。我给你一步步拆解:

第一步:准备LaMetric的API凭证

首先得拿到两个关键信息:

  • 设备IP地址:你可以在LaMetric的手机APP里找到(设置→设备信息),或者通过路由器的设备列表查询
  • API密钥:同样在APP的设置里,找到「开发者」或者「API」选项,生成并复制你的API密钥(注意保密别泄露)

第二步:PowerShell脚本实现清除逻辑

方案1:清除所有通知

如果想一次性清空所有通知,用这个脚本就行:

# 替换成你的设备IP和API密钥
$lametricIp = "192.168.1.100"
$apiKey = "你的LaMetric API密钥"

# 生成Basic认证所需的Base64字符串
$base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("dev:$apiKey"))

try {
    # 调用LaMetric的删除所有通知API
    $response = Invoke-RestMethod -Uri "http://$lametricIp:8080/api/v2/device/notifications" `
        -Method Delete `
        -Headers @{Authorization = "Basic $base64Auth"}
    
    Write-Host "✅ 所有通知已成功清除!API响应:$($response | ConvertTo-Json)"
} catch {
    Write-Error "❌ 清除通知失败:$_"
    # 输出详细错误信息(如果有API返回的错误内容)
    if ($_.Exception.Response) {
        $errorStream = $_.Exception.Response.GetResponseStream()
        $reader = New-Object System.IO.StreamReader($errorStream)
        $errorContent = $reader.ReadToEnd() | ConvertFrom-Json
        Write-Error "API错误详情:$($errorContent | ConvertTo-Json)"
    }
}

方案2:只清除特定的构建失败通知

如果不想清空所有,只想删掉构建失败相关的通知,先获取通知列表再筛选删除:

$lametricIp = "192.168.1.100"
$apiKey = "你的LaMetric API密钥"
$base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("dev:$apiKey"))

try {
    # 获取当前所有通知
    $notifications = Invoke-RestMethod -Uri "http://$lametricIp:8080/api/v2/device/notifications" `
        -Method Get `
        -Headers @{Authorization = "Basic $base64Auth"}
    
    # 筛选标题包含「构建失败」的通知(根据你实际的通知标题调整关键词)
    $buildFailNotifications = $notifications | Where-Object { $_.title -match "构建失败" }

    if ($buildFailNotifications.Count -eq 0) {
        Write-Host "ℹ️ 没有找到构建失败相关的通知"
        return
    }

    # 逐个删除筛选出的通知
    foreach ($notification in $buildFailNotifications) {
        Invoke-RestMethod -Uri "http://$lametricIp:8080/api/v2/device/notifications/$($notification.id)" `
            -Method Delete `
            -Headers @{Authorization = "Basic $base64Auth"}
        Write-Host "✅ 已清除ID为$($notification.id)的构建失败通知"
    }
} catch {
    Write-Error "❌ 操作失败:$_"
    if ($_.Exception.Response) {
        $errorStream = $_.Exception.Response.GetResponseStream()
        $reader = New-Object System.IO.StreamReader($errorStream)
        $errorContent = $reader.ReadToEnd() | ConvertFrom-Json
        Write-Error "API错误详情:$($errorContent | ConvertTo-Json)"
    }
}

注意事项

  • 确保运行PowerShell的机器和LaMetric设备在同一个局域网里,不然可能访问不到设备API
  • LaMetric的API默认端口是8080,如果你改过端口,记得在URL里替换
  • 如果是在Azure DevOps(原VSTS)的构建步骤里用这个脚本,记得把API密钥和IP地址存成安全变量,不要明文写在脚本里,避免泄露
  • 测试的时候可以先手动运行脚本,确认能正常访问设备API再集成到构建流程里

内容的提问来源于stack exchange,提问作者froeschli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:04:41