我使用服务器 卡特电子WES 几年来:它是一个集成到配电盘中的小盒子,能够监控家庭的所有能源消耗,无论是通过远程信息或公制安培钳的电力、水、天然气和许多其他东西。一个极其完整的服务器,本身就足够了。但 Home Assistant 提供了一个设计非常好的能源表,我希望能够将 WES 服务器集成到这个家庭自动化系统中。本指南将帮助您做同样的事情。

先决条件
当然,您需要有一个连接到网络的功能正常的 WES 服务器,以及一个功能正常的 Home Assistant 安装。
[内容蛋模块=AE__domadoofr模板=自定义/紧凑]
首先,为了让我的 Home Assistant 配置文件不超载,我将其分成几个文件,这是开发人员本地计划的。这里我们将特别有两个文件:
- Sensors.yaml ,它将托管所有 WES 传感器的配置
- customize.yaml,它允许您自定义这些传感器,以便 Home Assistant 能量表正确识别它们
为此,只需将这些行添加到configuration.yaml 文件中(如果您还没有这些行):
传感器:!包括sensors.yaml
#家庭助理定制
家庭助理:
自定义:!包括customize.yaml
在 Home Assistant 中创建 WES 服务器传感器
不幸的是,WES 服务器不提供 MQTT 连接,尽管这已经宣布了好几年了。太糟糕了,因为这会让我们的生活变得更加轻松。然而,WES 提供了多个文件,允许您阅读它收集的信息。最完整的文件无疑是 data.cgx,可从 http://IP_DU_WES/data.cgx 获取。我们将使用它来避免多个文件之间的混乱。
它以这种形式汇集了所有有用的信息:

我们只需要在 Home Assistant 中声明所需的各种信息即可。
为此,在 Sensors.yaml 文件(如果您还没有该文件,则在您的 homeassistant 目录中创建)中,我们需要声明与 WES 服务器的连接:
-平台:休息
名称: 韦斯数据
#替换为你的WES的IP
资源:http://IP_DU_WES/数据.cgx
扫描间隔:60
方法:获取
身份验证:基本
#替换为你的系统用户名和密码
用户名: 行政
密码: 韦斯
json_attributes_path:“$.data”
json_属性:
- “勾选1”
- “tic2”
- “tic3”
- “冲动”
- “夹钳”
- “温度”
- “接力”
- “入口”
- “模拟”
- “虚拟开关”
- “变量”
值_模板:“确定”
如果您不使用默认值,则需要替换红色字段以指示 WES 服务器的 IP 地址以及用户名和密码。您还可以更改“scan_interval”以增加或减少轮询文件的频率。这里设置为每分钟轮询一次,这对于大多数用途都适用。无需因重复调用而使服务器超载。
接下来是不同传感器的声明。要通过 Teleinfo 读取电表信息(例如,如果您处于高峰/非高峰订阅状态):
西域1马力:
Friendly_name:“高峰时段指数”
unique_id:westic1hp
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes|漂浮 }}["H_PLEINE"]
西1hc:
Friendly_name: "非高峰时段指数"
唯一 ID:westic1hc
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes|漂浮 }}["H_CREUSE"]
如果您愿意,您可以自定义“friend_name”字段:这些是将显示在 Home Assistant 中的名称。其余的不应该改变。
如果您像我一样订阅了 Tempo,则还需要创建更多传感器:
#If Tempo 订阅
westic1bleuhp:
Friendly_name:“蓝色高峰时段指数”
unique_id:westic1bleuhp
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes |漂浮 }}["BBRHPJB"]
westic1bleuhc:
Friendly_name: "蓝色非高峰时段指数"
unique_id:westic1bleuhc
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes|漂浮 }}["BBRHCJB"]
西斯蒂克1布兰奇:
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"]
westic1rougehp:
Friendly_name:“红色高峰时段指数”
unique_id:westic1rougehp
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes |漂浮 }}["BBRHPJR"]
westic1rougehc:
Friendly_name: "红色非高峰时段指数"
unique_id:westic1rougehc
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic1"] {{ states.sensor.wesdata.attributes|漂浮 }}["BBRHCJR"]
我们还可以检索与注入(如果您有能源生产合同)、瞬时消耗甚至电压相关的信息:
西西克1inj:
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"]
我家里有第二个 Linky 仪表,用于转售我的太阳能产品(100% 转售合同)。 WES 服务器也连接到该仪表,我可以在那里检索我的生产信息:
#这里用于光伏生产的第二台 ICT 仪表
westic2产品:
Friendly_name:“生产指数”
unique_id:westic2prod
设备类别:能源
测量单位:'Wh'
值_模板:>-
["tic2"] {{ states.sensor.wesdata.attributes|漂浮 }}["PRODUCTEUR"]
westic2pap:
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,则我们处于非高峰时段。这是非常有用的数据,例如,仅当我们处于经济利率时才触发某些机器:)
# 传感器判断是否是非高峰时间
westic1价格:
Friendly_name:“当前价格”
unique_id:westic1price
值_模板:>-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
wesheurecreuse:
Friendly_name:“非高峰时间”
unique_id:wesheurecreuse
值_模板:>-
["tic1"] {% 如果在 states.sensor.wesdata.attributes.lower() 中“挖掘” %}["PTEC"]
1
{% 别的 %}
0
{% 结束 %}
除了 Tic (teleinfo) 读数外,WES 还能够使用公制电流钳监测 4 条独立电线的消耗。例如,您可以监控热水器、电动汽车充电站、供暖等的消耗情况。您将需要使用此代码:
#安培公制夹具遵循某些特定位置
wespence1inst:
Friendly_name:“即热式热水器”
unique_id:wespence1inst
设备类别:当前
测量单位:'A'
值_模板:>-
["pince"] {{ states.sensor.wesdata.attributes|漂浮 }}["I1"]
wespence1总计:
Friendly_name:“全热水器”
unique_id:wespence1total
设备类别:能源
测量单位:'kWh'
值_模板:>-
["pince"] {{ states.sensor.wesdata.attributes|漂浮 }}["INDEX1"]
威斯宾斯1瓦:
Friendly_name:“热水器消耗量”
unique_id:wespice1watt
设备类别:电源
测量单位:'W'
值_模板:>-
默认情况下,WES 仅报告以安培为单位的瞬时消耗量以及消耗指数。由于我还想获得以瓦为单位的瞬时消耗量,因此我添加了一个小计算以获得“wespice1watt”。您可以修改“Friendly_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
设备类别:温度
测量单位:'°C'
值_模板:>-
["temp"] {{ states.sensor.wesdata.attributes|漂浮 }} ["SONDE1"]
或者继电器的状态:
#中继
我们中继1:
友好名称:“中继 1”
unique_id:wesrelai1
值_模板:>-
["relais"] {{ states.sensor.wesdata.attributes|漂浮 }} ["RELAIS1"]
我们中继2:
Friendly_name:“中继2”
unique_id:wesrelai2
值_模板:>-
["relais"] {{ states.sensor.wesdata.attributes|漂浮 }} ["RELAIS2"]
我们还有模拟输入、虚拟开关,甚至变量。
您将在此文件中找到完整的代码,具有正确的缩进和注释,以帮助您找到正确的方法。
当然要根据自己的需要进行调整。就我而言,我只使用两个 TIC 仪表、4 个公制安培钳和一个脉冲计。
保存配置后,您需要转到“开发工具”,然后单击“检查配置”以确保文件语法没有问题。

如果一切正常,您所要做的就是单击“重新启动”。
Home Assistant 重新启动后,如果您转到“设置”/“设备和服务”/“实体”,在搜索栏中输入“wes”,您应该会找到为 WES 创建的所有传感器:

从那里您可以使用它们来触发场景、创建消耗监控仪表板等。
但尚未在 Home Assistant Energy 仪表板中使用它们。
将 WES 集成到 Home Assistant 能源表中
家庭助理能源仪表板确实做得非常好。但它只接受索引或总消耗计数器。我们可以说这对 WES 有好处,因为我们已经为索引创建了传感器。除了要出现在能源仪表板上的兼容设备列表中之外,这些传感器必须具有“state_class:total”类型的参数。如果可以将此参数直接放入 MQTT 传感器的配置中,那么此处为 WES 创建的传感器就不是这种情况,因为我们处于 REST 调用的上下文中,而不是 MQTT。
幸运的是,我们可以通过为每个代表总消耗的传感器添加此类代码来修改customize.yaml文件中的传感器声明:
传感器.westic1bleuhp:
状态类别:总计
设备:
标识符:“WES 服务器”
名称:“WES服务器”
型号:“WES”
制造商:“卡特电子”
我把完整的文件留在这里:
只需将其放在 homeassistant 目录中,然后再次重新启动 Home Assistant(检查代码没问题后)。
然后,我们最终可以将不同的索引添加到能源仪表板中,无论是电话信息、消费、生产、水消耗等。

一段时间后,我们就可以进行消耗监控,其中包含非高峰和高峰时段的详细信息(浅蓝色)。我还用黄色监控我的光伏发电:

以同样的方式,我在其他单独设备中找到了热水器的消耗监控:

现在你就得到了它!
结论
逐渐将我的家庭自动化系统迁移到 Home Assistant,我花了很多时间研究如何集成我的 WES 服务器,因为与 Jeedom 不同,它没有现成的 Home Assistant 插件。不同的主题涉及它,包括:
- 一个 在 WES 制造商论坛上发帖, 卡特电子
- 一个 在 HACF 论坛上发帖
Home Assistant 文档还可以让您更好地了解设备的工作原理。 休息传感器。
原生 MQTT 兼容性会让事情变得更加容易,但最终我们设法从 WES 恢复所有数据,在 Home Assistant 中完全可用,这是主要的事情。集成已经为我工作了一个多月了,没有任何问题需要报告。我可以使用我的 WES,这使我不必使用多个传感器,因为它本身就可以管理很多事情。如果本指南可以帮助像我一样正在寻找如何做到这一点的人!
[内容蛋模块=AE__domadoofr模板=自定义/紧凑]