From b3756e65f4ad0c835079e8a8b1daa9affcff7392 Mon Sep 17 00:00:00 2001 From: Robert van Bregt Date: Tue, 16 Feb 2021 18:01:52 +0100 Subject: [PATCH 1/3] Check for manual Offline status --- Get-TeamsStatus.ps1 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Get-TeamsStatus.ps1 b/Get-TeamsStatus.ps1 index 636da81..f792558 100644 --- a/Get-TeamsStatus.ps1 +++ b/Get-TeamsStatus.ps1 @@ -115,6 +115,11 @@ If ($null -ne $TeamsProcess) { $Status = $lgInAMeeting Write-Host $Status } + ElseIf ($TeamsStatus -like "*Setting the taskbar overlay icon - $lgOffline*" -or ` + $TeamsStatus -like "*StatusIndicatorStateService: Added Offline*") { + $Status = $lgOffline + Write-Host $Status + } If ($TeamsActivity -like "*Resuming daemon App updates*" -or ` $TeamsActivity -like "*SfB:TeamsNoCall*") { From 4e3e848b0122176f2f2abac44ddb7c7357a309d5 Mon Sep 17 00:00:00 2001 From: Robert van Bregt Date: Tue, 16 Feb 2021 18:16:53 +0100 Subject: [PATCH 2/3] Allow easy customization of entities --- Get-TeamsStatus.ps1 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Get-TeamsStatus.ps1 b/Get-TeamsStatus.ps1 index 636da81..fe2aade 100644 --- a/Get-TeamsStatus.ps1 +++ b/Get-TeamsStatus.ps1 @@ -9,8 +9,9 @@ .DESCRIPTION This script is monitoring the Teams client logfile for certain changes. It makes use of two sensors that are created in Home Assistant up front. - sensor.teams_status displays that availability status of your Teams client based - on the icon overlay in the taskbar on Windows. sensor.teams_activity shows if you + The status entity (sensor.teams_status by default) displays that availability + status of your Teams client based on the icon overlay in the taskbar on Windows. + The activity entity (sensor.teams_activity by default) shows if you are in a call or not based on the App updates deamon, which is paused as soon as you join a call. .PARAMETER SetStatus @@ -41,6 +42,10 @@ $lgInACall = "In a call" $iconInACall = "mdi:phone-in-talk-outline" $iconNotInACall = "mdi:phone-off" +# Set entities to post to +$entityStatus = "sensor.teams_status" +$entityActivity = "sensor.teams_activity" + ################################################################ # Don't edit the code below, unless you know what you're doing # ################################################################ @@ -59,7 +64,7 @@ If($null -ne $SetStatus){ } $params = $params | ConvertTo-Json - Invoke-RestMethod -Uri "$HAUrl/api/states/sensor.teams_status" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" + Invoke-RestMethod -Uri "$HAUrl/api/states/$entityStatus" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" break } @@ -151,7 +156,7 @@ If ($CurrentStatus -ne $Status) { } $params = $params | ConvertTo-Json - Invoke-RestMethod -Uri "$HAUrl/api/states/sensor.teams_status" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" + Invoke-RestMethod -Uri "$HAUrl/api/states/$entityStatus" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" } If ($CurrentActivity -ne $Activity) { @@ -165,7 +170,7 @@ If ($CurrentActivity -ne $Activity) { } } $params = $params | ConvertTo-Json - Invoke-RestMethod -Uri "$HAUrl/api/states/sensor.teams_activity" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" + Invoke-RestMethod -Uri "$HAUrl/api/states/$entityActivity" -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($params)) -ContentType "application/json" } Start-Sleep 1 } Until ($Enable -eq 0) From b520e6f4efedbb41ad56ad0d02b914623e9958bc Mon Sep 17 00:00:00 2001 From: Robert van Bregt Date: Tue, 16 Feb 2021 18:31:09 +0100 Subject: [PATCH 3/3] Check for BRB status --- Get-TeamsStatus.ps1 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Get-TeamsStatus.ps1 b/Get-TeamsStatus.ps1 index f792558..0758051 100644 --- a/Get-TeamsStatus.ps1 +++ b/Get-TeamsStatus.ps1 @@ -31,6 +31,7 @@ $HAUrl = "" # Example: https://yourha.duckdns.org $lgAvailable = "Available" $lgBusy = "Busy" $lgAway = "Away" +$lgBeRightBack = "Be right back" $lgDoNotDisturb = "Do not disturb" $lgInAMeeting = "In a meeting" $lgOffline = "Offline" @@ -103,6 +104,11 @@ If ($null -ne $TeamsProcess) { $Status = $lgAway Write-Host $Status } + ElseIf ($TeamsStatus -like "*Setting the taskbar overlay icon - $lgBeRightBack*" -or ` + $TeamsStatus -like "*StatusIndicatorStateService: Added BeRightBack*") { + $Status = $lgBeRightBack + Write-Host $Status + } ElseIf ($TeamsStatus -like "*Setting the taskbar overlay icon - Do not disturb *" -or ` $TeamsStatus -like "*StatusIndicatorStateService: Added DoNotDisturb*" -or ` $TeamsStatus -like "*Setting the taskbar overlay icon - Focusing*" -or `