HA 설정(Device Tracker, Presense Detection, Google map sharing, proximity)
1. 개념설명
자동화를 위해서는 소위 재실센서-사람이 방이나 특정 지역 안에 있는지/없는지, 있다면 몇명이나 있는지를 감지하는 센서-라는게 있으면 큰 도움이 된다.
Home assistant에서는 여러가지 방법으로 재실센서의 사용이 가능한데, 그중에 많이 사용되는 것이 장치추적기(device tracker)라는 것이다. 실제로 사람이 있는지 없는지, 사람이 들어왔는지 나갔는지를 파악하는 것이 어렵기 때문에, 사람이 잘 들고 다니는 장치-대표적으로는 휴대폰이 있다. 혹은 장치추적 자체의 용도로 새로운 제품을 만들어서 팔기도 한다. Tile이라던지. 요즘 학교들어가면 초등학생들 가방에 달아주는 태그를 준다던데 이것도 비슷한 개념의 제품이다-를 추적해서 이게 있으면 사람도 있고, 없으면 사람도 없다는 식의 판단을 하는 것이다.
장치 추적기도 여러가지가 있는데, 구글맵을 사용한 방법에 대해 간단히 정리해본다.
2. Google map을 이용해 HA에서 장치추적기 사용하기(공식 설명)
configuration.yaml에 다음과 같은 설정을 추가한다.
max_gps_accuracy는 gps신호가 얼마나 정확할 경우에 센서에 반영할 것인지를 정하는 것이다. 이걸 너무 높게 해두면, 밤에 방안에서 잘때 gps신호의 정확성이 떨어져서 집밖으로 나간것처럼 보이는 경우들이 생긴다.
3. 구글맵 위치공유 사용하기
원래는 이걸로 끝인데, 이렇게 하면 매우 불안할 것이다. 구글 계정에는 여러가지 매우 중요한 정보들이 담겨있는 경우가 많기 때문에...
그러므로 이걸 할때는 보통 쓰는 구글계정을 사용하지 않고, 위치공유라는 기능을 사용한다.
가. 우선 여기 가서 새로운 구글계정을 만든다.
나. 구글계정 보안설정 에 가서 오른쪽 위에 계정선택에서 새로운 구글계정으로 로그인해주고, 스크롤 내려보면 "Less secure app access" 라는게 있는데 이걸 켜준다.
다. 휴대폰의 구글 맵 어플을 실행한다.
라. 메뉴-위치공유-계정추가(아래 사진 참조)


마. '이 기능을 사용중지할때까지'를 선택하고 '사용자 선택하기'에서 새로 만든 구글계정을 입력한다.
바. 새로만든 구글계정 메일로 확인이 갈텐데 확인해주고. HA에서 새로 만든 구글계정/암호를 입력해준다.
4. 임시로 문제해결.
원래는 이렇게 하면 설정끝인데 지금은 살짝 버그가 있어서 이대로 하면
이렇게 하면 작동이 될 것이다.
5. 보너스(proximity)
이렇게 하면 휴대폰 위치에 따라서 집에 있는지, 집 밖에 있는지, 학교/회사에 있는지 뜬다(집을 제외하면 Zone설정 필요).
자동화를 위해서는 '집에 왔다' 는게 아니라 '집에 오는 중인데 300미터 정도 남았다' 라는게 필요할 때가 있는데, HA에서 이걸 좀 쉽게 설정할 수 있게 해주는게 proximity이다. 대충 configuration.yaml에 다음과 같이 추가한다(devices는 known_devices.yaml에서 이름을 뽑을수 있다).
자동화를 위해서는 소위 재실센서-사람이 방이나 특정 지역 안에 있는지/없는지, 있다면 몇명이나 있는지를 감지하는 센서-라는게 있으면 큰 도움이 된다.
Home assistant에서는 여러가지 방법으로 재실센서의 사용이 가능한데, 그중에 많이 사용되는 것이 장치추적기(device tracker)라는 것이다. 실제로 사람이 있는지 없는지, 사람이 들어왔는지 나갔는지를 파악하는 것이 어렵기 때문에, 사람이 잘 들고 다니는 장치-대표적으로는 휴대폰이 있다. 혹은 장치추적 자체의 용도로 새로운 제품을 만들어서 팔기도 한다. Tile이라던지. 요즘 학교들어가면 초등학생들 가방에 달아주는 태그를 준다던데 이것도 비슷한 개념의 제품이다-를 추적해서 이게 있으면 사람도 있고, 없으면 사람도 없다는 식의 판단을 하는 것이다.
장치 추적기도 여러가지가 있는데, 구글맵을 사용한 방법에 대해 간단히 정리해본다.
2. Google map을 이용해 HA에서 장치추적기 사용하기(공식 설명)
configuration.yaml에 다음과 같은 설정을 추가한다.
device_tracker:
- platform: google_maps
username: YOUR_USERNAME
password: YOUR_PASSWORD
max_gps_accuracy: 35
YOUR_USERNAME은 구글 계정의 이름. YOUR_PASSWORD는 구글 계정의 비밀번호이다.max_gps_accuracy는 gps신호가 얼마나 정확할 경우에 센서에 반영할 것인지를 정하는 것이다. 이걸 너무 높게 해두면, 밤에 방안에서 잘때 gps신호의 정확성이 떨어져서 집밖으로 나간것처럼 보이는 경우들이 생긴다.
3. 구글맵 위치공유 사용하기
원래는 이걸로 끝인데, 이렇게 하면 매우 불안할 것이다. 구글 계정에는 여러가지 매우 중요한 정보들이 담겨있는 경우가 많기 때문에...
그러므로 이걸 할때는 보통 쓰는 구글계정을 사용하지 않고, 위치공유라는 기능을 사용한다.
가. 우선 여기 가서 새로운 구글계정을 만든다.
나. 구글계정 보안설정 에 가서 오른쪽 위에 계정선택에서 새로운 구글계정으로 로그인해주고, 스크롤 내려보면 "Less secure app access" 라는게 있는데 이걸 켜준다.
다. 휴대폰의 구글 맵 어플을 실행한다.
라. 메뉴-위치공유-계정추가(아래 사진 참조)


바. 새로만든 구글계정 메일로 확인이 갈텐데 확인해주고. HA에서 새로 만든 구글계정/암호를 입력해준다.
4. 임시로 문제해결.
원래는 이렇게 하면 설정끝인데 지금은 살짝 버그가 있어서 이대로 하면
"
"
라고 에러가 나면서 작동이 안된다.
HA설치된 시스템에 터미널 접속해서 아래와 같이 실행한다(해즈비안의 경우. hass.io는 좀 다르다고 한다. 위 링크 참조).
#from /home/pi
#lufton이라는 훌륭한 분이 고쳐놓은 소스를 가져온다.
git clone https://github.com/lufton/locationsharinglib.git
#HA 멈춤
sudo systemctl stop home-assistant@homeassistant.service
#가상환경
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
#쿠키파일만들기 <your email>과 <your password> 부분은 새로 만든 구글계정의 계정/비번. 만약 아래 나온 $python 앞부분이 다르다면 'cd ~/.homeassistant'를 먼저 해준다.
(homeassistant) homeassistant@raspberrypi:~/.homeassistant $ python /home/pi/locationsharinglib/cli.py --email '<your email>' --password '<your password>' --cookies-file .google_maps_location_sharing.cookies
#HA 재시작
sudo systemctl start home-assistant@homeassistant.service
이렇게 하면 작동이 될 것이다.
5. 보너스(proximity)
이렇게 하면 휴대폰 위치에 따라서 집에 있는지, 집 밖에 있는지, 학교/회사에 있는지 뜬다(집을 제외하면 Zone설정 필요).
자동화를 위해서는 '집에 왔다' 는게 아니라 '집에 오는 중인데 300미터 정도 남았다' 라는게 필요할 때가 있는데, HA에서 이걸 좀 쉽게 설정할 수 있게 해주는게 proximity이다. 대충 configuration.yaml에 다음과 같이 추가한다(devices는 known_devices.yaml에서 이름을 뽑을수 있다).
# Example configuration.yaml entry
proximity:
home:
ignored_zones:
- work
devices:
- device_tracker.
google_maps_xxxxxxxxxxxxxxxx
tolerance: 50
unit_of_measurement: m
댓글
댓글 쓰기