Homeassistant (이하 HA)는 기본적으로 모니터링 페이지가 존재한다.
기본페이지로 제공되는 모니터링 페이지에서는 각 장치들의 현재 상태 및 이전의 상태까지 확인 할 수 있으므로
꽤나 편리한 편이다.
하지만 개인적으로 내 기준에는 보기 편하지 않다.
직업이 직업인 만큼 자동화 시스템을 만들다 보니 내 기준에는 P&ID 형식의 모니터링이 편하게 느껴지는게 사실이다.
HMI에 P&ID를 그려 구축해주듯이 내 HA에도 그렇게 하고 싶었고
검색을 해서 이미 예전에 찾아둔 자료가 있었다.
다만 적용을 못하고 있었는데 이번에 적용해 보기로 한다.
1. 설치
해당 기능은 FloorPlan이다.
Floorplan
명사
1. [전문 용어](건물의) 평면도
말은 그렇게 하지만 사실 거의 Custom-UI와 다를바 없다.
이게 왜 그렇게 생각되느냐..하면
개발자는 평면도를 이용하라는 식으로 만들어 둔 듯 하나 실제로는 평면도를 그리지 않아도 사용자가 원하는 그림을 이용하여 사용할 수 있기 때문에
해외 사용자들을 살펴보면 건물의 평면도 대신 판타지스러운 그림을 사용하는 사람도 있고 여러사람이 존재한다.
# Download
우선 위 링크에 접속한다.
링크에 접속하면 위와 같은 페이지에 접속하는데 1번, 2번을 차례대로 눌러 파일을 다운로드 한다.
# Setup
다운로드된 파일 중
ha-floorplan-master\panels
ha-floorplan-master\www
ha-floorplan-master\floorplan.yaml
위 파일을 HA의 폴더에 넣는다.
configuration.yaml 파일을 열어 원하는 공간에
frontend:
extra_html_url:
- /local/custom_ui/state-card-floorplan.html
panel_custom:
- name: floorplan
sidebar_title: Floorplan
sidebar_icon: mdi:home
url_path: floorplan
config: !include floorplan.yaml
Frontend 와 Panel_custom 을 추가한다.
여기까지 진행했다면 기본 Setup은 완료되었다.
2. 준비
설치가 완료되었다면 Floorplan에 필요한 것 들에 대해 알아야 한다.
Floorplan.svg
Floorplan.yaml
Floorplan.css
Floorplan을 사용하기 위해서는 위의 세가지 파일을 나에게 맞게 수정하여 사용해야 한다.
다른 파일들은 크게 변경 할 필요가 없지만 위 세개의 파일은 완성할 때 까지 자주 변경하므로 주의!
Floorplan.svg 파일은 평면도 파일이다.
평면도 파일을 SVG 형식에 맞게 작성하여 사용하는데 이 안에 표현해야 할 디바이스의 이미지까지 모두 넣어야 한다.
또한 표현할 디바이스의 Entity를 입력해야 이미지와 나의 Entity를 연결하여 표현/제어 할 수 있게 된다.
Floorplan.yaml 파일은 내가 Floorplan에 사용하고자 하는 디바이스를 등록하고, 디바이스의 형식을 설정 할 수 있다.
예를 들면 내가 안방 전등을 등록하고 싶다면
해당 전등의 Entity와 이 전등을 Switch 형식으로 사용 할 것인지 Binary Sensor 형식으로 사용 할 것인지 설정 할 수 있다.
Floorplan.css 파일은 위에서 설정한 형식을 어떤방식으로 변경할 것인지 설정한다.
On일 때 무슨 색으로 할 것인지 어떤 애니메이션 효과를 넣을 것인지 등을 설정 할 수 있다.
위의 세개의 파일을 잘 설정하여야 문제 없이 Floorplan을 사용 할 수 있게 된다.
문제는 Floorplan.svg 이다.
yaml 이나 css 파일은 Notepad ++ 를 사용해서 텍스트를 수정하는 방식이기 때문에 형식만 이해하면 가능하다.
SVG 파일은 전용 툴이 따로 존재한다.
내가 다룰 프로그램은 Inkscape (잉크스케이프) 라는 프로그램이다...만 이 프로그램은 따로 글을 추가하기로 한다.
3. YAML 파일 수정
처음 다운로드 한 파일을 열어보면 데모버전이 적혀있다.
데모버전의 내용은 내게 참고용으로 밖에 쓸모가 없으므로 아래 내용을 제외하곤 전부 삭제 또는 주석처리한다.
name: Demo Floorplan
image: /local/custom_ui/floorplan/floorplan.svg
stylesheet: /local/custom_ui/floorplan/floorplan.css
last_motion_entity: sensor.template_last_motion
last_motion_class: last-motion
위 내용은 기본적으로 필요한 내용이므로 그대로 두고 이제부터 추가할 내용을 써내려가도록 한다.
아래는 간단한 예시로 Swtich 형식의 커튼을 하나 추가하는 내용이다.
groups:
- name: Switches
entities:
- switch.st_curtain_library_ae4a
states:
- state: 'on'
class: 'switch-on'
- state: 'off'
class: 'switch-off'
action:
- service: toggle
위 내용의 풀이는 아래와 같다.
groups - 맨 처음 하나만 적으면 된다. 그 밑에 내용이 하나의 그룹으로 이루어져있다는 분리구문과 같다.
name - 해당 장치의 구분명이다. 사용자가 임의로 부여하는 명칭이므로 적절한 이름을 부여하면 된다.
entities - 내가 등록 할 디바이스의 Entity 를 적어 넣으면 된다.
Entity 를 보는 방법은 HA의 메뉴에 <> 라고 표시된 버튼을 누르면 확인 가능하다. 풀네임을 적어야 하므로 주의!
states - 등록된 디바이스의 state에 따라 CSS 파일에서 어떤 내용을 끌어올지 등록한다.
내 경우 switch-on 과 switch-off를 빨강색, 초록색으로 등록해 두었으며 그에 맞게 색이 변하길 원하므로 위와 같이 등록한다.
만약 등록한 디바이스의 상태가 on/off 가 아니라 open/closed 등의 다른 내용이라면 그에 맞게 변경해주면된다.
state는 등록한 디바이스와 맞게 설정해 주어야 하지만 class는 공용으로 사용 할 수 있으므로
switch-on 이 아니라 red 같은 식으로 CSS 파일에 등록해도 된다.
action - 엑션은 아직 파악 하지 못하였다.
데모로 적혀있던 내용에도 특별한 내용이 적혀 있지 않아 파악하지 못하였으나 스위치류는 Service: toggle 로 등록하면 되고
아날로그나 스트링은 특별히 등록하지 않았다.
추후 사용방법을 알게 되면 추가할 것.
4. CSS 파일 수정
CSS 파일은 처음 설치에서 보이지 않았겠지만 www 폴더내부에 있다.
경로는 www\custom_ui\floorplan 내부에 floorplan.css 라는 파일이 있다.
이 파일 또한 데모버전으로 내용이 적혀있으므로 참고해도 좋다.
이 파일에서 남겨두어야 할 내용은
svg, svg * {
vector-effect: non-scaling-stroke !important;
pointer-events: all !important;
}
뿐이다.
다른 내용을 그대로 두고 사용해도 좋지만 헷갈리므로 다 주석처리하고 아래 내용으로 변경하였다.
/* Light */
.light-off {
fill: #1DDB16 !important;
}
.light-on {
fill: #C90000 !important;
}
/* Switch */
.switch-off {
fill: #1DDB16 !important;
}
.switch-on {
fill: #C90000 !important;
}
fill |
면 색 |
fill-opacity |
면 불투명도 |
stroke |
선 색 |
stroke-opacity |
선 불투명도 |
stroke-width |
선 굵기 |
위 내용이 가장 자주 쓰인다.
이 외에도 애니메이션 설정 등이 있지만 추후 다른 글로 자세히 적어보겠다.
그 외로 .light-on 은 내가 사용할 class 명이므로 참고!
5. 예시
현재 나는 Floorplan을 구축하다 말았다.
곧 또다시 이사갈 예정이라 임시로 구축해 놓은 Floorplan이 있는데
당장 필요한 내용만 추가하였으므로 별볼일 없기도 하고 디자인쪽으론 잼병이기 때문에 볼품없기도 하다.
그럼에도 참고용으로 올려보자면
내가 Floorplan을 파고 들었던 가장 큰 이유는 이것이다.
직관적으로 보기가 너무 편리하다.
그동안 HA의 기본 카드형식 View도 사용해보았고 SmartThings와 연동하는 Action Tiles도 사용해보았지만 내 취향에 카드형식이나 블럭형식은 맞지 않았다.
현장에서 내가 구축해주는 모든 HMI는 이런식으로 도면을 기반으로 해서 직관적이게 볼 수 있는데
막상 집에서는 그렇게 못하니 답답할 따름이었으나
Floorplan을 만나고 이제야 내 취향에 한걸음 다가간 느낌이다.
문제는 디자인 센스가 영 꽝이라서 이쁘게 못하겠다는 문제가 있다만 그 문제는 추후 해결해 나가기로 한다.
6. 다음 예고
Floorplan, 평면도 제작을 위한 Inkscape (잉크스케이프) 설명
CSS 파일 심화 (애니메이션 등)
'지이노 > ReView & Using' 카테고리의 다른 글
Raspberry Pi (Hassbian) 에 Docker 설치하기 (0) | 2018.10.29 |
---|---|
Doona+ 카시트 겸 유모자 살펴보기 (0) | 2018.09.10 |
NOONEE 주얼리에서 결혼반지 맞추기 (6) | 2018.01.20 |
라즈베리파이3 Hassbian(해즈비안) 설치하기 (0) | 2017.10.28 |
라즈베리파이3 언박싱하기 (0) | 2017.10.15 |