サーバーを使用します カルテエレクトロニクス WES これは配電盤に統合された小さなボックスで、テレインフォ経由の電気やメートル法のアンプクランプ、水道、ガス、その他多くのものなど、家庭のすべてのエネルギー消費量を監視できます。非常に完成度の高いサーバーなので、それだけで十分です。しかし、Home Assistant は非常によく設計されたエネルギー テーブルを提供するため、WES サーバーをこのホーム オートメーション システムに統合できるようにしたいと考えていました。このガイドは、同じことを行うのに役立ちます。

前提条件
もちろん、機能する WES サーバーがネットワークに接続されており、機能するホーム アシスタントがインストールされている必要があります。
まず、ホーム アシスタント設定ファイルが過負荷にならないように、開発者がネイティブに計画したいくつかのファイルに分割しました。ここでは特に 2 つのファイルを扱います。
- sensors.yaml 、すべての WES センサーの構成をホストします。
- Customize.yaml: これらのセンサーをカスタマイズして、ホーム アシスタントのエネルギー テーブルで正しく認識されるようにします。
これを行うには、configuration.yaml ファイルがまだない場合は、これらの行を追加するだけです。
センサー: !センサー.yaml を含める
#ホーム アシスタントのカスタマイズ
ホームアシスタント:
カスタマイズ: !customize.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_attributes:
- 「ティック1」
- 「ティック2」
- 「ティック3」
- 「衝動」
- 「クランプ」
- 「温度」
- 「リレー」
- "入り口"
- 「アナログ」
- 「仮想スイッチ」
- 「変数」
値テンプレート: 'OK'
デフォルトのものを使用しない場合は、WES サーバーの IP アドレス、およびユーザー名とパスワードを示す赤色のフィールドを置き換える必要があります。 「scan_interval」を変更して、ファイルをポーリングする頻度を増減することもできます。ここでは、1 分ごとにポーリングするように設定されており、ほとんどの目的でうまく機能します。呼び出しを繰り返してサーバーに過負荷をかける必要はありません。
次に、さまざまなセンサーの宣言が続きます。たとえばピーク/オフピークのサブスクリプションを利用している場合、teleinfo 経由で電力メーターの情報を読み取るには、次の手順を実行します。
ウェスティック1hp:
Friendly_name: "ピーク時間インデックス"
unique_id:westic1hp
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["H_PLEINE"]
ウェスティック1hc:
Friendly_name: "オフピーク時間インデックス"
unique_id:westic1hc
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["H_CREUSE"]
必要に応じて、「friend_name」フィールドをカスタマイズできます。これらはホーム アシスタントに表示される名前です。残りは変更しないでください。
あなたが私と同じように Tempo サブスクリプションを持っている場合は、さらにいくつかのセンサーを作成する必要があります。
#If Tempo サブスクリプション
ウェスティック1ブループ:
Friendly_name: "ブルー ピーク時間インデックス"
unique_id:westic1bleuhp
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes |フロート }}["BBRHPJB"]
ウェスティック1ブルーク:
Friendly_name: "青色のオフピーク時間インデックス"
unique_id:westic1bleuhc
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["BBRHCJB"]
westic1blanchp:
Friendly_name: "ホワイト ピーク時間インデックス"
unique_id:westic1blanchp
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes |フロート }}["BBRHPJW"]
ウェスティック1ブランチ:
Friendly_name: "ホワイト オフピーク時間インデックス"
unique_id:westic1blanchc
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["BBRHCJW"]
ウェスティック1ルージュHP:
Friendly_name: "レッド ピーク時間インデックス"
unique_id:westic1rougehp
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes |フロート }}["BBRHPJR"]
ウェスティック1ルージュ:
Friendly_name: "レッド オフピーク時間インデックス"
unique_id:westic1rougehc
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["BBRHCJR"]
また、注入 (エネルギー生産契約を結んでいる場合)、瞬間消費、さらには電圧に関する情報も取得できます。
ウェスティック1インジ:
Friendly_name: "インデックスインジェクション"
unique_id:westic1inj
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["INJECTION"]
ウェスティック1パップ:
Friendly_name: "即時消費"
unique_id:westic1pap
デバイスクラス: 見かけの電力
測定単位: 'VA'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }}["PAP"]
ウェスティック1電圧:
Friendly_name: "消費電圧"
unique_id:westic1tension
デバイスクラス: 電源
測定単位: 'V'
値のテンプレート: >-
["tic1"] {{ states.sensor.wesdata.attributes|フロート }} ["TENSION1"]
家には太陽光発電の再販用に 2 台目の Linky メーターがあります (100% 再販契約)。 WES サーバーもこのメーターに接続されており、そこで生産情報を取得できます。
#ここで太陽光発電に使用される 2 台目の ICT メーター
ウェスティック2プロド:
フレンドリー名: "生産インデックス"
unique_id:westic2prod
デバイスクラス: エネルギー
測定単位: 'Wh'
値のテンプレート: >-
["tic2"] {{ states.sensor.wesdata.attributes|フロート }}["PRODUCTEUR"]
ウェスティック2パップ:
Friendly_name: "即時消費"
unique_id:westic2pap
デバイスクラス: 見かけの電力
測定単位: 'VA'
値のテンプレート: >-
["tic2"] {{ states.sensor.wesdata.attributes|フロート }} ["PAP"]
ウェスティック2電圧:
Friendly_name: 「生産電圧」
unique_id:westic2tension
デバイスクラス: 電源
測定単位: 'V'
値のテンプレート: >-
["tic2"] {{ states.sensor.wesdata.attributes|フロート }} ["TENSION1"]
オフピーク時間のステータスを取得できる別のセンサーを追加しました。westic1tarif = 1 の場合、オフピーク時間帯にあります。これは、たとえば、経済的なレートにあるときにのみ特定のマシンをトリガーするなどのシナリオで非常に役立つデータです:)
# オフピーク時間かどうかを判断するセンサー
ウェスティック1価格:
Friendly_name: "現在の価格"
unique_id:westic1price
値のテンプレート: >-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
ウェシュールクルーズ:
Friendly_name: "オフピーク時間"
unique_id: wesheurecreuse
値のテンプレート: >-
["tic1"] {% states.sensor.wesdata.attributes. lower() で "dig" の場合 %}["PTEC"]
1
{% それ以外 %}
0
{% endif %}
Tic (teleinfo) の読み取りに加えて、WES はメトリック電流クランプを使用して 4 本の個別の電線の消費量を監視することもできます。たとえば、給湯器、電気自動車の充電ステーション、暖房などの消費量を監視できます。次のコードを使用する必要があります。
特定の特定の位置に従うための #Ampere メトリック クランプ
ウェスピンス1秒:
Friendly_name: 「瞬間湯沸かし器」
unique_id: wespince1inst
デバイスクラス: 現在
測定単位: 'A'
値のテンプレート: >-
["pince"] {{ states.sensor.wesdata.attributes|フロート }}["I1"]
wespince1合計:
Friendly_name: 「トータル給湯器」
unique_id: wespince1total
デバイスクラス: エネルギー
測定単位: 'kWh'
値のテンプレート: >-
["pince"] {{ states.sensor.wesdata.attributes|フロート }}["INDEX1"]
ウェスピンス1ワット:
Friendly_name: "給湯器の消費量"
unique_id: wespince1watt
デバイスクラス: 電源
測定単位: 'W'
値のテンプレート: >-
デフォルトでは、WES はアンペア単位の瞬間消費量と消費指数のみをレポートします。瞬間的な消費量もワット単位で知りたかったので、「wespince1watt」を取得するための小さな計算を追加しました。 「friend_name」を変更して、用途に応じた名前を使用できます。 4 つのペンチを使用する場合は、このコードを複製するだけです (後でダウンロードするファイルに完全に含まれています)。
WES サーバーにはパルス カウンタもあり、水やガスの消費量の監視など、さまざまな用途に使用できます。自宅では最初のセンサーが私の追跡に使用されます 水道メーター:
#水やガスなどに使用されるインパルスセンサー
ウェスパルス1:
Friendly_name: 「水道メーター」
unique_id: wespulse1
デバイスクラス: 水
測定単位: 'L'
値のテンプレート: >-
["impulsion"] {{ states.sensor.wesdata.attributes|フロート }} ["INDEX1"]
使用状況に応じて、名前だけでなく「device_class」と「unit_of_measurement」もカスタマイズする必要があります。の定義が見つかります。 可能なさまざまな値はここにあります。
WES に接続されているものに応じて、他の情報も取得できます。特に、次のコードを介して温度を読み取ることができます (最大 30 個のプローブ!)。
#温度プローブ、最大 30 個まで可能
レッスンデ1:
Friendly_name: 「リビングルーム」
unique_id: wessonde1
デバイスクラス: 温度
測定単位: '℃'
値のテンプレート: >-
["temp"] {{ states.sensor.wesdata.attributes|フロート }} ["SONDE1"]
またはリレーのステータス:
#リレー
私リレー1:
フレンドリー名: "リレー 1"
unique_id: wesrelai1
値のテンプレート: >-
["relais"] {{ states.sensor.wesdata.attributes|フロート }} ["RELAIS1"]
私リレー2:
フレンドリー名: "リレー 2"
unique_id: wesrelai2
値のテンプレート: >-
["relais"] {{ states.sensor.wesdata.attributes|フロート }} ["RELAIS2"]
アナログ入力、仮想スイッチ、さらには変数もあります。
このファイルには、正しいインデントと、方法を見つけるのに役立つコメントを含む完全なコードが含まれています。
もちろんニーズに応じて調整します。私の場合は、2 つの TIC メーター、4 つのメトリック アンプ クランプ、およびパルス メーターのみを使用します。
設定を保存したら、「開発ツール」に移動し、「設定の確認」をクリックして、ファイル構文に問題がないことを確認する必要があります。

すべてがうまくいっている場合は、「再起動」をクリックするだけです。
ホーム アシスタントが再起動したら、設定 / デバイスとサービス / エンティティに移動し、検索バーに「wes」と入力すると、WES 用に作成されたすべてのセンサーが見つかるはずです。

そこから、それらを使用してシナリオをトリガーしたり、消費状況を監視するダッシュボードを作成したりできます。
ただし、Home Assistant Energy ダッシュボードではまだ使用していません。
WES をホーム アシスタントのエネルギー テーブルに統合する
Home Assistant Energy ダッシュボードは本当によくできています。ただし、インデックスまたは総消費量カウンターのみを受け入れます。インデックス用のセンサーを作成したので、これは WES にとって良いことだと言えます。 Energy ダッシュボード上の互換性のあるデバイスのリストに表示されることを除いて、これらのセンサーにはタイプ「state_class: total」の引数が必要です。この引数を MQTT センサーの構成に直接入れることができる場合、ここで WES 用に作成されたセンサーには当てはまりません。これは、MQTT ではなく REST 呼び出しのコンテキストにあるためです。
幸いなことに、総消費量を表すセンサーごとに次のタイプのコードを追加することで、customize.yaml ファイル内のセンサー宣言を変更できます。
センサー.westic1bleuhp:
状態クラス: 合計
デバイス:
識別子: 「WES サーバー」
名前:「WESサーバー」
モデル:「WES」
メーカー:「カルトエレクトロニック」
私の完全なファイルをここに残します。
それを homeassistant ディレクトリに置き、(コードが正常であることを確認した後) Home Assistant を再度再起動するだけです。
その後、最終的に、電話情報、消費、生産、水消費などのさまざまなインデックスをエネルギー ダッシュボードに追加できます。

しばらくすると、消費量の監視が行われ、オフピーク時間とピーク時間の詳細が表示されます (明るい青色)。また、太陽光発電の生産量を黄色で監視しています。

同様に、他の個々のデバイスの中でも給湯器の消費量の監視を見つけます。

そして、それができました!
結論
ホーム オートメーション システムを段階的にホーム アシスタントに移行する中で、Jeedom とは異なり、すぐに使用できるホーム アシスタント プラグインがないため、WES サーバーを統合する方法を研究することに多くの時間を費やしました。これについては、次のようなさまざまなトピックで扱います。
- あ WES メーカーのフォーラムに投稿する、カートエレクトロニクス
- あ HACF フォーラムに投稿する
ホーム アシスタントのドキュメントを参照すると、デバイスがどのように機能するかをよりよく理解できます。 RESTセンサー。
ネイティブの MQTT 互換性があれば作業ははるかに簡単になりますが、最終的には、WES からすべてのデータを復元することができ、Home Assistant で完全に使用できるようになりました。それが重要なことです。この統合は 1 か月ちょっと前から機能しており、報告すべき問題はありません。 WES を使用すると、多くのことをネイティブに管理できるため、センサーを増やす必要がなくなります。このガイドが、私と同じようにその方法を探していた人の助けになれば幸いです。