Python

Teamsの退席中表示の回避方法を考えてみる(Python)

Teamsの退席中表示の回避方法

今回はTeamsの退席中表示を回避する方法を考えてみたいと思います。

この記事では、プログラミング(Python)を使って対策する方法をメインで紹介しています。

 

Teamsの退席中表示の回避方法について、色々なアイデアを次の記事でもまとめています。よかったらこちらも参考にどうぞ。
Teamsの退席中表示を回避する方法【アイデア11選】

 

Teamsって何?

Teamsは、Microsoftが提供しているコラボレーションプラットフォームで、社員同士で電話会議やチャットを使ってコミュニケーションを取る際に使われます。リモートワークをされている方がコロナの影響もあり急増したため、Teamsを使っている方も多いのではないでしょか。

似たようなツールとしては、SlackやSkypeも有名ですよね。

今回はこのTeamsのちょっとした問題点と対策案について取り上げてみようと思います。

 

Teamsのステータス表示(対応可能や退席中など )がストレスの原因に

まずは、マイクロソフトのコミュニティの投稿(質問)を紹介したいと思います。
退席中と表示されるまでの時間を5分よりも長く設定する方法を教えてください

引用:
リモートワークで使用しているMicrosoft teamsのプレゼンスは5分操作をしないと、退席中と黄色表示されてしまいます。
PCの操作を行わない作業もあるので、サボっているわけではないのに、サボっているように思われるのがストレスです。

 

Teamsには、各個人のステータス表示がついており、相手の状態(席にいるのか、会議中なのか、退席中なのか)が分かるようになっています。
このため、相手に連絡を取りたいと思ったときに、相手が忙しくないかが分かるため、在宅勤務をしている方にとっては非常に重宝する機能だと思います。
ところが、この機能は逆に言えば、「常に仕事仲間から自分が今どのような常態なのかを見られてしまうもの」とも言えると思います。

この機能の問題点は、Teamsから見たときに、本人が席にいるかどうかは、「本人がPCを操作しているかどうか」で判断されてしまう部分にあるのかなと感じました。

例えば、席で仕事をしていたとしても、ペーパーワークや電話対応をしている時は、PCを操作することがないため、Teamsのツールからは、「席にいない」という判断されてしまいます。

このシステムにより、「仕事をしているのに退席中と表示され、サボっているように思われるのがストレス」という事例に至っていると推測します。

 

改めて、内容をまとめると、

Teamsの状態判定は、「本人が仕事をしているか」ではなく、「PC操作が行われたかどうか」で決まるため、実際の状態と異なる表示がなされてしまう場合がある。

リモートワーク中は、Teamsの状態表示のみが他の人から見えるため、実際に仕事をしていることが伝わりにくい状況が生じる。

意図しないTeamsの退席中表示が、サボっているように見えないかという不安となり、Teams利用者のストレスに繋がっている。

 

実際、在宅ワークをしていても、色々席を離れてしまうことってありそうですよね。

  • 席に座っていながらペーパーワーク
  • 席に座っていながら個人携帯に電話がかかってきた
  • トイレに行っていた
  • 荷物が届いた
  • コーヒーを淹れていた ...等々

ちょっとした離席も許されないと考えてしまうと、なかなかしんどそうです。同じ様に悩む方ももしかすると割と多いのではないでしょうか。

 

Teamsが退席中表示となる条件は?
条件変更は可能か?

条件

Teamsは、PC操作が5分間ない場合に退席中の表示となるようです。

「PC操作がある状態」とは、マウス操作またはキーボード入力が行われている状態だと推測します。

 

変更は可能か

上のマイクロソフトのコミュニティでのQAでもあるように、現時点の仕様では、この時間は変更ができないようです。

 

Teamsの退席中表示を回避するには

上で説明したTeamsの条件から考えると、Teamsの退席中表示を回避するには、何かしらの方法で断続的にキーボードやマウスから入力が行われるような環境を作る必要がありそうです。

今回は、Teams退席中表示の回避方法を2つ紹介したいと思います。

 

対策その1 アナログ時計の上にマウスを置いてマウスを動かす

少し調べた中で多少ありかなと思ったのが、アナログ時計の上にマウスを置く方法です。
アナログ時計の秒針が、1分ごとにぐるぐる回っているのを利用して、秒針にマウスカーソルを動かしてもらおうという対策です。

ちゃんと効果があるのかわかりませんが、ツール等をインストールせずに使える方法としては有力ではないかと思います。

記事の最初にも紹介しましたが、他の方法はこちらの記事でもまとめています。よかったらこちらもどうぞ。
Teamsの退席中表示を回避する方法【アイデア11選】

対策その2 プログラムを書いて定期的にマウスを動かす

こちらが、今回メインで紹介したかった方法です。

Pythonでマウス操作を定期的に行うことで、退席中表示を回避しようという試みです。

次を考慮して書いてみました。

  • 指定時間の間マウス操作がないときにマウスを動かす
  • マウスが操作されている間は、ユーザの邪魔をしない(マウスは動かさない)
  • 待機時間は、最初に入力できるようにする

 

 

import pyautogui
from time import sleep, strftime
import  math


def move_mouse_gohey():
    r = 60
    (mx, my) = pyautogui.size()
    pyautogui.moveTo(round(mx/2), round(my/2 -r-r))
    rad2deg = 360 / math.pi
    move_num = 40
    for t in range (move_num):
        round_t = 3
        step = 1/(move_num/round_t)
        x = r*math.cos(step*t*2*math.pi)
        y = r*math.sin(step*t*2*math.pi)
        pyautogui.move(x,y)
    pyautogui.press('shift')

def initialize():
    val = 0
    print("Enterで動作開始 / 1入力+Enterで待機時間設定")
    val = input()
    if val == "1":
        print("Setting:何分間マウス操作がない場合に、ゆらゆらしますか?[1〜30で指定可能です]")
        val = input()
        if val.isdecimal() and int(val)>1 and int(val)<31 :
            print("動作を開始します。", val, "分間マウス操作がない場合は、ゆらゆらします。")
        else:
            val = 3
            print("動作を開始します。", val, "分間マウス操作がない場合は、ゆらゆらします。")
    else:
        val = 3
        print("動作を開始します。", val, "分間マウス操作がない場合は、ゆらゆらします。")
    return int(val)

def move_mouse_top():
    wait_min = initialize()
    count_sleep = 0
    print(format(strftime('%H:%M:%S')), "Count:", count_sleep, "Min")
    pos_orig = pyautogui.position()

    wait_min = int(wait_min)

    # 推奨 
    # max_min = 60*8 # 8 hours
    # check_min = 60 #[sec]

    # 動作確認用
    max_min = 10 # 10 [min]
    check_min = 5 #[sec]

    for idx in range(max_min):
        sleep(check_min)
        pos_current = pyautogui.position()
        dx = pos_orig.x - pos_current.x
        dy = pos_orig.y - pos_current.y
        dist = pow(dx*dx + dy*dy, 0.5)
        pos_orig = pos_current
        if dist < 20: count_sleep +=1 else: count_sleep = 0 print(format(strftime('%H:%M:%S')), "Count:", count_sleep, "Min") if count_sleep > wait_min - 1:
            print("moved")
            move_mouse_gohey()
            count_sleep = 0
            print(format(strftime('%H:%M:%S')), "Count", count_sleep, "Min")


# Main
move_mouse_top()

 

ご利用は自己責任でお願いします。m(_ _)m

コードの詳細は別の記事にまとめました。よかったら次の記事も参考にどうぞ。

PythonのPyAutoGuiでマウスを動かしTeamsの退席中表示を回避する

もうしばらくリモートワークも続きそうなので、ストレスを貯めすぎないように、うまく付き合いながら過ごしましょう。

追記
今回のマウスを動かすプログラムに関する記事をTwitterや他のブログ等でも一部取り上げて頂きありがとうございます。こんなプログラム書いてほしい等あればぜひTwitterにコメントお願いします。

-Python

© 2024 Gohey Blog