Homepoint는 ESP32 칩셋에서 실행되는 MQTT 및 HomeKit 연결 Smarthome 장치용 화면 기반 인터페이스입니다.
특징
데모
설치
짓다
구성
장면 및 장치
WiFi 및 MQTT
NTP 시간(선택 사항)
예
로드맵
알려진 버그 및 문제
기여
나에게 커피를 사다
특허
전면 화면에서 장면(장치 그룹)을 보고 트리거합니다 .
장면을 살펴보며(표시기를 탭하거나 버튼을 길게 눌러) 개별 장치를 트리거합니다 .
여러 장치에서 부분적으로 켜져 있는 장면을 한 눈에 확인하세요 .
온도, 습도, 공기질 센서 및 Tasmota 에너지 판독값을 지원합니다.
원격 구성 : 웹 인터페이스를 통해 HomePoint를 구성하고 재부팅합니다. 다시 플래시할 필요가 없습니다.
무선 업데이트(베타) : 무선으로 무선으로 HomePoint의 새 버전을 플래시합니다.
HomeKit 스위치 지원 (Homepoint에서 전환하려면 Home 앱에서 자동화 설정)*
터치 스크린 또는 버튼 기반 탐색을 모두 지원합니다.
반응형 : 장치가 다른 곳에서 트리거될 때마다 화면이 업데이트됩니다.
JSON 파일을 통해 쉽게 구성할 수 있으며 추가 코드가 필요하지 않습니다.
화면 보호기는 10분 후에 화면을 꺼서 전원을 절약합니다.
상태 표시줄에는 WiFi 및 MQTT 연결과 시간이 표시됩니다.
비상 안전 모드 : 구성이 손상된 경우 원격 액세스를 위한 비상 안전 모드가 제공됩니다.
사전 컴파일된 바이너리 : 컴파일하지 않고 ESP32 장치에서 HomePoint를 플래시하기만 하면 됩니다.
*현재 실험 지점에 있습니다.
HomePoint는 일반 ESP32 모듈 또는 M5Stack에서 플래시할 준비가 된 사전 컴파일된 .bin 파일 2개로 제공됩니다. 하드웨어 설정에 대한 자세한 내용은 Wiki에서 확인할 수 있습니다.
설치 단계:
https://github.com/espressif/esptool/releases에서 ESPTool을 다운로드하세요.
python setup.py install
로 ESPTools 설치
esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(또는 M5Stack의 경우 homepoint_m5stack.bin)을 실행합니다.
또는 아래 설치 비디오를 시청하십시오.
홈포인트는 ESP-IDF SDK를 사용하여 생성되었습니다.
자세한 빌드 지침은 Wiki에서 확인할 수 있습니다.
구성은 data/config.json
에 있습니다.
HomePoint는 각각 장치를 선택할 수 있는 두 가지 유형의 Scene을 지원합니다.
장면 유형 | 장치 유형 |
---|---|
조명, 스위치 | (없음, 모든 장치는 스위치로 예상됨) |
감지기 | 사용자 정의 가능한 아이콘(singleValue/combinedValues)을 사용하여 한 번에 하나 또는 두 개의 값을 표시합니다. |
그룹화된 센서는 화면 공간으로 인해 최대 2개의 장치를 지원합니다.
조명 및 스위치는 그룹 내에서 무한한 수의 장치를 지원합니다.
일부 센서는 JSON을 데이터 형식으로 사용하며, 이 경우 키를 정의할 수 있습니다. 이는 센서 json 페이로드의 모든 수준에 있을 수 있습니다. Tasmota 스마트 플러그의 경우 키 값 "Power"를 사용하여 현재 전력 소비를 표시할 수 있습니다.
WiFi 및 MQTT 자격 증명은 최상위 수준에서 정의됩니다.
올바른 시간대를 설정하려면 NTP TZ 설정을 복사하여 timezone
키에 붙여넣으세요.
IL9341 디스플레이 장치 중 일부는 터치스크린 좌표가 디스플레이에 대응하는 방식이나 LED 백라이트가 제어되는 방식 등에서 다른 것처럼 보입니다. 따라서 구성 파일의 기본값을 재정의할 수 있는 몇 가지 옵션을 제공합니다.
열쇠 | 유형 | 값 |
---|---|---|
"led핀 풀업" | 부울 | true 또는 false - 장치에 따라 풀업/다운이 가능한 백라이트 전력 제어 |
"화면회전 각도" | 정수 | 회전 매개변수는 0, 1, 2 또는 3일 수 있으며 90도 각도로 증가합니다. |
"화면보호기분" | 정수 | 디스플레이가 꺼질 때까지의 시간(분)(기본값 10) |
"touchXAxisInverted" | 부울 | 기본값: false , 잘못 정렬된 경우 터치 스크린의 X축을 반전합니다. |
"touchYAxisInverted" | 부울 | 기본값: true , 잘못 정렬된 경우 터치 스크린의 Y축을 반전합니다. |
"디스플레이색상 반전됨" | 부울 | 기본값: false , 색상 공간 반전(예: ILI9342C 디스플레이의 경우) |
MQTT 주제는 MQTT 사양에 따라 대소문자를 구분합니다.
{ "wifi": "MyWifiSSID", "password": "내 Wi-Fi 비밀번호", "hostname": "선택적 호스트 이름", "login": "admin", "webpass": "admin", "mqttbroker": "mqtt: //192.168.1.2", "mqtttusername": "mqtttusername", "mqttpasswd": "mymqttpassword", "timezone": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "scenes": [{ "name": "거실" , "type": "조명", "icon": "거실", "devices": [{ "name": "Some Light", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue 색상 램프 1", "onValue": " 참", "offValue": "거짓" }, { "name": "문 조명", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /lights/Hue 컬러 램프 1", "onValue": "true", "offValue": "false", "icon": "door" }, ] }, { "name": "침실", "type": "센서", "icon": "door", "devices": [{ "name": "온도 DHT 센서", "type": "singleValue", " jsondata": true, "firstIcon": "온도_소형", "firstKey": "온도", "getTopic": "침실/esptemp" }, { "name": "Tasmota 스마트 플러그", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon":"wattage_small", "getTopic": "tele/DVES_2F73BE/ 감지기" }] }] }
보다 완벽하게 구성된 예는 여기에서 확인할 수 있습니다.
Homebridge-Hue 및 HomeAssistant/ZigBee2MQTT 통합에 대한 문서
홈킷 지원
테스트
버그를 발견하거나 도움이 필요하면 주저하지 말고 문제를 열어주세요 :)
기여를 환영합니다! 해킹해서 풀 리퀘스트(Pull Request)를 열면 됩니다. 하지만 이미 존재하는 코드 스타일을 따르십시오(즉, 탭 없음, 공백 없음).
저는 ESP32에서 C++에 대해 더 많이 배우고 스마트홈의 구체적인 문제를 해결하고 싶었기 때문에 여가 시간에 HomePoint를 개발했습니다.
개발이 계속 진행됨에 따라 저는 이 프로젝트를 오픈 소스로 만들고 제작자 커뮤니티가 더 쉽게 접근하고 사용자 친화적으로 만들 수 있는 방법을 생각했습니다.
홈포인트나 이 작품을 즐겨 사용하신다면 소액 기부를 고려해 보세요. 하지만 걱정하지 마세요. 어쨌든 저는 이 작업을 계속할 것입니다 ;-).
MIT © 마티아스 프릭