求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

文档:
https://en.domoticz.cn/wiki/DzVents:_ne ... _scripting
回复
desixn
帖子: 3
注册时间: 周二 2月 26, 2019 12:19

求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

帖子 desixn »

BMP280有气压和温度想把数值分开,ldx16是BMP280设置text,已经有读数,17和18是分开的虚拟传感器,气温已经分出来了但气压一直没有分出来,大神帮忙看看代码哪里有不对吗?
屏幕快照 2019-02-26 20.47.30.png
屏幕快照 2019-02-26 20.47.30.png (32.78 KiB) 查看 8621 次
屏幕快照 2019-02-26 20.51.24.png
屏幕快照 2019-02-26 20.51.24.png (56.94 KiB) 查看 8621 次
屏幕快照 2019-02-26 20.53.08.png
屏幕快照 2019-02-26 20.53.08.png (61.48 KiB) 查看 8621 次
commandArray = {}

if devicechanged['BMP280'] then

local device = otherdevices_svalues["BMP280"]
print(device)

local Temperature, Pressure

_,_,Temperature, Pressure = string.find(device, "(.+);(.+)")

print(Temperature) --show temp in LOG
print(Pressure) --show Pressure in LOG,

commandArray[1] = {['UpdateDevice'] = 17 .. '|0|' .. Temperature}
commandArray[2] = {['UpdateDevice'] = 18 .. '|0|' .. Pressure}

end
return commandArray
头像
DT27
帖子: 345
注册时间: 周四 3月 30, 2017 08:54
Gender:

Re: 求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

帖子 DT27 »

代码: 全选

_,_,Temperature,Pressure = string.find(txt, "(%d+.-%d+);(%d+.-%d+)")
屏幕快照 2019-02-26 21.48.21.jpg
屏幕快照 2019-02-26 21.48.21.jpg (52.15 KiB) 查看 8619 次
desixn
帖子: 3
注册时间: 周二 2月 26, 2019 12:19

Re: 求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

帖子 desixn »

DT27 写了: 周二 2月 26, 2019 21:49

代码: 全选

_,_,Temperature,Pressure = string.find(txt, "(%d+.-%d+);(%d+.-%d+)")
屏幕快照 2019-02-26 21.48.21.jpg
试了一下还是不行,原本有的Temperature的数值也没有了!
头像
DT27
帖子: 345
注册时间: 周四 3月 30, 2017 08:54
Gender:

Re: 求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

帖子 DT27 »

desixn 写了: 周三 2月 27, 2019 20:08
DT27 写了: 周二 2月 26, 2019 21:49

代码: 全选

_,_,Temperature,Pressure = string.find(txt, "(%d+.-%d+);(%d+.-%d+)")
屏幕快照 2019-02-26 21.48.21.jpg
试了一下还是不行,原本有的Temperature的数值也没有了!
为什么我运行以后可以 :shock:
学下lua的string.find跟正则吧
desixn
帖子: 3
注册时间: 周二 2月 26, 2019 12:19

Re: 求助 BMP280用Custom Sensor把气温和气压数值分开但读不到气压值

帖子 desixn »

DT27 写了: 周四 2月 28, 2019 19:59
desixn 写了: 周三 2月 27, 2019 20:08
DT27 写了: 周二 2月 26, 2019 21:49

代码: 全选

_,_,Temperature,Pressure = string.find(txt, "(%d+.-%d+);(%d+.-%d+)")
屏幕快照 2019-02-26 21.48.21.jpg
试了一下还是不行,原本有的Temperature的数值也没有了!
为什么我运行以后可以 :shock:
学下lua的string.find跟正则吧
我是学文科做平面设计的,多代码一窍不通!!

可能跟读数格式有关系,文本读数是17.62;1015.40;0;0,后面多了两位0;0

_,_,Temperature, Pressure,_,_ = string.find(device, "(.+);(.+);(.+);(.+)")

改成这样就正常了,分出来的两个虚拟设备气温和气压值都有了,可能是我歪打正着 :?
回复