『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: involute

[插件集成] 支持HA2021.8.X能源功能的培正用电信息采集方案

  [复制链接]

16

主题

292

帖子

2149

积分

金牌会员

Rank: 6Rank: 6

积分
2149
金钱
1857
HASS币
20
发表于 2021-9-3 14:24:31 | 显示全部楼层
这个设置可以读出来
微信图片_20210903142350.jpg
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-9-3 14:36:20 | 显示全部楼层
本帖最后由 involute 于 2021-9-3 14:45 编辑
lujiashun1 发表于 2021-9-3 14:24
这个设置可以读出来

嗯哼,所以你在那一堆检查返回值的if and and and 之前输出一下,看看返回值到底是什么,为什么那一堆if不满足。
哦对你问的就是怎么输出对吧,在打开debug输出的前提下

_LOGGER.debug(f"result ={result}") //看看是不是None
_LOGGER.debug(f"result_type ={type(result)}")  //看看类型对不对
_LOGGER.debug(f"result.registers ={result.registers}")  //输出读取的寄存器内容


回复

使用道具 举报

16

主题

292

帖子

2149

积分

金牌会员

Rank: 6Rank: 6

积分
2149
金钱
1857
HASS币
20
发表于 2021-9-3 14:57:06 | 显示全部楼层
type(result) is not ModbusIOException加这句就不行了   怎么打印这个异常
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-9-3 16:09:49 | 显示全部楼层
lujiashun1 发表于 2021-9-3 14:57
type(result) is not ModbusIOException加这句就不行了   怎么打印这个异常

我建议你本地先用python写测试脚本啊,可以跟踪调试的,愿意停哪停哪的那种,愿意看哪个变量看哪个变量那种。

你把那个我的modbus.py文件拷贝下来,把HomeAssistant的引用全去掉,在本地写一段调用,就在本地运行不好么。直接线上搞,不累么。
回复

使用道具 举报

16

主题

292

帖子

2149

积分

金牌会员

Rank: 6Rank: 6

积分
2149
金钱
1857
HASS币
20
发表于 2021-9-3 16:30:43 | 显示全部楼层
involute 发表于 2021-9-3 16:09
我建议你本地先用python写测试脚本啊,可以跟踪调试的,愿意停哪停哪的那种,愿意看哪个变量看哪个变量那 ...

我现在改成用pycharm调试了   就是报Modbus Error: [Input/Output] timed out
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-9-3 16:34:07 | 显示全部楼层
lujiashun1 发表于 2021-9-3 16:30
我现在改成用pycharm调试了   就是报Modbus Error:  timed out

self._client = ModbusUdpClient(
                host = host,
                port = port,
                framer = ModbusRtuFramer,
                timeout = 2,
                retry_on_empty = False,
                retry_on_invalid = False
            )

初始化的时候不是有timeout参数么,设长一点呢
回复

使用道具 举报

16

主题

292

帖子

2149

积分

金牌会员

Rank: 6Rank: 6

积分
2149
金钱
1857
HASS币
20
发表于 2021-9-3 16:41:07 | 显示全部楼层
involute 发表于 2021-9-3 16:34
self._client = ModbusUdpClient(
                host = host,
                port = port,

不行 我在找其他原因   我设置成了10  我找个别的透传固件试试
回复

使用道具 举报

2

主题

57

帖子

526

积分

高级会员

Rank: 4

积分
526
金钱
469
HASS币
0
发表于 2021-9-3 17:22:27 | 显示全部楼层
建议设置一个最后一次获取时间,
长时间不获取的话 默认好像显示最后一次数据的
这样故障了 有时候不能马上发现

                               
登录/注册后可看大图
回复

使用道具 举报

2

主题

57

帖子

526

积分

高级会员

Rank: 4

积分
526
金钱
469
HASS币
0
发表于 2021-9-3 17:53:09 | 显示全部楼层
状态类错误
以下实体的 state class 不是“total_increasing”:
sensor.192_168_1_137_energy (measurement)

还有能源哪里加的时候 提示这个错误

                               
登录/注册后可看大图
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-9-3 18:21:47 | 显示全部楼层
ptsa 发表于 2021-9-3 17:22
建议设置一个最后一次获取时间,
长时间不获取的话 默认好像显示最后一次数据的
这样故障了 有时候不能马 ...

并不需要我去设置什么最后一次获取时间,last-updated是所有传感器自带属性,要显示的话,只要取其last-updated即可。
比如这样:

type: entities
entities:
  - entity: sensor.192_168_1_125_energy
    secondary_info: last-updated    # last-updated是最后一次更新,其它还可以是last-changed, 最后一次改变



效果

entity.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-1 09:31 , Processed in 0.459244 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表