ESPHome bluetooth_proxy 장치를 사용하여 HomeAssistant에서 지역(방)별로 Bluetooth 장치를 추적합니다.
(결국) 장치 위치를 삼각 측량합니다! 지도에서요. 아마도.
버뮤다의 목표는 모든 블루투스 장치를 추적하고 Homeassistant가 집에서 해당 장치가 어디에 있는지 알려줍니다. 필요한 유일한 추가 하드웨어는 블루투스 프록시 역할을 하는 esphome을 실행하는 esp32 장치입니다. 또는 Shelly Plus 장치도 이 기능을 수행할 수 있습니다.
device_tracker
엔터티를 생성합니다.bermuda.dump_devices
서비스를 통해 장치의 포괄적인 json/yaml 덤프와 각 블루투스 수신기로부터의 거리를 제공합니다. esphome의 bluetooth_proxy
구성 요소를 사용하여 HA에 블루투스 프록시 정보를 제공하는 하나 이상의 장치입니다. 나는 저렴하고 배포가 쉽기 때문에 D1-Mini32 보드를 좋아합니다. Shelly Plus 블루투스 프록시 장치는 잘 작동하는 것으로 보고되었습니다. 기본적으로 지원되는 Bluetooth 장치만 지원됩니다. 즉, MQTT 장치 등에 대한 현재 또는 계획된 지원이 없음을 의미합니다.
HA 호스트의 USB Bluetooth는 광고 패킷에 타임스탬프를 표시하지 않으므로 이상적이지 않습니다. 그러나 간단한 "집/집 아님" 추적에 사용할 수 있으며 현재 지역 거리 지원이 활성화되어 있습니다.
추적하려는 일부 블루투스 BLE 장치. 스마트 시계, 비콘 타일, 온도계 등
HACS를 통해 버뮤다를 설치합니다.
작동 방식과 집에 맞게 버뮤다를 구성하는 방법에 대한 자세한 내용은 Wiki를 참조하세요.
설치 후 설정, 장치 및 서비스에 통합이 표시됩니다.
CONFIGURE
버튼을 눌러 구성 대화 상자를 확인하세요. 하단에는 시스템에서 볼 수 있는 블루투스 장치를 입력/나열할 수 있는 필드가 있습니다. 장치를 선택하면 구성된 장치 목록에 해당 장치가 추가되고 해당 장치에 대한 센서 엔터티가 생성됩니다. 설정은 어떻게 작동합니까?를 참조하세요. 자세한 내용은
장치 화면을 선택하면 현재 센서 및 기타 정보가 표시됩니다. "표시되지 않음" 섹션에는 기본적으로 비활성화된 추가 센서가 있습니다(스크린샷에는 이러한 센서 중 일부가 이미 활성화되어 있음을 보여줍니다). 이러한 속성을 편집하여 장치 위치에 대한 더 자세한 데이터를 활성화할 수 있습니다. 하지만 이는 주로 문제 해결이나 개발을 위한 것입니다.
센서 정보에는 속성 영역 이름 및 ID, 관련 MAC 주소 등도 포함됩니다.
설정, 사람에서 모든 사람/사용자의 집/외출 상태를 추적하도록 버뮤다 장치를 정의할 수 있습니다.
Wiki의 FAQ를 참조하세요!
이것을 개선하고 싶나요? 엄청난! 이것은 나의 첫 번째 HA 통합이고 나는 프로그래머라기보다는 훨씬 더 greybeard 시스템 관리자라는 점을 명심하십시오. 만약에 내가 어리석은 짓을 하고 있는 곳에서 나는 정말로 약간의 개선을 환영합니다!
bermuda.dump_devices
서비스를 사용하여 내부 상태를 검사하는 것으로 시작할 수 있습니다.
bermuda.dump_devices
서비스 사용 bermuda.dump_devices
서비스를 호출하면 버뮤다가 상태를 추적하고 계산하는 데 사용하는 내부 데이터 구조의 전체 덤프를 얻을 수 있습니다. 이는 현재 상황을 파악하고 문제를 해결하는 데 도움이 될 수 있으며, 템플릿 센서 등으로 해결할 수 있는 매우 맞춤화된 요구 사항이 있는 경우 사용하는 데 도움이 될 수 있습니다.
매개변수 없이 호출되면 서비스는 모든 데이터를 반환합니다. 더 쉽게 작업할 수 있도록 결과 데이터를 제한하거나 형식을 다시 지정할 수 있는 매개변수를 사용할 수 있습니다. 특히 addresses
매개변수는 하나 이상의 MAC 주소(또는 iBeacon UUID)와 관련된 데이터만 반환하는 데 유용합니다. Developer Tools
아래 홈 어시스턴트의 Services
페이지에서 매개변수에 대한 정보를 확인하세요.
중요: 자신의 템플릿 등에 대해 이 호출의 결과를 사용하기로 결정한 경우 형식이 릴리스마다 변경될 수 있으며 반드시 "급격한 변경"으로 간주되지는 않는다는 점을 명심하세요. 이는 구조가 게시된 API가 아닌 내부적으로 사용되기 때문입니다. 즉, 구조의 필드 이름이 바뀌거나 이동되었는지 여부를 릴리스 노트에 표시하기 위한 노력이 있을 예정이지만 새 항목을 추가하는 경우에는 표시되지 않습니다.
bluetooth_tracker
및 ble_tracker
통합은 "집/집 아님" 결정을 제공하기 위해서만 구축되었으며 "지역" 기반 위치는 수행하지 않습니다. (참고: "구역"은 집 외부의 장소이고 "구역"은 집 내부의 방/구역입니다.) 나는 코어에 맞지 않을 수도 있는 방식으로 이것을 자유롭게 실험하고 싶었지만, 언젠가는 적어도 이 중 일부가 코어 코드베이스에서 자리를 잡을 수 있기를 바랍니다.
"모니터" 스크립트는 독립형 Pi를 사용하여 블루투스 데이터를 수집한 다음 이를 MQTT로 펌핑합니다. 이것은 제가 홈 블루투스 네트워킹의 미래라고 생각하는 bluetooth_proxy
기능을 사용하지 않습니다(글쎄, 어쨌든 그것은 우리 집용입니다!).
ESPrescent는 멋져 보이지만 내 노드를 비 esphome 전용으로 사용하고 싶지 않으며 현재 HA의 블루투스 프록시 기능을 활용하지 않습니다. 나는 아마도 상당한 양의 ESPrescense 바퀴를 재창조하고 있을 것입니다.
반드시 HACS 인터페이스를 사용하세요! HACS가 설치되면 Integrations
으로 이동하여 오른쪽 상단의 미트볼 메뉴를 클릭하고 Custom Repositories
선택합니다. agittins/bermuda
Repository
필드에 붙여넣고 Category
에 대해 Integration
선택합니다. Add
클릭합니다.
이제 Bermuda BLE Trilateration
통합을 추가할 수 있습니다. 완료한 후에는 Homeassistant를 다시 시작한 다음 Settings
, Devices & Services
에서 Add Integration
선택하고 Bermuda BLE Trilateration
검색해야 합니다. 근처에 있는 블루투스 장치를 감지하는 것만으로도 자동 감지될 수도 있습니다.
통합이 추가되면 Devices and Services
, Bermuda BLE Trilateration
에서 Configure
클릭하여 장치를 설정해야 합니다.
Configuration
대화 상자에서 통합을 추적하려는 Bluetooth 장치를 선택할 수 있습니다.
아래 지침은 템플릿의 일반적인 참고 사항입니다.
configuration.yaml
있는 위치).custom_components
디렉터리(폴더)가 없으면 새로 만들어야 합니다.custom_components
디렉터리(폴더)에 bermuda
라는 새 폴더를 만듭니다.custom_components/bermuda/
디렉터리(폴더)에서 모든 파일을 다운로드합니다.이에 기여하고 싶다면 기여 지침을 읽어보세요.
이 프로젝트는 @oncleben31의 Home Assistant Custom Component Cookiecutter 템플릿에서 생성되었습니다.
코드 템플릿은 주로 @Ludeeus의 Integration_blueprint 템플릿 Cookiecutter User Guide**에서 가져왔습니다.