求一个lua脚本将pms7003的三个数据分开

回复
zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周日 12月 15, 2019 12:47

如题,向大神求一个lua脚本将pms7003的三个数据分开,谢谢了!

zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周日 12月 15, 2019 16:19

自己写了一个,但是不行,求大神看看错在那里。
commandArray = {}

if devicechanged['Dust'] then

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

local pm1, pm25, pm10

_,_,pm1, pm25, pm10 = string.find(device, "(.+);(.+);(.+)")

print(pm1) --show temp in LOG
print(pm25) --show humidity in LOG
print(pm10) --show humstat in LOG,

commandArray[1] = {['UpdateDevice'] = 10 .. '|0|' .. pm25}
commandArray[2] = {['UpdateDevice'] = 11 .. '|0|' .. pm10}

end
return commandArray

zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周日 12月 15, 2019 20:59

自己解决了,脚本如下,分享给需要的人
commandArray = {}

if devicechanged['Dust'] then

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

local pm1, pm25, pm10

_,_,pm1, pm25, pm10 = string.find(device, "(.+);(.+);(.+)")

print(pm1) --show temp in LOG
print(pm25) --show humidity in LOG
print(pm10) --show humstat in LOG,


commandArray[1] = {['UpdateDevice'] = 10 .. '|0|' .. pm25}
commandArray[2] = {['UpdateDevice'] = 11 .. '|0|' .. pm10}

end
return commandArray

zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周日 12月 15, 2019 20:59

莫名其妙的就好了

zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周五 12月 20, 2019 16:56

需要先建立一个类型为文本的虚拟传感器

jiahao
帖子: 2
注册时间: 周五 12月 20, 2019 23:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 jiahao » 周五 12月 20, 2019 23:43

首先感谢脚本分享,传感器能正常检测了
其次想问一下,这样的话如何触发逻辑判断,比如根据PM2.5自动触发事件。
我研究了一下好像不能用blocky

谢谢

jiahao
帖子: 2
注册时间: 周五 12月 20, 2019 23:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 jiahao » 周一 12月 23, 2019 10:46

jiahao 写了:
周五 12月 20, 2019 23:43
首先感谢脚本分享,传感器能正常检测了
其次想问一下,这样的话如何触发逻辑判断,比如根据PM2.5自动触发事件。
我研究了一下好像不能用blocky

谢谢
解决了。
因为返回的是string,所以要转换成int:

pm25n = tonumber(pm25)
if pm25n > 25 and pm25n < 50 then
commandArray['Low']='On'
end

zhuyuanxue
帖子: 8
注册时间: 周日 12月 15, 2019 12:41

Re: 求一个lua脚本将pms7003的三个数据分开

帖子 zhuyuanxue » 周一 12月 23, 2019 20:12

jiahao 写了:
周一 12月 23, 2019 10:46
jiahao 写了:
周五 12月 20, 2019 23:43
首先感谢脚本分享,传感器能正常检测了
其次想问一下,这样的话如何触发逻辑判断,比如根据PM2.5自动触发事件。
我研究了一下好像不能用blocky

谢谢
解决了。
因为返回的是string,所以要转换成int:

pm25n = tonumber(pm25)
if pm25n > 25 and pm25n < 50 then
commandArray['Low']='On'
end
能不能把全部的脚本分享出来,可能我也需要,懒得再研究了,谢谢

回复