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

文档:
https://en.domoticz.cn/wiki/DzVents:_ne ... _scripting
回复
zhuyuanxue
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

如题,向大神求一个lua脚本将pms7003的三个数据分开,谢谢了!
zhuyuanxue
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

自己写了一个,但是不行,求大神看看错在那里。
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
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

自己解决了,脚本如下,分享给需要的人
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
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

莫名其妙的就好了
zhuyuanxue
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

需要先建立一个类型为文本的虚拟传感器
jiahao
帖子: 4
注册时间: 周五 12月 20, 2019 23:41

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

帖子 jiahao »

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

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

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

帖子 jiahao »

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
帖子: 9
注册时间: 周日 12月 15, 2019 12:41

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

帖子 zhuyuanxue »

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
能不能把全部的脚本分享出来,可能我也需要,懒得再研究了,谢谢
jiahao
帖子: 4
注册时间: 周五 12月 20, 2019 23:41

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

帖子 jiahao »

就是我发的,然后上面用你分享的脚本
上次由 jiahao 在 周一 3月 09, 2020 15:57,总共编辑 1 次。
jiahao
帖子: 4
注册时间: 周五 12月 20, 2019 23:41

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

帖子 jiahao »

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
能不能把全部的脚本分享出来,可能我也需要,懒得再研究了,谢谢
就是我发的,然后上面用你分享的脚本
回复