请教如何一个多档风扇的两个不同类型开关状态同步

文档:
https://en.domoticz.cn/wiki/DzVents:_ne ... _scripting
回复
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

一个多档风扇,在domoticz开关中设了两个类型(一个选择开关,一个on/off开关给homekit用),如何让这两个开关的状态显示同步? 比如我在domotics中的选择开关开了风扇的低速、中速或高速档,要求homekit中的风扇状态也会同步更新为运行,到这一步都还好,但如何不让homekit中的风扇因为状态从停止同步到运行而又发出一个低速运行指令,导致风扇收到两个运行指令(第一个是domoticz中选择开关发出,一个是homekit因同步状态而发出)。因为这样会可能出现问题:homekit中只能是开和关,开我设定为低速。当你在domoticz选择开关选择中速或高速时,上面的逻辑会导致风扇又被Homtkit控制到默认的低速。 大家有啥解决方案?
Screen Shot 2017-07-08 at 11.54.02 AM.jpg
Screen Shot 2017-07-08 at 11.54.02 AM.jpg (108.14 KiB) 查看 48790 次

代码: 全选

commandArray = {}

if devicechanged['餐厅风扇'] ~= 'Off' and otherdevices['餐厅风扇 HomeKit'] == 'Off' then
    commandArray['餐厅风扇 HomeKit'] = 'On'
elseif devicechanged['餐厅风扇'] == 'Off' and otherdevices['餐厅风扇 HomeKit'] == 'On' then
	commandArray['餐厅风扇 HomeKit'] = 'Off'
elseif devicechanged['餐厅风扇 HomeKit'] == 'On' and otherdevices['餐厅风扇'] == 'Off' then
	commandArray['餐厅风扇'] = 'Set Level 10'
elseif devicechanged['餐厅风扇 HomeKit'] == 'Off' and otherdevices['餐厅风扇'] ~= 'Off' then
	commandArray['餐厅风扇'] = 'Off'
end

return commandArray
blindlight
帖子: 98
注册时间: 周四 3月 30, 2017 00:03

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 blindlight »

两个开关控制一个设备,domoticz里面有个叫subtype的办法,这个先不管他。
你现在混乱的是,明明一个开关是多段,一个开关是低速,然后你非要让低速的开关的开状态来显示低中高三挡。
至少多弄一个状态设备,但是hk里面肯定有两个开关。一个表示低速开关,一个表示风扇状态
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

subtype的方法试过,有问题。不能两个开关互设对方为subtype。

我希望多段开关中低中高三速时,homekit中都显示为运行状态(虽然homekit中的运行代表着是低速),只要显示是运行就行,千万别捣乱给变成唯一的低速。

所以这段:
if devicechanged['餐厅风扇'] ~= 'Off' and otherdevices['餐厅风扇 HomeKit'] == 'Off' then
commandArray['餐厅风扇 HomeKit'] = 'On'

是不行的。有没办法只改变状态,不发出对应的射频遥控命令。
blindlight
帖子: 98
注册时间: 周四 3月 30, 2017 00:03

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 blindlight »

多弄个开关只显示状态啊
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

搞定了。将On/Off类型的开关中的命令行清空,再修改代码。
Screen Shot 2017-07-10 at 10.14.04 PM.jpg
Screen Shot 2017-07-10 at 10.14.04 PM.jpg (154.96 KiB) 查看 48763 次
Screen Shot 2017-07-10 at 10.14.17 PM.jpg
Screen Shot 2017-07-10 at 10.14.17 PM.jpg (312.41 KiB) 查看 48763 次

代码: 全选

if devicechanged['餐厅风扇'] == '低速' or devicechanged['餐厅风扇'] == '中速' or devicechanged['餐厅风扇'] == '高速' then
	if otherdevices['餐厅风扇 HomeKit'] == 'Off' then
		commandArray['餐厅风扇 HomeKit'] = 'On'
	end
elseif devicechanged['餐厅风扇'] == 'Off' then
	if otherdevices['餐厅风扇 HomeKit'] == 'On' then
		commandArray['餐厅风扇 HomeKit'] = 'Off'
	end
elseif devicechanged['餐厅风扇 HomeKit'] == 'On' then
	if otherdevices['餐厅风扇'] == 'Off' then
		commandArray['餐厅风扇'] = 'Set Level 10'
	end
elseif devicechanged['餐厅风扇 HomeKit'] == 'Off' then
	if otherdevices['餐厅风扇'] == '低速' or otherdevices['餐厅风扇'] == '中速' or otherdevices['餐厅风扇'] == '高速' then
		commandArray['餐厅风扇'] = 'Off'
	end
end
fidel
帖子: 6
注册时间: 周五 6月 23, 2017 22:12

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 fidel »

请问这个用blocky怎么写啊?
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

我已全面放弃blocky了。lua简单应用不管太难的。我也是从零基础学起。要说有基础就是20多年前学过点basic。 :)
fidel
帖子: 6
注册时间: 周五 6月 23, 2017 22:12

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 fidel »

不知道为什么没效果 按你这么弄得,开关无反应。v3.7523
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

具体说下做了哪些?
fidel
帖子: 6
注册时间: 周五 6月 23, 2017 22:12

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 fidel »

1.JPG
1.JPG (133.1 KiB) 查看 48685 次
2.JPG
2.JPG (82.64 KiB) 查看 48685 次
3.JPG
3.JPG (105.99 KiB) 查看 48685 次
现在 是开关没反应 多段可以
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 vonzeng »

看起来和我的一样呀。
运行时,log中有没有报错?
Screen Shot 2017-07-18 at 1.25.45 PM.jpg
Screen Shot 2017-07-18 at 1.25.45 PM.jpg (28.87 KiB) 查看 48723 次
划红框地方选择devices就行。
头像
DT27
帖子: 345
注册时间: 周四 3月 30, 2017 08:54
Gender:

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 DT27 »

fidel 写了: 周日 7月 16, 2017 12:25 1.JPG

2.JPG

3.JPG

现在 是开关没反应 多段可以
看楼上,论坛需要引用回复才会通知好像。
fidel
帖子: 6
注册时间: 周五 6月 23, 2017 22:12

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 fidel »

vonzeng 写了: 周二 7月 18, 2017 13:26 看起来和我的一样呀。
运行时,log中有没有报错?

Screen Shot 2017-07-18 at 1.25.45 PM.jpg

划红框地方选择devices就行。
我试试
eagle
帖子: 1
注册时间: 周四 12月 03, 2020 19:23

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 eagle »

怎么设置多段参数呢,四个TEXT文件中写什么
头像
DT27
帖子: 345
注册时间: 周四 3月 30, 2017 08:54
Gender:

Re: 请教如何一个多档风扇的两个不同类型开关状态同步

帖子 DT27 »

eagle 写了: 周六 12月 05, 2020 22:52 怎么设置多段参数呢,四个TEXT文件中写什么
多段开关参数里前面是可执行脚本,后面txt文件是要传给可执行脚本的参数。
比如前面是发送射频信号的脚本,后面是对应开关的射频编码。
回复