hacollector는 Home Assitant에서 RS485 프로토콜을 지원하는 아파트를 제어하고 정보를 보여주기 위해 mqtt를 사용해서 정보를 주고 받는 파이썬 어플리케이션입니다.
(주의) 이 버전은 Kocom 월패드, LG System Aircon만 지원합니다.
- 현재 KOCOM 월패드, LG System Aircon을 기준으로 개발되었고, 다음과 같은 기기의 컨트롤 혹은 모니터링이 가능합니다.
- 전등
- On/Off
- 플러그
- On/Off
- 난방
- 온도조절
- 난방
- 송풍
- 전원
- 공기순환기(Himpel)
- On/Off
- 세기 조절
- CO2 농도 센서 기능
- 도시가스
- Off Only(for Safety).
- 엘리베이터
- Call Only
- 시스템에어컨(LG)
- 온도조절
- 냉방
- 제습
- 송풍
- 전원
- 전등
아파트 환경: RS485프로토콜을 지원하는 Kokomo Wallpad. LG System Aircon.
시스템 : OS : 리눅스 혹은 MacOS MQTT: mosquitto mqtt Python: 3.9.7 이상
장비 : EW11 RS485 Modbus to Ethernet Gateway 2EA : Kocom WallPad용 1개, LG System Aircon용 1개
- EW11을 설치하고 테스트하는 방법은 HA동호회 등에서 관련 정보를 참고 하십시오. 여기서는 정상적으로 설치 되고 동작한다는 가정을 합니다.
- 다양한 버전을 참고하여 개발하였습니다. 설정파일 등이 기존에 공개된 프로그램에 사용하던 방식과 유사한 부분이 많습니다. 기본적으로 config.py를 수정해서 바꿀 수 있습니다.
- thread를 사용하지 않고, asyncio를 사용하고 있습니다.
- Python-dotenv를 사용하여 .env파일에서 일부분의 정보를 읽어들입니다. (주로 테스트용입니다.)
- Dockerfile을 예제로 제공합니다.
- Himpel 공기순환기에 대한 자료가 없어서 완벽하지는 않지만, Himpel에서 제공하는 CO2 농도 센서를 추가 했습니다.
- LG System Aircon의 경우에 패킷을 분석해서 공유해 주신 여러분들 덕분에 모든 기능은 아니지만 여름에 필요한 정도는 구현이 되어있습니다. (정리가 덜 되어서 엉성한 코드지만 작년 한 해 만들어서 잘 사용했고, 필요하신 분들이 계실 것 같아서 공유하는 가장 큰 이유 입니다.)
hacollector는 환경을 설정하는 방법이 두가지가 있습니다. config.py를 수정하는 방법과 .env를 사용해 환경변수를 세팅하는 방법을 선택적으로 사용 가능합니다.
- config.py를 수정하는 방법
- 파이선 소스를 직접 수정하는 방법에 속하며, 이전 소스들이 비슷한 방식을 사용합니다. 파이선 문법에 맞춰 설정해야 하지만, 쉽게 이해하고 수정이 가능합니다.
- 설정할 수 있는 값이 다양하며, mqtt 토픽의 이름을 바꿀 수도 있습니다.
- 단, 환경변수를 추가하여 설정을 한 경우는 환경변수의 값이 우선됩니다.
- .env파일 혹은 환경변수를 수정하는 방법
- 도커 이미지를 사용하는 경우나, 파이선 소스는 수정하지 않고 필요한 값만 수정하는데 유리합니다.
- hacollector가 접속해야 하는 MQTT서버, EW11 Gateway IP 설정, 방 이름 및 컨트롤 가능한 전등이나 플러그 설정, 디버깅 레벨 설정등이 가능합니다.
- 단, .env에 값이 있는 경우(환경변수에 설정해도 같습니다.) config.py의 설정 값을 대치합니다.
- 방 이름 설정에서 방과 방사이의 구분은 콜론(‘:’) 문자를 사용합니다.