나는 서버를 사용한다 카트전자 WES 몇 년 전부터 이 장치는 전기 패널에 통합되어 텔레인포 또는 미터식 앰프 클램프를 통한 전기, 물, 가스 등 가정의 모든 에너지 소비를 모니터링할 수 있는 작은 상자입니다. 그 자체로 충분할 정도로 완벽한 서버입니다. 하지만 Home Assistant는 매우 잘 설계된 에너지 테이블을 제공하므로 WES 서버를 이 홈 자동화 시스템에 통합할 수 있기를 원했습니다. 이 가이드는 당신도 그렇게 하는 데 도움이 될 것입니다.

전제 조건
물론 기능적인 WES 서버가 네트워크에 연결되어 있어야 하고 기능적인 홈어시스턴트 설치도 필요합니다.
우선 홈어시스턴트 구성 파일이 오버로드되지 않도록 개발자가 기본적으로 계획한 여러 파일로 분할했습니다. 여기에는 특히 두 개의 파일이 있습니다.
- 모든 WES 센서의 구성을 호스팅할 센서.yaml
- customize.yaml, 홈어시스턴트 에너지 테이블에서 올바르게 인식되도록 이러한 센서를 사용자 정의할 수 있습니다.
이렇게 하려면 아직 파일이 없는 경우 Configuration.yaml 파일에 다음 줄을 추가하면 됩니다.
센서: !include 센서.yaml
#홈어시스턴트 맞춤설정
가정 도우미:
사용자 정의: !includecustom.yaml
홈어시스턴트에서 WES 서버 센서 생성
불행하게도 WES 서버는 MQTT 연결을 제공하지 않습니다. 그러나 이는 이미 몇 년 동안 발표되어 왔습니다. 안타깝지만, 그랬더라면 우리 삶이 훨씬 편해졌을 테니까요. 그러나 WES는 수집한 정보를 읽을 수 있는 여러 파일을 제공합니다. 가장 완전한 파일은 의심할 여지없이 data.cgx이며 http://IP_DU_WES/data.cgx에서 사용할 수 있습니다. 이것은 여러 파일 사이를 저글링하는 것을 피하기 위해 사용할 것입니다.
모든 유용한 정보를 다음 형식으로 통합합니다.

홈어시스턴트에서 원하는 다양한 정보를 선언하기만 하면 됩니다.
이렇게 하려면 Sensors.yaml 파일(아직 없는 경우 homeassistant 디렉터리에 생성됨)에서 WES 서버에 대한 연결을 선언해야 합니다.
-플랫폼: 휴식
이름: 웨스데이터
#WES의 IP로 교체
리소스: http://IP_DU_WES/data.cgx
스캔 간격: 60
방법: GET
인증: 기본
#시스템 사용자 이름과 비밀번호로 바꾸세요
사용자 이름: 관리자
비밀번호: 웨스
json_attributes_path: "$.data"
json_속성:
- "틱1"
- "tic2"
- "tic3"
- "충동"
- "클램프"
- "온도"
- "릴레이"
- "입구"
- "아날로그"
- "가상_스위치"
- "변수"
value_template: '확인'
기본 필드를 사용하지 않는 경우 WES 서버의 IP 주소와 사용자 이름 및 비밀번호를 나타내기 위해 빨간색 필드를 바꿔야 합니다. “scan_interval”을 변경하여 파일을 더 자주 또는 덜 자주 폴링할 수도 있습니다. 여기서는 매분마다 폴링하도록 설정되어 있으며 대부분의 목적에 적합합니다. 반복적인 호출로 인해 서버에 과부하가 걸릴 필요가 없습니다.
다음은 다양한 센서의 선언입니다. 예를 들어 피크/비피크 요금제를 사용 중인 경우 Teleinfo를 통해 전기 계량기 정보를 읽으려면 다음을 수행하십시오.
westic1hp:
Friendly_name: "피크 시간 지수"
고유 ID: westic1hp
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["H_PLEINE"]
westic1hc:
Friendly_name: "비수기 시간 지수"
고유 ID: westic1hc
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["H_CREUSE"]
원하는 경우 “Friend_name” 필드를 사용자 정의할 수 있습니다. 이는 홈어시스턴트에 표시되는 이름입니다. 나머지는 변경하면 안 됩니다.
저와 같이 Tempo를 구독하고 계시다면 생성할 센서가 몇 개 더 있습니다:
#템포구독이라면
westic1bleuhp:
Friendly_name: "블루 피크 시간 지수"
고유 ID: westic1bleuhp
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes | 뜨다 }}["BBRHPJB"]
westic1bleuhc:
Friendly_name: "블루 피크 외 시간 지수"
고유 ID: westic1bleuhc
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["BBRHCJB"]
westic1blanchp:
Friendly_name: "화이트 피크 시간 지수"
고유 ID: westic1blanchp
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes | 뜨다 }}["BBRHPJW"]
westic1blanchc:
Friendly_name: "화이트 오프 피크 시간 지수"
고유 ID: westic1blanchc
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["BBRHCJW"]
westic1rougehp:
Friendly_name: "레드 피크 시간 지수"
고유 ID: westic1rougehp
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes | 뜨다 }}["BBRHPJR"]
westic1rougehc:
Friendly_name: "빨간색 비수기 지수"
고유 ID: westic1rougehc
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["BBRHCJR"]
또한 주입(에너지 생산 계약이 있는 경우), 순간 소비 또는 전압과 관련된 정보도 검색할 수 있습니다.
westic1inj:
Friendly_name: "인덱스 삽입"
고유 ID: westic1inj
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["INJECTION"]
westic1pap:
Friendly_name: "즉시 소비"
고유 ID: westic1pap
device_class: 명백한_전력
측정 단위: 'VA'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }}["PAP"]
westic1전압:
Friendly_name: "소비 전압"
Unique_id: westic1tension
device_class: 전원
측정 단위: 'V'
값_템플릿: >-
["tic1"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["TENSION1"]
집에는 태양광 생산물 재판매를 위한 두 번째 Linky 미터가 있습니다(100% 재판매 계약). WES 서버도 이 계량기에 연결되어 있으므로 그곳에서 생산 정보를 검색할 수 있습니다.
#태양광 생산을 위해 여기에 사용된 두 번째 ICT 미터
westic2prod:
Friendly_name: "생산 지수"
고유 ID: westic2prod
device_class: 에너지
측정 단위: 'Wh'
값_템플릿: >-
["tic2"] {{ states.sensor.wesdata.attributes| 뜨다 }}["PRODUCTEUR"]
westic2pap:
Friendly_name: "즉시 소비"
고유 ID: westic2pap
device_class: 명백한_전력
측정 단위: 'VA'
값_템플릿: >-
["tic2"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["PAP"]
westic2전압:
Friendly_name: "생산 전압"
Unique_id: westic2tension
device_class: 전원
측정 단위: 'V'
값_템플릿: >-
["tic2"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["TENSION1"]
사용량이 적은 시간 상태를 표시할 수 있는 또 다른 센서를 추가했습니다. westic1tarif = 1이면 사용량이 적은 시간에 있는 것입니다. 이는 예를 들어 경제적인 속도에 있을 때만 특정 기계를 트리거하는 시나리오에서 매우 유용한 데이터입니다. :)
# 사용량이 적은 시간인지 확인하는 센서
westic1가격:
Friendly_name: "현재 가격"
고유 ID: westic1price
값_템플릿: >-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
wesheurecruse:
Friendly_name: "비수기 시간"
Unique_id: wesheurecruse
값_템플릿: >-
["tic1"] {states.sensor.wesdata.attributes.lower()에서 "dig"인 경우 %}["PTEC"]
1
{% 또 다른 %}
0
{% 종료 %}
Tic(텔레인포) 판독 외에도 WES는 미터식 전류 클램프를 사용하여 4개의 개별 전기 라인 소비를 모니터링할 수도 있습니다. 예를 들어 온수기, 전기 자동차 충전소, 난방 장치 등의 소비량을 모니터링할 수 있습니다. 다음 코드를 사용해야 합니다.
#특정 특정 위치를 따르는 암페어 미터법 클램프
wespince1inst:
Friendly_name: "순간 온수기"
고유 ID: wespence1inst
device_class: 현재
측정 단위: 'A'
값_템플릿: >-
["pince"] {{ states.sensor.wesdata.attributes| 뜨다 }}["I1"]
wespince1전체:
Friendly_name: "전체 온수기"
고유 ID: wespence1total
device_class: 에너지
측정 단위: 'kWh'
값_템플릿: >-
["pince"] {{ states.sensor.wesdata.attributes| 뜨다 }}["INDEX1"]
wespince1와트:
Friendly_name: "온수기 소비량"
Unique_id: wespence1watt
device_class: 전원
측정 단위: 'W'
값_템플릿: >-
기본적으로 WES는 순간 소비량(암페어)과 소비 지수만 보고합니다. 순간적인 소비량도 와트 단위로 알고 싶었기 때문에 “wespince1watt”를 얻기 위해 작은 계산을 추가했습니다. “Friend_name”을 수정하여 용도에 맞는 이름을 사용할 수 있습니다. 4개의 가능한 펜치를 사용하는 경우 이 코드를 복사하기만 하면 됩니다(나중에 다운로드할 수 있도록 파일 전체를 제공합니다).
WES 서버에는 예를 들어 물이나 가스 소비량을 모니터링하는 등 다양한 용도로 사용할 수 있는 펄스 카운터도 있습니다. 집에서는 첫 번째 센서를 사용하여 내 위치를 추적합니다. 수량계:
#물이나 가스 등에 사용되는 충격 센서
wespulse1:
Friendly_name: "수량계"
고유 ID: wespulse1
device_class: 물
측정 단위: 'L'
값_템플릿: >-
["impulsion"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["INDEX1"]
사용법에 따라 이름뿐만 아니라 “device_class” 및 “unit_of_measurement”도 사용자 정의해야 합니다. 다음과 같은 정의를 찾을 수 있습니다. 여기서 가능한 다른 값.
WES에 연결된 항목에 따라 다른 정보를 검색할 수 있습니다. 특히 다음 코드를 통해 온도 판독값(최대 30개 프로브!)이 있습니다.
#온도 프로브, 최대 30개까지 가능
wessonde1:
Friendly_name: "거실"
고유 ID: wessonde1
device_class: 온도
측정 단위: '°C'
값_템플릿: >-
["temp"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["SONDE1"]
또는 릴레이 상태:
#계전기
웨스릴레이1:
Friendly_name: "릴레이 1"
고유 ID: wesrelai1
값_템플릿: >-
["relais"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["RELAIS1"]
웨스릴레이2:
Friendly_name: "릴레이 2"
고유 ID: wesrelai2
값_템플릿: >-
["relais"] {{ states.sensor.wesdata.attributes| 뜨다 }} ["RELAIS2"]
아날로그 입력, 가상 스위치, 심지어 변수도 있습니다.
올바른 들여쓰기와 길을 찾는 데 도움이 되는 설명이 포함된 전체 코드를 이 파일에서 찾을 수 있습니다.
물론 귀하의 필요에 따라 조정됩니다. 저는 TIC 미터 2개, 미터법 앰프 클램프 4개, 펄스 미터만 사용합니다.
구성이 저장되면 “개발 도구”로 이동한 다음 “구성 확인”을 클릭하여 파일 구문에 문제가 없는지 확인해야 합니다.

모든 것이 정상이면 다시 시작을 클릭하기만 하면 됩니다.
홈어시스턴트가 다시 시작되면 설정 / 장치 및 서비스 / 엔터티로 이동하여 검색 창에 “wes”를 입력하면 WES용으로 생성된 모든 센서를 찾을 수 있습니다.

여기에서 이를 사용하여 시나리오를 트리거하고 소비 모니터링 대시보드를 만드는 등의 작업을 수행할 수 있습니다.
하지만 아직 홈어시스턴트 에너지 대시보드에서는 사용하지 마세요.
WES를 홈어시스턴트 에너지 테이블에 통합
홈어시스턴트 에너지 대시보드는 정말 잘 만들어졌습니다. 그러나 인덱스나 총 소비 카운터만 허용됩니다. 인덱스용 센서를 만들었기 때문에 이것이 WES에 좋다고 말할 수 있습니다. 에너지 대시보드의 호환 장치 목록에 표시되는 것을 제외하고 이러한 센서에는 “state_class: total” 유형의 인수가 있어야 합니다. 이 인수를 MQTT 센서 구성에 직접 넣을 수 있는 경우, 여기서 WES용으로 생성된 센서에는 해당되지 않습니다. 왜냐하면 우리는 MQTT가 아닌 REST 호출의 컨텍스트에 있기 때문입니다.
다행스럽게도 총 소비량을 나타내는 각 센서에 대해 다음 유형의 코드를 추가하여 사용자 정의.yaml 파일에서 센서 선언을 수정할 수 있습니다.
센서.westic1bleuhp:
state_class: 합계
장치:
식별자: "WES 서버"
이름: "WES 서버"
모델: "WES"
제조사 : "Cartelectronic"
여기에 내 전체 파일을 남깁니다.
간단히 homeassistant 디렉토리에 넣은 다음 홈어시스턴트를 다시 시작하세요(코드가 올바른지 확인한 후).
그런 다음 마침내 통신, 소비, 생산, 물 소비 등에 대한 다양한 지수를 에너지 대시보드에 추가할 수 있습니다.

잠시 후 여기에 피크가 아닌 시간과 피크 시간(연한 파란색)에 대한 세부 정보가 포함된 소비 모니터링이 제공됩니다. 또한 태양광 생산량을 노란색으로 모니터링합니다.

같은 방식으로 다른 개별 장치 중에서 온수기의 소비량 모니터링을 찾습니다.

그리고 거기에 있습니다!
결론
점차적으로 홈 자동화 시스템을 홈 어시스턴트로 마이그레이션하면서 WES 서버를 통합하는 방법을 연구하는 데 많은 시간을 보냈습니다. 왜냐하면 Jeedom과 달리 바로 사용할 수 있는 홈 어시스턴트 플러그인이 없기 때문입니다. 다음을 포함하여 다양한 주제를 다룹니다.
- 에이 WES 제조업체 포럼에 게시, 카트전자
- 에이 HACF 포럼에 게시
홈어시스턴트 문서를 통해 장치 작동 방식을 더 잘 이해할 수도 있습니다. REST 센서.
기본 MQTT 호환성 덕분에 작업이 훨씬 쉬워졌지만 궁극적으로 우리는 WES에서 모든 데이터를 복구하여 홈어시스턴트에서 완벽하게 사용할 수 있게 되었습니다. 이것이 가장 중요한 것입니다. 통합은 현재 한 달 남짓 동안 효과가 있었고 보고할 문제는 없습니다. WES를 사용하면 기본적으로 많은 일을 관리하므로 센서를 여러 개로 늘릴 필요가 없습니다. 이 가이드가 저처럼 방법을 찾고 있던 누군가에게 도움이 된다면!