lujiashun1
发表于 2021-9-3 14:24:31
这个设置可以读出来
involute
发表于 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}")//输出读取的寄存器内容
lujiashun1
发表于 2021-9-3 14:57:06
type(result) is not ModbusIOException加这句就不行了 怎么打印这个异常
involute
发表于 2021-9-3 16:09:49
lujiashun1 发表于 2021-9-3 14:57
type(result) is not ModbusIOException加这句就不行了 怎么打印这个异常
我建议你本地先用python写测试脚本啊,可以跟踪调试的,愿意停哪停哪的那种,愿意看哪个变量看哪个变量那种。
你把那个我的modbus.py文件拷贝下来,把HomeAssistant的引用全去掉,在本地写一段调用,就在本地运行不好么。直接线上搞,不累么。
lujiashun1
发表于 2021-9-3 16:30:43
involute 发表于 2021-9-3 16:09
我建议你本地先用python写测试脚本啊,可以跟踪调试的,愿意停哪停哪的那种,愿意看哪个变量看哪个变量那 ...
我现在改成用pycharm调试了 就是报Modbus Error: timed out
involute
发表于 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参数么,设长一点呢
lujiashun1
发表于 2021-9-3 16:41:07
involute 发表于 2021-9-3 16:34
self._client = ModbusUdpClient(
host = host,
port = port,
不行 我在找其他原因 我设置成了10我找个别的透传固件试试
ptsa
发表于 2021-9-3 17:22:27
建议设置一个最后一次获取时间,
长时间不获取的话 默认好像显示最后一次数据的
这样故障了 有时候不能马上发现https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif
ptsa
发表于 2021-9-3 17:53:09
状态类错误
以下实体的 state class 不是“total_increasing”:
sensor.192_168_1_137_energy (measurement)
还有能源哪里加的时候 提示这个错误https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif
involute
发表于 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, 最后一次改变
效果