Avec le télétravail s’inscrivant dans les moeurs durablement, on se retrouve de plus en plus à la maison. Cela crée de nouvelles habitudes et donc de nouveau besoin d’automatisation!

Le but est de récupérer le statut Teams via sa machine windows afin de le mettre à jour sur sa domotique Jeedom. Cela permet de faire des scénarios pour les lumières, le chauffage, etc.

Le script d’origine est fait pour homeAssitant par EBOOZ. Je l’ai modifié afin de le rendre compatible avec Jeedom, gérer les caractères « spéciaux » en UTF8 sous powershell, par spéciaux on entend simplement les caractères accentués de la langue française… Pas mal de modifications de variables pour rendre ce script multilingue également. J’ai revu la partie installation pour la rendre plus générique, celle d’origine étant plus hasardeuse en fonction du répertoire courant.

La configuration du virtuel

Création d’un virtuel pour gérer l’état du statut et de l’activité :

création du virtuel

Une fois créé, enregistrez pour obtenir les 2 ID utilisés par le script.

Récupération de l’url API via l’onglet équipement :

récupération url API

Vous avez récupéré l’url ainsi que l’apikey (grisé sur l’image).

Le script TeamsStatus

Le TeamsStatus est composé d’un script powershell, d’un fichier de configuration et du binaire nssm.exe qui permet de créer facilement un service sous Windows pour un script.

Il peut également service à faire un update manuel, utilise en cas de test :

C:\Scripts\Get-TeamsStatus.ps1 Occupé

Installation du script

Récupérez le projet git via un fichier zip ou un git clone :

git clone https://github.com/belgotux/TeamsStatus.git

Copiez le fichier Settings de votre langue :

cp Settings-fr.ps1 Settings.local.ps1
  • Remplacez <Insert token> avec le token Jeedom que vous avez généré
  • Remplacez <UserName> avec le nom d’utilisateur local de la machine qui est logué dans Teams et que vous voulez monitorer
  • Remplacez <Jeedom URL> avec l’URL de votre serveur Jeedom
  • Remplacez <ID> de statut par l’ID du virtuel que vous avez créé
  • Remplacez <ID> d’activité par l’ID du virtuel que vous avez créé

Installez le script avec l’invite de commande admin PowerShell :

New-Item -Path "c:\Scripts\" -ItemType Directory
Copy-Item -Path .\nssm.exe -Destination "c:\Scripts\"
Copy-Item -Path .\Settings.local.ps1 -Destination "c:\Scripts\"
Copy-Item -Path .\Get-TeamsStatus.ps1 -Destination "c:\Scripts\"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Unblock-File c:\Scripts\Settings.local.ps1
Unblock-File c:\Scripts\Get-TeamsStatus.ps1
Start-Process -FilePath "c:\Scripts\nssm.exe" -ArgumentList 'install "Microsoft Teams Status Monitor" "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-command "& { . C:\Scripts\Get-TeamsStatus.ps1 }"" ' -NoNewWindow -Wait
Start-Service -Name "Microsoft Teams Status Monitor"

Après avoir exécuter ces commandes, démarrez l’application teams pour voir si le statut remonte bien dans votre domotique Jeedom.

Widget Jeedom

Vous devriez obtenir ce widget dans votre Domotique Jeedom, avec votre status selon votre état, en ligne, occupé, hors connexion :

Maintenant à vous de voir ce que vous voulez en faire dans vos scénarios! Piloter un éclairage, le chauffage, un bandeau led, etc!

Attention que ce statut est remonter dans Jeedom où que vous soyez! Pensez à l’associer dans vos scénarios avec un statut de présence à la maison. Pour éviter d’allumer votre chauffage quand vous êtes en présentiel au bureau 😉

Summary
Article Name
Obtenir son statut Teams dans sa domotique Jeedom
Author