잡동사니

스마트폰과 스마트워치간 블루투스 끊김시 알림 받기 (2) 본문

Tasker and Join

스마트폰과 스마트워치간 블루투스 끊김시 알림 받기 (2)

승이75 2024. 2. 14. 09:35

 

 

 
 
기기사이 거리가 멀어져서 블루투스가 끊어지려고 할 때
이런식으로 알림 메시지를 스마트워치에서 받아보고 싶은겁니다.

스마트폰과 스마트워치 사이의 거리가 멀어져서 블루투스가 끊어질 때 스마트워치에서 알림을 받을 방법이 필요합니다. Tasker를 써서 스마트폰과 스마트워치사이의 거리에 따른 신호강도 저하를 확인해서 특정 임계값 이하로 신호가 낮아지게 되면 블루투스가 끊어지기 전에 "블루투스 연결이 끊어질 수 있다"는 정도로 알림을 워치로 보내는 방식으로 구현해보려 합니다. 앞선 글에서는 블루투스 신호가 끊어진 조건을 트리거로 삼았는데 이렇게 블루투스가 끊어진 후에는 스마트폰의 Tasker에서는 무슨 방법을 써도 스마트워치로 알림을 보낼 방도가 없습니다.

 

별도의 Tasker Plugin이 필요합니다. AutoLocation이라는건데 원래 이 Plugin은 스마트폰 사용자가 가만히 있는지, 차를 타도 이동중인지, 걷고 있는중인지 등을 알수 있게끔 하기 위한 Plugin입니다.

 

https://play.google.com/store/apps/details?id=com.joaomgcd.autolocation&hl=en_US

 

AutoLocation - Apps on Google Play

Use Geofences,your location or even your activity(running, walking,etc)in Tasker

play.google.com

 

 

원래 기능은 이러한데 여기서는 딱히 이런게 필요한건 아니고 이 플러그인을 쓰면 검사 주기를 10초 정도로 짧게 줄 수 있어서 입니다. 이런 플러그인을 안쓰고 테스커에서 기본 제공하는 기능으로는 이런 주기를 1분 미만으로는 줄 수가 없네요. 1분 단위로 검사하는건 너무 부족해 보입니다.

 

기본 기능인 Profile - Time 에서 줄 수 있는 최소 시간 간격
AutoLocation - Activities - Configure Monitor에서 설정할 수 있는 초단위 간격. 10~20초 정도가 적당한거 같네요.

 

아래는 Tasker로 블루투스가 끊어질 때쯤 끊어질 수 있다는 알람 메시지를 스마트폰과 스마트워치에 동시에 알려줄 수 있는 내용을 Tasker로 만드는 과정을 설명합니다. AutoLocation, Tasker는 미리 설치가 되어 있어야 합니다.

 

먼저 설치된 AutoLocation을 실행해 봅니다.

Activities 항목에서 Start Monitor를 터치하면 아래 메시지가 Activity Monitor Started로 바뀌고 Stop Monitor의 명령대기 상태가 됩니다. 이 상태로 만듭니다. 그리고 아래 Configure Monitor를 터치하면

위와 같이 인터벌을 초단위로 설정할 수 있습니다. 이 시간 마다 스마트폰과 스마트워치 사이의 신호 강도를 체크하게 됩니다. 설정이 끝났으면 Tasker를 실행합니다.

프로파일을 먼저 작성합니다. 화면 우측하단의 +를 터치합니다.

Event를 터치하고

Plugin 터치...

 

AutoLocation을 선택..

Activity를 선택...

Configuration을 선택합니다.

어떤 상태를 감지하고 싶은지를 체크합니다. 딱히 차량내에서나 자전거를 타는중에는 블루투스 연결 끊김 확인이 필요하지 않을것 같으므로 이 둘을 제외하고 나머지 다른 모든것을 선택합니다. 맨 아래쪽에 Min Confidence라는게 있는데 각 상태 탐지의 필요한 최소 정확도를 써줍니다. 0~100 사이의 값을 넣어야 하는데 어중간할 때에도 실행되어야 하므로 아주 낮은값을 주면 됩니다. 저는 10을 주었습니다. 다 입력되었으면 화면 상단의 V 체크 아이콘을 터치합니다.

 

Profile 작성이 끝나면 Task를 입력합니다. New Task를 선택하면

 

위 화면이 뜨고, +를 터치해서 Task를 작성할 수 있습니다.

 

위 내용이 전체 Task를 다 입력한 화면입니다. 하나하나 스크린샷 떠서 설명하기 너무 힘드네요. 요것만 보셔도 충분히 따라하실 수 있을겁니다. 1번에서 Bluetooth Info라는 Task를 입력해야 하는데, + 기호를 눌러서 나타나는 아래 화면에서 Filter 부분에서 Bluetooth라고 입력하면 Bluetooth로 시작하는 Task들을 보여주므로 여기서 Bluetooth Info를 선택하면 되고, 나머지 Flash니 If니 Wait니 등도 이런석으로 찾아서 만들 수 있습니다.

1번에서 본인이 사용하는 스마트워치명을 잘 입력하시면 되고, 2번은 현재 수신되는 신호강도를 화면에 보여주고자 나타낸건데 음영으로 되어 있는건 비활성화 시켜서 그렇습니다. 일부 Task를 비활성화 시키려면 해당 task를 길게 눌러서 선택한다음 아래화면과 같이 화면상단의 전원On/Off 기호를 선택하면 활성, 비활성을 바꿔줄 수 있습니다.

여기서 활성, 비활성의 의미는 이 task를 만드는 중에는 정상적으로 신호강도가 들어오는지 변수값을 확인했다가 실제로 사용중에는 비활성화 시켜서 쓸데없이 변수값이 화면에 나타나는걸 보지않겠다는 의미입니다. 실제 신호강도는 bt_signal_strength라는 값으로 들어오는데 시계와 스마트폰이 아주 가까이 있으면 0으로 나오다가 거리가 멀어지면 음수 값을 갖는데 저는 -40정도가 적당한것 같아서 -40으로 사용했습니다.

 

위 화면에서 For loop를 2초 간격으로 5번 돌면서 Notify 문장을 5번 수행하게되는데 스마트워치로 알림문자를 2초 간격으로 5번 보내라는 의미입니다. 이렇게 하면 진동이 2초간격으로 5번 울려서 쉽게 Bluetooth 신호가 끊어질 수 있는 상황이라는걸 인지 할 수 있게 됩니다. 물론 Notify Task에서 기술한것 처럼 "블루투스가 끊어질 수 있습니다"라는 알림 메시지도 스마트워치에 나타나게 됩니다. 이와 동시에 스마트폰에서도 Notify task에서 지정된 Vibration pattern대로 진동이 발생하게 되고 이 진동도 2초 간격으로 5번 반복하므로 충분히 블루투스가 끊어질 수 있다는 경고를 인지 할 수 있습니다.

 

아래는 전체 프로파일과 테스크 작성 내용입니다.

 
Profile: Bluetooth Disconnection Alarm(2)
Event: AutoLocation Activity [ Configuration:On Foot: true
Walking: true
Running: true
Staying Still: true
Tilting: true
Unknown Activity: true
Min Confidence: 10 ]






Enter Task: BT끊김경고


A1: Bluetooth Info [
Type: Single Device
Device: HUAWEI WATCH Buds-594
Timeout (Seconds): 5 ]


A2: [X] Flash [
Text: %bt_signal_strength
Continue Task Immediately: On
Dismiss On Click: On ]


A3: If [ %bt_signal_strength < -20 ]


A4: For [
Variable: %loop
Items: 1:5
Structure Output (JSON, etc): On ]


A5: Notify [
Title: 블루투스
Text: 연결이 끊어질 수 있습니다.
Number: 0
Priority: 1
Repeat Alert: On
LED Colour: Red
LED Rate: 0
Vibration Pattern: 1000,9000
Category: ㅂㅂㅂ ]


A6: Wait [
MS: 0
Seconds: 2
Minutes: 0
Hours: 0
Days: 0 ]


A7: End For


A8: End If



 

위와 같이 tasker profile 만들어서 몇일 사용해보니 의도한데로 잘 작동하네요.

긴글 읽어주셔서 감사합니다. 혹시 비슷한 고민 하시는 분 있으시다면 도움이 되었길 바랍니다.