ntfy와 homeassistant를 이용한 esxi android vm 제어하기
달소님 게시글 ntfy를 보고 이걸로 원하는 삽질(?)을 할 수 있겠다 싶어서 해보게 되었습니다.
여기는 Homeassistant를 사용하는 분들이 적어서 관심이 없으시겠지만, 혹여 필요하신 분 참고하시거나 기록겸 해서 글 남겨봅니다.
저는 nginx-proxy manager와 esxi / home assistant 를 사용합니다.
1)먼저 ntfy docker를 설치합니다.
원하는 설치위치에 폴더를 생성 및 각자 취향(?)에 맞게 docker-compose.yml 파일을 만듭니다.
mkdir -p /data/ntfy/config;
mkdir -p /data/ntfy/cache;
cd /data/ntfy;
vi docker-compose.yml;
version: "2.1"
services:
ntfy:
image: binwiederhier/ntfy:latest
container_name: ntfy
command:
- serve
environment:
- TZ=Asia/Seoul
volumes:
- /data/ntfy/cache:/var/cache/ntfy
- /data/ntfy/config:/etc/ntfy
ports:
- 8081:80
restart: unless-stopped
ESC;
:wq;
docker-compose up -d;
2)portainer - container - ntfy -> edit 에서
ntfy_default 외에 npm에 사용하는 network를 추가합니다.
3)원하는 nginx proxy manger의 도메인 설정 및 세부 주소를 설정합니다.
4)설정한 npm의 도메인으로 접속 및 원하는 topic을 설정합니다.
5)안드로이드에 ntfy 앱 설치 및 설정합니다.
설정에서 아까 설정한 기본 서버를 설정한 뒤 subcribe topic으로 원하는 topic을 noti 받습니다.
그리고 notification이 올 경우 원하는 자동화를 하게 설정합니다.
저는 Macrodroid를 사용했습니다.
6)Homeassistant에 configuration.yml에서 원하는 switch 등을 만듭니다.
저는 이렇게 만들었습니다.
switch:
- platform: template
switches:
{{"command명"}}_switch:
value_template: "{{ is_state('sensor.esxi_vm_{{"command명"}}', 'running') }}"
turn_on:
service: esxi_stats.vm_power
data:
host: {{"사용하는 ESXI 주소"}}
vm: {{"ESXI에 보이는 VM 이름"}}
command: "on"
turn_off:
service: shell_command.{{"하단 command명"}}
## curl -d {{명령어, 저 같은 경우에는 OFF}} https://ntfy.duckdns.org/TOPIC
shell_command:
{{"command명"}}: 'curl -d OFF https://{{"도메인주소"}}.duckdns.org/{{"4번에서 정한 topic"}}'
7) 원하는 Homeassistant 제어 방법으로 제어합니다.
cmt alert