分页: 1 / 1

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

发表于 : 周六 7月 08, 2017 11:58
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) 查看 43480 次

代码: 全选

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

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

发表于 : 周六 7月 08, 2017 13:08
blindlight
两个开关控制一个设备,domoticz里面有个叫subtype的办法,这个先不管他。
你现在混乱的是,明明一个开关是多段,一个开关是低速,然后你非要让低速的开关的开状态来显示低中高三挡。
至少多弄一个状态设备,但是hk里面肯定有两个开关。一个表示低速开关,一个表示风扇状态

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

发表于 : 周六 7月 08, 2017 13:30
vonzeng
subtype的方法试过,有问题。不能两个开关互设对方为subtype。

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

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

是不行的。有没办法只改变状态,不发出对应的射频遥控命令。

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

发表于 : 周日 7月 09, 2017 16:27
blindlight
多弄个开关只显示状态啊

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

发表于 : 周一 7月 10, 2017 22:15
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) 查看 43453 次
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) 查看 43453 次

代码: 全选

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

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

发表于 : 周四 7月 13, 2017 02:56
fidel
请问这个用blocky怎么写啊?

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

发表于 : 周四 7月 13, 2017 08:57
vonzeng
我已全面放弃blocky了。lua简单应用不管太难的。我也是从零基础学起。要说有基础就是20多年前学过点basic。 :)

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

发表于 : 周五 7月 14, 2017 23:38
fidel
不知道为什么没效果 按你这么弄得,开关无反应。v3.7523

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

发表于 : 周日 7月 16, 2017 00:23
vonzeng
具体说下做了哪些?

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

发表于 : 周日 7月 16, 2017 12:25
fidel
1.JPG
1.JPG (133.1 KiB) 查看 43375 次
2.JPG
2.JPG (82.64 KiB) 查看 43375 次
3.JPG
3.JPG (105.99 KiB) 查看 43375 次
现在 是开关没反应 多段可以

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

发表于 : 周二 7月 18, 2017 13:26
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) 查看 43413 次
划红框地方选择devices就行。

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

发表于 : 周二 7月 18, 2017 13:33
DT27
fidel 写了: 周日 7月 16, 2017 12:25 1.JPG

2.JPG

3.JPG

现在 是开关没反应 多段可以
看楼上,论坛需要引用回复才会通知好像。

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

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

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

划红框地方选择devices就行。
我试试

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

发表于 : 周六 12月 05, 2020 22:52
eagle
怎么设置多段参数呢,四个TEXT文件中写什么

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

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