Deconz-rest-plugin: Aqara OPPLE 开关支持

创建于 2019-11-11  ·  500评论  ·  资料来源: dresden-elektronik/deconz-rest-plugin

这些开关目前是否受支持,或在您的雷达上以供将来支持?

Aqara Opple 开关

我认为他们似乎很有前途。

Device Request

最有用的评论

是的,初始支持将包含在下一个版本中。

所有500条评论

之后,在 Ali (https://nl.aliexpress.com/item/40003222297550.html) 上以优惠的价格看到了它们。 看到他们是 zigbee 3.0

+1 那些。 我昨天看到了它们,与市场上的其他墙壁开关相比,价格惊人,与普通的 Aqara 墙壁开关相比,潜力更大。 我会订购并报告。

请+1。 很高兴看到这得到了“设备集成”的标签。 开关的疯狂价格。 我已经有了另一个 aquara 开关,它工作得很好!

👍
也跟着。
非常有趣的场景选择器。

刚拿到我的 6 按钮版本。 尝试将设备添加为交换机,但失败了,但我可以在 deconz 应用程序中看到它。 第一个按钮打开我所有的“灯”,第二个按钮将它们关闭。

型号:WXCJKG13LM
型号标识符:lumi.remote.b686opcn01

你们需要什么信息来集成这个设备?

@djashjones https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Request-Device-Support
您是否尝试过在 Home Assistant 或 Nodered 中收听 deconz_events?

IMG_0131
IMG_0132
IMG_0133

抱歉,不知道如何在 HA 或 node-red(我都有)中收听事件。

@djashjones
在 HA -> 开发者工具 -> 事件
您在下方的框中写入 deconz_event 并按“开始收听”。
在此之后,您尝试按下 Aqara Opple Switch 并查看是否有任何响应。 如果成功,您将看到与图片类似的响应。 “事件”编号应根据您按下的按钮以及按下、长按或双击而改变。
请尝试并报告:)

image

刚拿到我的 6 按钮版本。

你如何体验它,质量明智?

与我拥有的 2 个电池供电的 2 按钮摇杆相同的质量。 我非常喜欢它。 这就像宜家遥控器,底座是磁性的。

当我下班回家时,我会看看今晚有哪些事件会被解雇。

当我在按下按钮时在家庭助理中收听 deconz_event 时没有任何显示。 我可以像上面的截图一样在 deconz 中看到它,但在 phoscon 中看不到。

奇怪的是它会打开/关闭我的 trafri 灯泡,这些灯泡与 phoscon 连接...

确认,HA 中没有,事件明智。

我有宜家 Tradfri 灯泡(可调光)和插座。

按钮 1,左上角,动作 = 关闭我所有的灯和插座。
按钮 2,右上角,动作 = 打开我所有的灯和袜子。
按钮 3,左中,操作 = 降低灯泡亮度。
按钮 4,中间右侧,动作 = 增加灯泡的亮度。

IMG_0134

Homey有消息了吗?

djashjones所说的相同的问题
你找到任何解决办法了吗?

+1,刚刚收到 4 按钮开关,并按照@djashjones 的评论进行操作
我正在使用使用 REST API 的 pimatic,但它没有显示。
在 /api/ 上调用 API 不会在所有设备列表中显示 MAC 地址
我们可以帮助集成设备什么?

题外话:Just Receiver 6 Button 版本。 盒子里没有指令。 谁能告诉我是如何顶对的? 重置按钮似乎没用? 最多保持 5 秒,但没有任何反应?

你有新的小米家庭套件中心吗?

2019 年 12 月 5 日星期四,heine79, notifications @github.com 写道:

题外话:Just Receiver 6 Button 版本。 没有Instruktion
盒子。 谁能告诉我是如何顶对的? 重置按钮似乎没用?
最多保持 5 秒,但没有任何反应?


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061?email_source=notifications&email_token=AHRBAT6EMS5NORT34L3VFT3QXF7ABA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGCMOOA#issuecomment-562349880
或取消订阅
https://github.com/notifications/unsubscribe-auth/AHRBAT3EVRCQ33MKCPF4WJLQXF7ABANCNFSM4JLW7MBQ
.

你有新的小米家庭套件中心吗?

2019 年 12 月 5 日星期四,22:36 heine79, @* > 写道:题外话:Just Receiver 6 Button 版本。 盒子里没有指令。 谁能告诉我是如何顶对的? 重置按钮似乎没用? 最多保持 5 秒,但没有任何反应? — 您收到此消息是因为您订阅了此线程。 回复此电子邮件直接,查看它在GitHub <#2061?email_source =通知&email_token = AHRBAT6EMS5NORT34L3VFT3QXF7ABA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGCMOOA#issuecomment-562349880>,或取消订阅https://github.com/notifications/unsubscribe-auth/AHRBAT3EVRCQ33MKCPF4WJLQXF7ABANCNFSM4JLW7MBQ

不,我正在用 hassio 来解压 conbee。

我想我通过按住按钮(左上角,LED 旁边)直到它开始闪烁来配对它。

我也热切期待这些开关的集成。 我继续购买了一个 6 按钮,如果有什么可以加快集成的方法,请告诉我。

我还有 6 键和 4 键版本等待支持:)
质量不错顺便说一句...

在 zigbee2mqtt git 上发现这个开关应该能够支持“保持后释放”。
如果为 true,则此开关将支持事件 1234。
对于那些拥有普通 Aqara 单/双摇杆的人来说,您可能已经注意到不可能以好的方式调暗灯光。 这是因为它在保持时只发送一个事件。 新的 Aqara Opple 开关接缝能够同时发送 x001(保持)和 x003(保持后释放)事件。

当得到支持时,这将是我浴室的理想选择。 1开/关,2调光,第三排排风扇手动开/关

还是WLED,一改亮度,一颜色一效果!

在 2019 年 12 月 9 日星期一,djashjones, notifications @github.com 写道:

当得到支持时,这将是我浴室的理想选择。 1 为开/关,2
用于调光和第三排用于排风扇手动开/关


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061?email_source=notifications&email_token=AHRBAT3VMW4JPFEYH32PNMDQXZ7PDA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGKAV4I#issuecomment-563350257
或取消订阅
https://github.com/notifications/unsubscribe-auth/AHRBAT3TD3VBIR2KNW7JCVLQXZ7PDANCNFSM4JLW7MBQ
.

刚拿到我的 :-) ,6 个按钮差异
我同意它控制所有灯:2 个顶部按钮打开和关闭,中间按钮向上或向下变暗,下面 2 个按钮更黄或更少黄色。
根本没有出现在 domoticz 或 phoscon 上:-(。有没有办法控制它控制的灯光?
有没有办法让它只控制特定的灯?
image
image

4 键版本:
image
image
image

所以玩了一下 deCONZ,并注意到有一种方法可以添加 xml 文件来扩展配置文件、设备等。这对这里有帮助吗? 或者我们需要为这些开关获得一些代码支持吗?

我尝试查看用户指南“扩展 zcldb 部分,但不确定如何映射事物。似乎映射是正确的(开/关,调光器和颜色都已识别),但没有像这样的事件或配置我有另一个小米交换机,但我还没有在文件中找到一些明显的东西,告诉我如何将它链接到特定类型的设备。

有没有办法让它只控制特定的灯?

通常,我建议创建一个组,为其添加一个灯并将交换机的客户端集群绑定到该组。 不过,不确定这是否适用于小米。 可能仅绑定一个集群就足够了,但您也可能需要绑定所有三个(_On/Off_、_Level Control_ 和 _Color Control_)。

我不明白 6 按钮开关上第二个端点的用途。

嗯 - 我试过了,超时绑定文件:-(

确保在发出绑定时按下按钮以唤醒开关。

非常感谢 - 经过一些尝试和按压后现在可以工作了。 我不得不单独绑定每件物品,但现在它可以在一盏灯上工作 - 这要好得多。 下一步是我需要它来处理我房间里的 3 盏灯。 我需要3组吗? 一个用于开/关、调光和颜色?
我也会尝试绑定到第二个端点,看看会发生什么......

最好创建一个组,将所有三个集群绑定到它,然后向该组添加多个灯光。

好的 - 设法绑定第二个端点,但它没有做任何事情,尝试做长按,双击等,但什么也没做......
接下来我将尝试组,但现在真的需要事件,因为我想将一些操作链接到非 zibgee 的设备

我也有兴趣支持此开关。 得到了自己的 2、4 和 6 个。 让他们和 conbee 一起工作会很棒......

好吧 - 它现在有点工作,有很多限制。 只要您的灯也由 conbee 控制,您就可以使用它来控制开/关、调光和颜色 - 您可以在 phoscon 中创建一组灯并使用 deCONZ 中的绑定选项连接开关(您可以绑定到一组或单灯)。 但仅此而已。
您无法将事件发送到 domoticz/HA/Homey 等(这是最大的问题),您无法使用长按或双击,也无法更改按钮分配(例如,您无法使用其中一个按钮进行切换)。
我实际上购买了它,以便我可以在每个房间都有一个中央控制器,可以控制灯光和空调(由 domoticz 控制) - 非常急切地等待支持。

专家的另一个问题 - 有没有办法在 deCONZ 中创建“虚拟”光? 我的意思是我可以在 deCONZ 中拥有一个不是真正物理灯泡的光对象。
因为我确实将灯光事件发送到 domoticz - 如果我可以在 deCONZ 中创建一个由开关控制的虚拟灯光,我就可以使用 domoticz 中的事件来控制其他硬件。

有没有人用小米集线器试过,看看效果如何?

2019 年 12 月 14 日星期六 13:28 eserero, notifications @github.com 写道:

好吧 - 它现在有点工作,有很多限制。 你可以用它来
控制开/关、调光和颜色,只要您的灯也受到控制
通过 conbee - 您可以在 phoscon 中创建一组灯并连接
使用 deCONZ 中的绑定选项切换。 但仅此而已。
您无法将事件发送到 domoticz/HA/Homey 等(这是最大的
问题),你不能使用长按或双击,你不能改变
按钮分配(例如,您不能使用其中之一进行切换
纽扣)。
我实际上购买了它,以便我可以在每个中都有一个中央控制器
可以控制灯光和空调的房间(这是
由 domoticz 控制)-如此急切地等待支持。

专家的另一个问题 - 有没有办法创建一个
deCONZ 中的“虚拟”灯? 我的意思是我可以在 deCONZ 中拥有一个轻物体
那不是真正的物理灯泡。
因为我确实得到了 domoticz 的光事件 - 如果我可以创建一个虚拟的
由开关控制的 deCONZ 中的灯,我可以使用中的事件
domoticz 来控制其他硬件。


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061?email_source=notifications&email_token=AHRBAT7XWEUYIXCITRDJBKDQYTNOVA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXWJKLN452HS4DFVREXWJKLN452HS4DFVREXWJKLN452HS4DFVREXWJLG452HS4DFVREXWJKLN452HS4DFVREXWJKLN45200000000000000000000000000000000000000000000003同心
或取消订阅
https://github.com/notifications/unsubscribe-auth/AHRBATZMPO6E6WTQ7OR3DJTQYTNOVANCNFSM4JLW7MBQ
.

没试过。 它仅在新集线器中受支持(支持 Siri 的集线器)。 我猜他们将来会增加对常规集线器的支持,没有真正的理由不这样做。

我开始有这样的印象,即权力对集成新设备没有兴趣,还是我?

我开始有这样的印象,即权力对集成新设备没有兴趣,还是我?

我不认为历史值得这种愤世嫉俗,据我所知,大多数(或全部?)以前的小米设备都已集成。 我更倾向于认为是这个赛季很忙,所以进展缓慢。 也就是说,我也希望能用一两句话让我们知道这些设备并没有被遗忘,即使到目前为止还没有取得任何进展。

不要误会我的意思,我喜欢我的 Conbee II 棒,它已经坚如磐石一年了

刚刚订购了一些三星 Smartthings Zigbee 插头 2019 版,并回顾了以前感兴趣但从未集成过的版本。

我刚拿到我的。 奇怪的是,当您将它连接到 Phoscon 时(您没有得到它找到的反馈),它会立即控制所有灯光。 我什至没有一个所有灯组,所以我不知道如何关闭它。 我在 Phoscon 或通过 REST API 看不到 Switch。 没有任何内容发送到家庭助理。

在硬件说明上,我可以从手册中看到它有一块 CR2032 电池,但没有关于如何最终更换它的说明。 有没有人试图找出是否可能?

找到了对奇怪行为的解释以及如何访问电池。 https://community.hubitat.com/t/xiaomi-opple-6-button-remote/27921/9

正要发布那个链接,但你打败了我!

@manup我们可以为您提供任何信息来帮助您更全面地集成此设备吗?

它控制所有在 phoscon 上的灯?

2019 年 12 月 18 日,星期三,12:41 PremiumUsername, notifications @github.com
写道:

我刚拿到我的。 奇怪的是,当您将它连接到 Phoscon 时(您没有
发现的反馈),它会立即控制所有灯光。 我不
甚至所有灯都有一个组,所以我不知道如何关闭它。 一世
在 Phoscon 中或通过 REST API 看不到 Switch。 没有发送到
家庭助理。

在硬件说明上,我可以从手册中看到它有一块 CR2032 电池
但没有关于如何最终更换它的说明。 有没有人
试图找出是否可能?


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061?email_source=notifications&email_token=AHRBAT72KTKADT3G2HH5XADQZID5PA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHF3C2A#issuecomment-566997352
或取消订阅
https://github.com/notifications/unsubscribe-auth/AHRBAT4WD65QRWPGJHEYYQLQZID5PANCNFSM4JLW7MBQ
.

是的

伙计们,如果您查看我上面的帖子 - 我设法使用 deCONZ 中的绑定选项将其配置为与特定灯光或特定组一起使用。 如果您需要这方面的进一步帮助,请告诉我,我会发布更准确的解释。

如果您需要这方面的进一步帮助,请告诉我

这是一个不错的提议,但为了我的目的,我需要与 Home Assistant 集成。

我会发布更准确的解释。

请做。

如果您需要这方面的进一步帮助,请告诉我

这是一个不错的提议,但为了我的目的,我需要与 Home Assistant 集成。

我也是。 它比我目前使用的 IKEA 5 按钮有更多的选择。

我会发布更准确的解释。

请做。

同意我们需要将事件发送到家庭自动化系统的每个人,否则它是一个瘫痪的解决方案。 我自己使用 Domoticz。

无论如何 - 这就是我所做的让它只在我的客厅灯上工作。

  1. 在 phoscon 中创建一个组(比如灯或任何开关)
  2. 如果您在 chrome 上运行 phoscon,请右键单击页面并选择“检查”。
  3. 转到网络选项卡-您应该看到如下所示的内容(我不知道如何从 deconz 获取组号...)

image

  1. 单击其中包含“组”的行之一 - 在右侧,您可以看到组号。 如果您展开它们,您可以看到您在 phoscon 中定义的组名。 找到你想要的组并记住号码
  2. 转到 deconz,然后从面板下拉列表中选择“绑定面板”
  3. image

  4. 从小米开关打开集群菜单,将“开/关”行拖到绑定框中的“源”按钮上。 它应该是 006。在目标部分选择“组”并输入组号和前面的 0x00,如屏幕截图所示。

  5. 现在按下“绑定”按钮。 - 请注意,我尝试了几次并反复单击开关的其中一个按钮才能唤醒他。
  6. 重复“电平控制”0008和“颜色控制”0300的操作。

eserero 提供的方法可以以任何方式用于在 Home Assistant 中提供对非 zigbee 设备的控制吗? 例如,是否可以在 Phoscon 中创建一个没有灯的灯组,并以某种方式将该组集成到 Home Assitant 中并使用该组的状态来控制自动化?

deCONZ 版本 2.05.71
我也试过了。
@eserero (将开关添加到grop id)相同,但不起作用。
并在我按下按钮时检查 deconz 事件侦听器..
但没什么,安静...

要查看按钮事件,您需要 REST API 插件中的适当支持。 绑定仅用于直接控制灯(并防止开关控制网络中的所有灯)。

@ebaauw是否有一种简单的方法可以在等待正式集成的同时在 REST API 插件中获得适当的支持? 显然有从 Opple 开关到 deconz 的通信。

eserero 提供的方法可以以任何方式用于在 Home Assistant 中提供对非 zigbee 设备的控制吗? 例如,是否可以在 Phoscon 中创建一个没有灯的灯组,并以某种方式将该组集成到 Home Assitant 中并使用该组的状态来控制自动化?

这是一种非常迂回的方法,但是如果可以创建一个空的灯组,您可以在 HA 中使用它来控制自动化(假设可以在 phoscon 中关闭和打开这样的组)。 除非您非常着急,否则最好等待具有真正 deconz 集成的正确按钮事件,而不是在我看来使用权宜之计解决方案。

我有 dc_eventlog 正在运行。
我看到其他传感器和按钮事件,但不是来自 Aqara OPPLE...

我会尽量保持耐心:-)

显然有从 Opple 开关到 deconz 的通信。

从技术上讲,不,交换机不_不_与网关通信; 它发送广播(组播)消息,网关也接收这些消息。 网关窃听从交换机到群组的消息。

请注意,这些 OPPLE 开关的工作方式与其他小米开关非常不同,后者确实直接向协调器发送报告,并且不能直接控制灯光。

在等待正式集成的同时,是否有一种简单的方法可以在 REST API 插件中获得适当的支持?

不会这么容易。 你需要:

如果您以已经支持的类似行为开关为例,并搜索代码以查找将该开关列入白名单的参考,那么这并不太困难。 但这有点反复试验。 这就是为什么我不再为我无权访问的交换机创建 PR。

@ebaauw
我正在按照您的步骤 + 一些额外的白名单添加开关,我可以通过 phoscon 应用程序中的传感器部分将其配对,并且它出现在其余 api 中。 不幸的是,有些事情是不正确的。 没有按钮事件发送...我不确定我做错了什么? 大概是有些冲突?

我尝试使用 Aqara Opple 2 按钮开关。

opple

On/Off 和 Level 集群应该是蓝色的吗?

opple2

至少它不再像其他人报告的那样打开/关闭所有灯:)

没有按钮事件发送...我不确定我做错了什么?大概是有些冲突?

您是否将其链接到按钮映射? deCONZ 日志说什么?

On/Off 和 Level 集群应该是蓝色的吗?

不。集群成对出现:(蓝色)服务器集群是执行器,保持状态; (灰色)客户端集群控制执行器。命令从客户端发送到服务器;报告(和响应)从服务器发送到客户端。控制器有客户端集群其实很正常;其他小米无线开关通过发送报告而不是命令来破坏标准,无法识别。

至少它不再像其他人报告的那样打开/关闭所有灯:)

然后绑定可能配置好。另请注意config.group

@ebaauw好的,我让按钮事件起作用了。 我的按钮映射错了...
由于我是第一次这样做,所以还有一些我不明白的地方。 也许您可以帮助我了解更多,以便我可以正确实施支持...

  1. 关于团体。 我的其他交换机在配置中都没有group 。 为什么这个有一个小组,这样可以吗?

  2. 我让按钮事件工作,但只有单次和双次按下工作。 该开关还应支持长按,但这似乎不起作用。 我注意到单次按下来自 OnOff 集群,而双次按下来自 Level 集群。 这是否意味着长按应该来自颜色集群? 您是否必须以某种方式将颜色集群显式添加到开关中?

  3. 电池信息始终显示null 。 那样行吗?

  4. 当我搜索传感器时,我只能在 phoscon 应用程序中添加开关,而不是开关。 这是为什么? 这可以更改为在我搜索 Switch 时找到它吗?

  1. 关于团体。 我的其他交换机在配置中都没有组。 为什么这个有一个小组,这样可以吗?

你还有什么开关? 只有向(一组)灯发送命令的开关才有config.group 。 正如我上面所说,其他小米开关是个例外,因为它们的行为类似于有状态传感器,而不是无状态无线开关。

  1. 我让按钮事件工作,但只有单次和双次按下工作。 该开关还应支持长按,但这似乎不起作用。 我注意到单次按下来自 OnOff 集群,而双次按下来自 Level 集群。 这是否意味着长按应该来自颜色集群? 您是否必须以某种方式将颜色集群显式添加到开关中?

您需要弄清楚开关在长按时发送的命令。 通常是 _Move_ 暂停和 _Stop_ 长期释放。 deCONZ 应该记录这些命令(当以适量的调试日志开始时)。 它在双击时发送什么命令? _移动到级别_? 我怀疑它是否会从 _Color Control_ 集群发送命令,除非使用长按来循环显示颜色或色温。

  1. 电池信息始终显示为空。 那样行吗?

否。当您从 _Power Configuration_ 集群中读取属性时,它会被填充吗? 如果是这样,您需要创建从这个(服务器!)集群到协调器(端点 0x01)的绑定,并为 _Battery Percentage Remaining_ 配置属性报告。 这应该以 0.5% 报告该值,但并非所有供应商都遵守这一点(特别是宜家)。

  1. 当我搜索传感器时,我只能在 phoscon 应用程序中添加开关,而不是开关。 这是为什么? 这可以更改为在我搜索 Switch 时找到它吗?

抱歉,我没有使用 Phoscon 的经验。 它不是开源的,所以只有 dresden elektronik 可以改变它。

  1. 是的,我还有其他一些小米开关。 但我也有飞利浦 Hue Dimmer 开关,我刚刚注意到他们也有一组。 所以我现在清楚了:)

  2. 所以我在查看 deCONZ 日志后发现我的按钮映射是错误的,这就是我如何让单按和双击工作。 但是对于长按,日志中没有任何内容出现。 对于双击,我现在在控制台中得到button 1004 Double pressbutton 2004 Double press 。 按钮图如下所示:

static const Sensor::ButtonMap aqaraOpple2Map[] = {
//    mode                          ep    cluster cmd   param button                                       name
    // First button Off
    { Sensor::ModeScenes,           0x01, 0x0006, 0x00, 0,    S_BUTTON_1 + S_BUTTON_ACTION_INITIAL_PRESS, "Normal press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 1,    S_BUTTON_1 + S_BUTTON_ACTION_DOUBLE_PRESS, "Double press" },
    // First button On
    { Sensor::ModeScenes,           0x01, 0x0006, 0x01, 0,    S_BUTTON_2 + S_BUTTON_ACTION_INITIAL_PRESS, "Normal press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 0,    S_BUTTON_2 + S_BUTTON_ACTION_DOUBLE_PRESS, "Double press" },

    // end
    { Sensor::ModeNone,             0x00, 0x0000, 0x00, 0,    0,                                           nullptr }
};

不确定这是否 100% 正确。

有什么地方可以通过长按日志进行调试吗? 或者我现在需要如何继续找出为什么没有出现长按?

  1. 这是我阅读后电源配置的样子。
    opple3

  2. 知道了。

感谢您的支持。

按钮图看起来像那样

因此交换机在双击时发送 _Step_ 命令(集群 0x0008,命令 0x02)。

有什么地方可以通过长按日志进行调试吗?

使用--dbg-info=2 --dbg-aps=2 --dbg-error=1tail -f输出运行 deCONZ。 您应该会看到如下消息:

Dec 23 19:52:14 pi5 deCONZ[13715]: 19:52:11:389 APS-DATA.indication srcAddr: 0x7ce3, srcEp: 0x01 dstAddrMode: 1, profile: 0x0104, cluster: 0x0006, lqi: 255, rssi: -46
Dec 23 19:52:14 pi5 deCONZ[13715]: 19:52:11:389     asdu: 011601
Dec 23 19:52:14 pi5 deCONZ[13715]: 19:52:11:389 APS-DATA.indication from child 0x7CE3
Dec 23 19:52:14 pi5 deCONZ[13715]: 19:52:11:389 verify 0x000d6ffffea46abf is child node after 778788 s
Dec 23 19:52:14 pi5 deCONZ[13715]: 19:52:11:389 button 1002 On
...
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:55:635 APS-DATA.indication srcAddr: 0x7ce3, srcEp: 0x01 dstAddrMode: 1, profile: 0x0104, cluster: 0x0008, lqi: 255, rssi: -48
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:55:635     asdu: 0117050053
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:55:635 APS-DATA.indication from child 0x7CE3
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:55:636 button 1001 Move up (with on/off)
...
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:58:306 APS-DATA.indication srcAddr: 0x7ce3, srcEp: 0x01 dstAddrMode: 1, profile: 0x0104, cluster: 0x0008, lqi: 255, rssi: -48
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:58:306     asdu: 011807
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:58:306 APS-DATA.indication from child 0x7CE3
Dec 23 19:56:04 pi5 deCONZ[13715]: 19:55:58:308 button 1003 Stop (with on/off)

这是 Trådfri On/Off 控制器的按下、保持和长释放。 每个序列中的第一条消息是 APS-DATA.indication,显示源的 NWK 地址(在我的情况下为 0x7ce3)。 检查 deCONZ GUI 中的 _Node Info_ 面板,以查找交换机的 NWK 地址。 接下来您会看到源端点 (0x01)、配置文件(0x0104 用于 ZHA)和集群(0x0006 用于 _On/Off_ 或 0x0008 用于 _Level Control_)。 在asdu您可以看到 ZCL 负载。 第一个字节是一些状态位图,第二个字节是序列号,第三个字节是命令( 01用于 _On_; 05用于 _Move with (On/Off)_;和07用于 _Stop_)。 请参阅 ZigBee 集群库规范。 之后的字节是命令参数( 00表示方向:_Up_ 和53表示移动速率)。 请注意, button 100x之后的文本来自按钮映射。
在按钮映射中找不到匹配的命令时,deCONZ 应该记录警告,但我手头没有示例。

  1. 这是我阅读后电源配置的样子。

当然,小米不会报告_Battery Percentage Remaining_,即使他们现在有一些“正常”的开关​​。 您需要在此处将交换机列入白名单:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/bb47cdbc19c257e3000fdb8475aa456830e6df94/de_web_plugin.cpp#L5736
欧普有什么类型的电池? CR2032? 将电压转换为百分比的代码对于任何 3V 锂纽扣电池都可能同样糟糕。 您可能仍然需要绑定和属性报告,但也可能对交换机进行了硬编码,以定期向协调器(NWK 地址 0x0000)报告。

1.

因此,交换机在双击时发送 Step 命令(集群 0x0008,命令 0x02)。

没关系还是有问题?

2.
好的,所以我也得到了长按(按住)的方式工作。 这就是按钮映射现在的样子:

static const Sensor::ButtonMap aqaraOpple2Map[] = {
//    mode                          ep    cluster cmd   param button                                       name
    // First button Off
    { Sensor::ModeScenes,           0x01, 0x0006, 0x00, 0,    S_BUTTON_1 + S_BUTTON_ACTION_INITIAL_PRESS, "Normal press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 1,    S_BUTTON_1 + S_BUTTON_ACTION_DOUBLE_PRESS, "Double press" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4c, 1,    S_BUTTON_1 + S_BUTTON_ACTION_HOLD, "Hold off" },

    // First button On
    { Sensor::ModeScenes,           0x01, 0x0006, 0x01, 0,    S_BUTTON_2 + S_BUTTON_ACTION_INITIAL_PRESS, "Normal press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 0,    S_BUTTON_2 + S_BUTTON_ACTION_DOUBLE_PRESS, "Double press" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4c, 3,    S_BUTTON_2 + S_BUTTON_ACTION_HOLD, "Hold On" },

    // end
    { Sensor::ModeNone,             0x00, 0x0000, 0x00, 0,    0,                                           nullptr }
};

但不幸的是,无论我是按住开关上的左键还是右键,它总是只触发Hold off事件(左键)。 我在这里做错了什么? 参数不同,我在按钮图中有它,但仍然不起作用......

这是调试:

20:56:43:000 APS-DATA.indication srcAddr: 0xf9d4, srcEp: 0x01 dstAddrMode: 1, profile: 0x0104, cluster: 0x0300, lqi: 255, rssi: -49
20:56:44:000    asdu: 11224c0345000700000000000000
20:56:44:001 button 1001 Hold off

20:56:59:307 APS-DATA.indication srcAddr: 0xf9d4, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0300, lqi: 255, rssi: -49
20:56:59:307    asdu: 11234c0145000700000000000000
20:56:59:307 button 1001 Hold off

3.
是的,它有一块 CR2032 电池。 在我将指定位置的开关列入白名单后,它会显示电池百分比,但仅当我使用 gui 手动读取电源配置集群时......为什么会这样?

没关系还是有问题?

我在这里做错了什么? 参数不同,我在按钮图中有它,但仍然不起作用......

您需要在 _Move Color Temperature_ 之后处理 0x4c 命令(_Step Color Temperature_):
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/bb47cdbc19c257e3000fdb8475aa456830e6df94/de_web_plugin.cpp#L3418 -L3419
逻辑可能与 _Step_ 相同:

https://github.com/dresden-elektronik/deconz-rest-plugin/blob/bb47cdbc19c257e3000fdb8475aa456830e6df94/de_web_plugin.cpp#L3384

您不应该在没有相应 x003 的情况下发出 x001。 如果交换机在长时间发布时不发送任何内容,您应该将这些命令映射到 x003。

但只有当我使用 gui 手动读取电源配置集群时......为什么会这样?

正如我所说,您可能需要设置属性报告。

好的,我得到了保持按钮事件也能正常工作。 我认为事件现在已正确发送......

正如我所说,您可能需要设置属性报告。

我不知道该怎么做。 你能帮我解决这个问题吗?

所以,现在这种开关工作正常。 还有一些问题需要解决,但我不知道现在如何进行。 我也不确定我在那里编码的那个是否是处理开关的正确方法......

正如我所说,您可能需要设置属性报告。

我不知道该怎么做。 你能帮我解决这个问题吗?

我不知道现在如何进行。 我也不确定我在那里编码的那个是否是处理开关的正确方法......

最好创建一个拉取请求,以便可以审查代码。

我都这样设置了,但是还是不行。 有趣的是,几分钟后我添加了一个开关后,我什至无法再通过 deconz gui 手动读取属性。 手动读取总是会超时。 但是按钮事件从开关开始工作......

我让所有 3 个开关(2、4 和 6 个按钮)至少部分工作。 我仍然有很多问题,我不确定此时是否可以解决它们。

  1. 交换机与VENDOR_115F共享相同的供应商组。 我怀疑这可能会导致一些问题。

  2. 由于某种原因,添加开关并不总是有效。 有时它在第一次尝试时有效,但有时我必须尝试多次。 我不知道为什么。

  3. 我只能在搜索传感器时添加一个开关。 我也可以搜索开关,但永远不会成功,即使开关仍然配对但行为很奇怪。 也不知道为什么...

  4. 当我添加一个交换机时,总是为每个交换机创建一个新组。 我现在已经喜欢了 50 个组(因为多次删除和重新添加开关)。 对于 Aqara Opple 交换机总是只创建一个组,这可以以某种方式完成吗?

  5. 有时在配置中的温度会出现在其余 api 中。 即使我在database.cpp中将其列入黑名单...

  6. 4 按钮开关没有保持按钮事件。 无论我按住哪个按钮,总是只按一下。

  7. 6 按钮开关没有双按事件。 在这里,无论我在哪里双击,总会有一次按下。

  8. 当我按住按钮时,用于保持的 6 按钮开关会发送一个保持事件,当我释放它时会发送一个释放事件。 无论我是按住左键还是右键,释放时总是出现相同的事件,左释放或右释放没有区别。 这样可以吗? 即使地图是正确的,第 5 个和第 6 个按钮的保持和释放也不起作用。 我的地图是这样的:

static const Sensor::ButtonMap aqaraOpple6Map[] = {
//    mode                          ep    cluster cmd   param button                                       name
    // First button Off
    { Sensor::ModeScenes,           0x01, 0x0006, 0x00, 0,    S_BUTTON_1 + S_BUTTON_ACTION_INITIAL_PRESS, "Off top press" },
    // First button On
    { Sensor::ModeScenes,           0x01, 0x0006, 0x01, 0,    S_BUTTON_2 + S_BUTTON_ACTION_INITIAL_PRESS, "On top press" },
    // Third button Off
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 1,    S_BUTTON_3 + S_BUTTON_ACTION_INITIAL_PRESS, "Off middle press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x01, 1,    S_BUTTON_3 + S_BUTTON_ACTION_HOLD, "Off middle hold" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x03, 0,    S_BUTTON_3 + S_BUTTON_ACTION_LONG_RELEASED, "Off middle hold stop" },
    // Fourth button On
    { Sensor::ModeScenes,           0x01, 0x0008, 0x02, 0,    S_BUTTON_4 + S_BUTTON_ACTION_INITIAL_PRESS, "On middle press" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x01, 0,    S_BUTTON_4 + S_BUTTON_ACTION_HOLD, "On middle hold" },
    { Sensor::ModeScenes,           0x01, 0x0008, 0x03, 0,    S_BUTTON_4 + S_BUTTON_ACTION_LONG_RELEASED, "On middle hold stop" },
    // Fifth button Off
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4c, 1,    S_BUTTON_5 + S_BUTTON_ACTION_DOUBLE_PRESS, "Off bottom press" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4b, 1,    S_BUTTON_5 + S_BUTTON_ACTION_HOLD, "Off bottom hold" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4b, 0,    S_BUTTON_5 + S_BUTTON_ACTION_LONG_RELEASED, "Off bottom hold stop" },
    // Sixt button On
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4c, 3,    S_BUTTON_6 + S_BUTTON_ACTION_DOUBLE_PRESS, "On bottom press" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4b, 3,    S_BUTTON_6 + S_BUTTON_ACTION_HOLD, "On bottom hold" },
    { Sensor::ModeScenes,           0x01, 0x0300, 0x4b, 0,    S_BUTTON_6 + S_BUTTON_ACTION_LONG_RELEASED, "On bottom hold stop" },

    // end
    { Sensor::ModeNone,             0x00, 0x0000, 0x00, 0,    0,                                           nullptr }
};

我将从我拥有的代码中创建一个拉取请求,也许有人可以帮助我解决仍然存在的问题。 至少我认为这是正确的方向,并且开关已经慢慢可用。

再次感谢@ebaauw没有你的帮助我不会走那么远👍

  1. 这些交换机与 VENDOR_115F 共享同一供应商组。 我怀疑这可能会导致一些问题。

我不这么认为。 这只是识别设备的属性之一。

  1. 有时在配置中的温度会出现在其余 api 中。 即使我在database.cpp中将其列入黑名单...

交换机是否在_Basic_集群中发送小米特殊属性报告(属性0xff01或0xff02)? 在这种情况下,它会报告其内部温度,可能与电池电压一起报告。 您应该会在 deCONZ 日志中看到一条消息“提取小米特殊属性”。

  1. 4 按钮开关没有保持按钮事件。 无论我按住哪个按钮,总是只按一下。

这实际上取决于交换机发送的 ZigBee 命令。 只有 _Move_ 带有相应的 _Stop_; _Step_ 或 _Move to Level_ 没有。

  1. 当我按住按钮时,用于保持的 6 按钮开关会发送一个保持事件,当我释放它时会发送一个释放事件。 无论我是按住左键还是右键,释放时总是出现相同的事件,左释放或右释放没有区别。

看起来按钮映射中的param错误。 请注意,当长释放 _Off_ 或 _On_ 时,开关发送相同的 _Stop_ 命令。 REST API 插件会记住sensor->previousDirection前一个 _Move_ 的方向,以知道要发送哪个 x003 事件。

  1. 当我按住按钮时,用于保持的 6 按钮开关会发送一个保持事件,当我释放它时会发送一个释放事件。 无论我是按住左键还是右键,释放时总是出现相同的事件,左释放或右释放没有区别。 这样可以吗? 即使地图是正确的,第 5 个和第 6 个按钮的保持和释放也不起作用。

我不明白处理 _Move Color Temperature_ 命令的param的代码。 dresden elektronik 照明开关就在那里。 对于sunricherCCTMap我放入了一些调试语句以查看param的值是什么,并将这些值放入按钮映射中。 它似乎有效,尽管我不确定为什么。 请参阅我在https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1509#issuecomment -530545504 中的评论。

  1. 4 按钮开关没有保持按钮事件。 无论我按住哪个按钮,总是只按一下。
  2. 6 按钮开关没有双按事件。 在这里,无论我在哪里双击,总会有一次按下。

我有 4 个按钮和 6 个按钮,当我尝试将它们连接到 Aqara 集线器时,在 Aqara 应用程序和 HomeKit 中的所有按钮上都进行了单、双和保持操作。 所以我想他们也应该在德恩兹这样工作。

你能嗅出他们发送的命令吗?

我不这么认为。 这只是识别设备的属性之一。

是的,但是在该组 ID VENDOR_115F的代码中有一些检查,它们执行了一些我不理解的其他操作。

交换机是否在Basic集群发送小米特殊属性报告(属性0xff01或0xff02)? 在这种情况下,它会报告其内部温度,可能与电池电压一起报告。 您应该会在 deCONZ 日志中看到一条消息“提取小米特殊属性”。

我没有在控制台中看到这样的消息。 当它出现在配置中时,温度值总是保持null

这实际上取决于交换机发送的 ZigBee 命令。 只有 Move 带有相应的 Stop; a Step 或 Move to Level 没有。

发送的命令映射在按钮映射中,调试日志中没有其他任何内容。

看起来像按钮映射中的错误参数。 注意开关在长释放Off或On时发送相同的停止命令。 REST API 插件会记住传感器->previousDirection 中上一个 Move 的方向,以知道要发送哪个 x003 事件。

那么我应该如何将其映射到按钮映射中? 就像你说的一样 _Stop_ 命令来自开关,无论我释放哪个按钮,所以我总是在调试日志中得到 _On middle hold stop_。

我不明白处理移动色温命令参数的代码。 dresden elektronik 照明开关就在那里。 对于 sunricherCCTMap,我放入了一些调试语句以查看 param 的值,并将这些值放入按钮映射中。 它似乎有效,尽管我不确定为什么。 见我在#1509(评论)中的评论。

我也没有 :) 所以在 Aqara Opple 的情况下需要特殊处理吗?

顺便说一下,您可以查看拉取请求,看看是否有您注意到的地方可能是错误的...

deconz 什么时候支持 Aqara OPPLE 开关?
下个版本?

初始支持包含在#2239
我已经在我的机器上运行了该代码的自定义构建,并且它们在一些小问题上运行良好。 我们只需要等到@manup合并我的拉取请求...

非常感谢让这次整合如此迅速的所有人。 我准备按下订单按钮来接收其中一些开关!!

我已经在我的机器上运行了该代码的自定义构建,并且它们在一些小问题上运行良好。

做得很好! 剩下的小问题是什么?

有时可能会发生它们在第一次尝试时不配对的情况(但这可能只是与我的开发环境有关)。
此外,由于某种原因,4 按钮开关没有保持事件,而 6 按钮开关缺少双击事件。
除此之外,它们工作正常,我每天都使用它们,没有任何其他问题。

有时可能会发生它们在第一次尝试时不配对的情况(但这可能只是与我的开发环境有关)。
此外,由于某种原因,4 按钮开关没有保持事件,而 6 按钮开关缺少双击事件。
除此之外,它们工作正常,我每天都使用它们,没有任何其他问题。

zigbee2mqtt 6 按钮版本也只有one click事件,所以它可能是小米故意制作的?

有人在这里提到,对于 Aqara 集线器,所有事件都在所有 3 个交换机上,所以我不确定。

按钮一缺少双击事件。

根据这篇评论: https :

似乎双击应该可用于 6 按钮版本,至少如果与小米集线器一起使用。 如果不使用小米集线器,交换机是否有可能感应到使用的协调器并限制功能?

有人在这里提到,对于 Aqara 集线器,所有事件都在所有 3 个交换机上,所以我不确定。

是的,我已经使用 Aqara 集线器测试了 4 按钮 + 6 按钮版本,单按、按住和双击适用于所有按钮。 都可以在小米/Aqara Home app 或 HomeKit 中配置。 也许 zigbee 嗅探器可以解决这个问题?

是的,有人需要嗅探这些交换机与 Aqara 集线器的 zigbee 通信。 据我所知,甚至没有数据包到达 deconz,这表明双击了 6 按钮开关。
因此,拥有 Aqara 集线器和这些交换机的人需要嗅探流量......

我不是 zigbee 的专家。
但是要为 Deconz 更改代码以添加设备是 1980。

如果可以将包含 deconz 支持的新设备的支持和解释/信息的文件导入到 Deconz 中,那就太好了。

确实如此,我认为出于这个原因,他们希望在 REST API v2 上工作,这应该可以更轻松地添加新设备。

是的,有人需要嗅探这些交换机与 Aqara 集线器的 zigbee 通信。 据我所知,甚至没有数据包到达 deconz,这表明双击了 6 按钮开关。
因此,拥有 Aqara 集线器和这些交换机的人需要嗅探流量......

很高兴您添加了此设备 merdok! :)
我看到 manup 现在已经批准了拉取请求。 好消息 :)
由于我自己不是编码员,但我同时拥有 Aqara 集线器和 Opple 交换机。 如果您或其他人愿意尝试使用它,我可以购买嗅探器并发布日志?

我的意思是如果你已经有一个 conbee 棒,那么你可以用它来嗅探交通。

我的意思是如果你已经有一个 conbee 棒,那么你可以用它来嗅探交通。

我有一个 Conbee II,据我所知,它还不支持 Wireshark。 我完全理解嗅探器日志可能没有任何用处。 尽管如此,我今天还是会订购一个嗅探器,然后用日志在这里报告。 由于我在一个盒子里有这些 Opple 开关,等待安装并集成到我的整个房子里,我不知道为什么所有按钮事件在 Aqara 中都有效,但在 deconz 中无效。 :)

没错,对 Conbee 2 的支持应该会在今年到来...
但是,如果您可以嗅探流量,那就太好了,肯定会对丢失的东西有所帮助。

没错,对 Conbee 2 的支持应该会在今年到来...
但是,如果您可以嗅探流量,那就太好了,肯定会对丢失的东西有所帮助。

我昨天确实订购了带有调试器/编程器的 CC2531。 一旦它到达,我会在这里报告日志。

完美👍

大家好-到目前为止,这方面取得了惊人的进展:-)。
有人可以在此处发布具有 opple 支持的 ubuntu 的已编译rest API 吗? 我尝试使用主页中的说明进行编译,但无法获得第一个命令(sudo apt install deconz-dev)-无法找到 deconz-dev ....

我认为你应该多一点耐心,我相信@manup很快就会发布一个新版本:)

:sob: 但我现在想要它 :grin:
我想更新 domoticz python 插件来创建和支持它,但我会耐心等待。

所以我嗅探了 Aqara 集线器和 6 个按钮 + 4 个按钮 Opple 开关之间的流量。
我注意到的不同之处在于:
单击:
“Uint16:1(0x0001)”
双击:
“Uint16:2(0x0002)”
抓住:
“Uint16:0(0x0000)”
释放保持:
“Uint16:255(0x00ff)”

我认为您不需要所有按钮的日志,因为唯一更改的值是“源端点”,它仅表明它是按钮 1、2、3、4、5 还是 6。
以下日志将用于按钮 1。

6 键单击:

Frame 1072: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Network Layer Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 158
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 137
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 137
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 1
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 1 (0x0001)

6键双击:

Frame 1083: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Network Layer Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 160
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 139
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 139
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 2
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 2 (0x0002)

6键保持:

Frame 1086: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Network Layer Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 161
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 140
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 140
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 0
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 0 (0x0000)

6键释放保持:

Frame 1088: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Network Layer Data, Dst: 0x0000, Src: 0xa6cd
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 162
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 141
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 141
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 255
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 255 (0x00ff)

所以第 4 个按钮看起来非常相似,第一个按钮上的所有日志也是如此。
4 键单击:

Frame 1097: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x19bb
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x19bb
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 44
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 33
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 33
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 1
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 1 (0x0001)

4键双击:

Frame 1099: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x19bb
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x19bb
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 45
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 34
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 34
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 2
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 2 (0x0002)

4键保持:

Frame 1110: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x19bb
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x19bb
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 47
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 36
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 36
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 0
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 0 (0x0000)

4 键释放保持:

Frame 1112: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface \\.\pipe\zboss_sniffer, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x0000, Src: 0x19bb
ZigBee Network Layer Data, Dst: 0x0000, Src: 0x19bb
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
        .... ..00 = Frame Type: Data (0x0)
        .... 00.. = Delivery Mode: Unicast (0x0)
        ..0. .... = Security: False
        .0.. .... = Acknowledgement Request: False
        0... .... = Extended Header: False
    Destination Endpoint: 1
    Cluster: Multistate Input (Basic) (0x0012)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 48
ZigBee Cluster Library Frame, Command: Report Attributes, Seq: 37
    Frame Control Field: Profile-wide (0x18)
    Sequence Number: 37
    Command: Report Attributes (0x0a)
    Attribute Field, Uint16: 255
        Attribute: Present Value (0x0055)
        Data Type: 16-Bit Unsigned Integer (0x21)
        Uint16: 255 (0x00ff)

日志中还有一些树,但我认为不需要? 但是,如果需要更多日志,我将很乐意提供。

嗅探器好运吗,@addellll? 我有一个 6 键版本,我认为它的表现很奇怪。 我不相信按钮映射是正确的。 很难相信 Aqara 中心和 deCONZ 之间的情况会有根本不同。 (编辑:啊,我看到你的新帖子就在上面......及时!)

好东西, @addellll

我觉得 Opple 是一个混合体,就像 Hue 调光器开关一样:in 发送两个命令来直接控制灯光以及报告通知协调员。 _Multistate Input_ 和 _Present Value_ 的使用是小米的典型做法,但通常他们会在描述符中通告集群(和端点)。

我有点担心这些报告没有出现在 deCONZ 日志中。 这对小米来说是不典型的,但也许Aqara集线器在交换机配对时做了一些配置?

@merdok ,最好更改按钮图以查找这些报告而不是命令,请参阅 Hue 调光器开关的按钮图。

@addellll谢谢! 有了这些知识,我们可以改进支持:)

@ebaauw但我在这些交换机的 deconz gui 中没有看到多状态集群? 这会是一个问题吗?

我不这么认为,但我不确定。 也许这就是您没有在日志中看到这些报告的原因?

我知道还有其他设备不会宣传所有受支持的集群。 对于那些,REST API 插件只是将丢失的集群推回指纹,之后 GUI 将显示它们。 我想可以对缺失的端点采取类似的方法,但我认为我以前没有见过。

https://github.com/dresden-elektronik/deconz-rest-plugin/blob/10810836905fbcd1e7c9fafcaf386702c9fed41f/de_web_plugin.cpp#L3749

所以我只是尝试在交换机的多个位置添加.push_back(MULTISTATE_INPUT_CLUSTER_ID);但这并没有帮助......多状态集群仍然没有出现在 deconz gui 中,并且日志中没有来自该集群的事件/报告。 不知道问题出在哪里。

我也没有,恐怕。 传感器在发送 _Multistate Input_ 报告之前也有可能需要进行特殊设置。 将传感器与 Aqara 集线器配对时,我们需要一个嗅探器日志来确认或消除这一点。

哦,您将在处理_Basic_ 集群时将集群添加到fpSwitch.inClusters ,根据Opple 的modelIdmanufacturercode进行检查。 对于来自第一个端点的报告来说,这至少应该足够了。

今晚或明天我将提供配对日志。

这是在将 Aqara 集线器置于配对模式之前的第二个完整转储,直到与交换机配对成功。 最后一个动作只需按一下第一个按钮。
https://anonfile.com/d9K910P9n4/OppleAqaraPairing_pcapng
只需在 Wireshark 中打开它。

谢谢。 我看到 Opple 上没有任何配置。 然而,Opple 向协调器请求_Node Descriptor_。 我以前从未见过设备这样做。 它是否试图确定(从_制造商代码_0x115F)是否通过小米集线器加入网络? 还是只是为了确认它可以向协调器发送属性报告?

@addellll您是否已经尝试将 Opple 与 deCONZ 配对,嗅探它是否也将 _Multistate Input (Basic)_ 属性报告发送到网关?

有趣的是,Aqara 集线器不检查 Opple 的 _Node Descriptor_ 也不检查 _Simple Descriptors_。 这表明它已经根据 _Model Identifier_ 和可能的 _Application Version_(因为它只查询这些 _Basic_ 属性)对每个设备的指纹进行了硬编码。 Oppla 也发送这两个属性的属性报告。

我确实看到了 0xfcc0/0x00f7(制造商代码为 0x115f)的属性报告,它看起来很像小米的特殊属性报告,但现在编码为 octec 字符串(类型 0x41)。 不过,有效载荷似乎解码得很好:

  battery    temp         ?   RSSI dB             LQI         ?         ?       ?     on?
--------- ------- --------- --------- --------------- --------- --------- ------- -------
0121 e30b 0328 19 0421 a801 0521 1200 0624 0300000000 0821 1101 0a21 0000 0c20 01 6410 00
   3.043V    25°C  u16  424  u16   18  u40          3  u16  273  u16    0   u8  1   false

我认为我们以前没有见过0c标签。 64用于门传感器的打开/关闭、水传感器的泄漏以及lumi.ctrl_ln2开/关。 04080a很常见,但我们一直无法弄清楚它们的含义。
总结:我们应该能够为 Opple 支持config.batteryconfig.temperature

你能告诉我基本集群处理在哪里发生吗? 我在以下位置找到了一些东西:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/10810836905fbcd1e7c9fafcaf386702c9fed41f/de_web_plugin.cpp#L3706
但实际上我的任何设备都不会调用它......

我认为我们现在应该专注于 Multistate 集群并使其工作,然后我们可以从特殊属性中获取温度和电池

编辑:
确定这只是在配对设备时被调用。 所以它确实被调用了,我将多状态集群添加到fpSwitch.inClusters但仍然没有运气。 gui 没有变化,也没有事件/报告到达......

完全转储在我的 deconz 中运行 Aqara 开关,按下一些不同的按钮。 但是我没有在这里使用合并的 pull 运行最新的源代码。 源 ID 为 0x4177。 我不知道这是否有帮助...
https://anonfile.com/Z34b69Pdne/OppleDeconz_pcapng

使用带有 Conbee (I) 的 deCONZ 2.05.66。 我确实意识到还不支持 Opple 开关,但我想知道为什么我的所有 zigbee 灯(Hue 和 Tradfri)在与 Opple 6 开关配对后按下按钮时都会打开/关闭。 正在发送某种广播命令?

使用带有 Conbee (I) 的 deCONZ 2.05.66。 我确实意识到还不支持 Opple 开关,但我想知道为什么我的所有 zigbee 灯(Hue 和 Tradfri)在与 Opple 6 开关配对后按下按钮时都会打开/关闭。 正在发送某种广播命令?

此更新尚无构建版本,您需要编译源代码才能使其今天正常工作,否则您需要等到@manup构建新版本。 我相信它很快就会到来。

使用带有 Conbee (I) 的 deCONZ 2.05.66。 我确实意识到还不支持 Opple 开关,但我想知道为什么我的所有 zigbee 灯(Hue 和 Tradfri)在与 Opple 6 开关配对后按下按钮时都会打开/关闭。 正在发送某种广播命令?

此更新尚无构建版本,您需要编译源代码才能使其今天正常工作,否则您需要等到@manup构建新版本。 我相信它很快就会到来。

我知道 :) 只是想知道为什么我的所有 zigbee 灯在当前的 deCONZ 版本中都被打开/关闭。 它是发送广播命令还是什么?

是的,交换机发送的广播会影响您的 zigbee 网络中的灯。 这将在新版本发布后立即修复。

是的,交换机发送的广播会影响您的 zigbee 网络中的灯。 这将在新版本发布后立即修复。

@merdok - 我为不同的 HA 系统 Hubitat 编写了小米 / Aqara 设备驱动程序,我想知道您是如何解决这些交换机向 _all devices_ 组发送组播消息的问题的。

您的 deCONZ 修改是否保持与协调器的绑定,但将分配的组更改为协调器上的空组?

对协调器没有约束力。 默认情况下,小米设备将报告发送给协调器(NWK 地址 0x0000)。

协调器上没有组。 ZigBee 组就像一个多播地址,设备订阅该地址。 有关详细信息,请参阅(蓝色)服务器 _Groups_ 集群的 deCONZ GUI 中的 _Cluster Info_ 面板。

在出厂新状态下,Opple 发送广播消息直接控制灯光(不受 deCONZ 的干扰)。 当将(灰色)客户端 _On/Off_ 和 _Level Control_ 集群绑定到一个组时,它会改为发送组播消息。 deCONZ 窃听广播/组播消息以对按钮事件进行逆向工程。 当它看到一个群播时,它会在传感器资源中设置config.group

对协调器没有约束力。 默认情况下,小米设备将报告发送给协调器(NWK 地址 0x0000)。

协调器上没有组。 ZigBee 组就像一个多播地址,设备订阅该地址。 有关详细信息,请参阅(蓝色)服务器 _Groups_ 集群的 deCONZ GUI 中的 _Cluster Info_ 面板。

我不是很精通 ZigBee 网络,但是绑定表不是由协调器存储和管理的吗?

哪些设备管理 ZigBee 组——协调器、路由器、终端设备,还是三者?

在出厂新状态下,Opple 发送广播消息直接控制灯光(不受 deCONZ 的干扰)。 当将(灰色)客户端 _On/Off_ 和 _Level Control_ 集群绑定到一个组时,它会改为发送组播消息。 deCONZ 窃听广播/组播消息以对按钮事件进行逆向工程。 当它看到一个群播时,它会在传感器资源中设置config.group

在工厂新状态下,我知道 Aqara-Opple 按钮会向所有节点(端点 0xFFFF)广播消息,因此集群绑定到该端点,对吗?

如果我正确理解您的解释,那么可以使用 Aqara-Opple 按钮的唯一方法是将相关集群绑定到一个组,而不是绑定到协调器 - 所以单播是不可能的。 并且 Aqara-Opple 交换机必须始终配置为直接控制至少一个终端设备(作为组的一部分)。

所以我想知道 Aqara 集线器如何管理 Aqara-Opple 按钮的配置,以便它们在配对后默认不控制网格上的所有灯/开关?

但是绑定表不是由协调器存储和管理的吗?

不,每个 ZigBee 设备都有自己的绑定表,用于配置每个端点和集群将消息发送到哪里。 从帮助菜单中查看 GUI 用户手册中关于 _Binding Dropox_ 的部分。

以及哪些设备管理 ZigBee 组

ZigBee 组只是一个数字,而不是要管理的对象。 每个设备管理自己的成员资格,即有自己的监听组成员资格表。 正如我之前所说,这个表是通过 _Groups_ 集群管理的。

端点 0xFFFF

那是 NWK 广播地址,而不是端点。

所以集群绑定到那个端点目的地,对吗?

不,正如我所说,它是硬编码的,以防绑定表中没有条目。

可以使用 Aqara-Opple 按钮的唯一方法

不,我从来没有这么说过。 要阻止 Opple 发送广播,您需要从 _On/Off_ 和 _Level Control_ 集群创建绑定。 最佳做法是一组。 交换机不知道也不关心是否有任何灯在听那个组。

直接控制至少一个终端设备

通常交换机控制路由器; 终端设备往往处于休眠状态且无法控制,因为它们的无线电已关闭(以节省电池电量)。

所以我想知道 Aqara 集线器如何管理 Aqara-Opple 按钮的配置,以便它们在配对后默认不控制网格上的所有灯/开关?

它在设备上创建绑定。 一旦完全支持交换机,REST API 插件也将如此。

感谢您的耐心等待,@ebaauw! 我明白一切,但我还有一个问题:

要阻止 Opple 发送广播,您需要从 _On/Off_ 和 _Level Control_ 集群创建绑定。 最佳做法是一组。 交换机不知道也不关心是否有任何灯在听那个组。

是否可以从这些集群创建绑定到组以外的其他东西?

我问的原因是我不使用 DeCONZ,我使用了不同的 HA 解决方案,并且正在尝试找出使 Aqara-Opple 按钮设备的工作方式类似于 Aqara/小米按钮设备的工作方式的方法 - 仅发送向协调员报告。

见上面的对话。 Opple 的工作方式与所有其他小米设备不同,它直接控制灯光。 除此之外,它还从服务器 _Multistate Input_ 集群向协调器发送报告,同样没有绑定。 不知何故,deCONZ 不接收或处理这些,我们仍在弄清楚原因(可能与 Opple 不通告 _Multistate Input_ 集群或其他端点的事实有关)。 您仍然需要为客户端集群创建绑定以阻止 Opple 广播命令。

请注意,REST API 不会公开创建绑定。 这是 REST API 插件内部的。

跑题了,不确定:下个版本会不会支持Aqara OPPLE?
我在提交中没有看到任何参考“OPPLE”。

是的,初始支持将包含在下一个版本中。

它是否已经包含在 14 日更新的http://deconz.dresden-elektronik.de/raspbian/beta/deconz-latest-beta.deb中?

我用 Aqara OPPLE 开关 *4 和 *6 按钮测试 deconz-2.05.73。
并且可以添加开关。

单压机没问题。
但是*2点击和长按是随机的。
正在处理一些按钮。

但是我看不到 phoscon 中的开关。

这些开关之间的 2 单击和长按是不同的。 这是因为我们仍在努力在 deconz 中提供正确的端点。 我们知道交换机上存在一个多状态集群,但它在 deconz 中不可见...

您好,使用持续测试版,我已成功尝试在 Phoscon 中包含 4 个按钮和 6 个按钮,但不会像您说的那样显示 ostgardh。

4个按钮切换:4个按钮1点击ok,3、4按钮双击ok,不再长按
6个按钮切换:1在6个按钮上单击确定,双击不确定,在按钮3、4、5上长按确定,但在6个按钮上长按返回5个按钮释放(6001 - > 5003)

我有一个问题:如何打开开关更换电池?

刚刚更新到 2.05.73 - 我如何配对 opple 开关? 按下背面的 C 按钮没有任何作用,LED 闪烁 3 次但 deconz 无法识别开关。

deconz 无法识别开关

配对后在 deconz GUI 中看不到它,并且当您尝试配对时它不会报告它已配对任何东西。 如果您使用家庭助理,您可以 vnc 进入 deconz 以查看开关是否在设备映射中。

@mrgreenfr

我有一个问题:如何打开开关更换电池?

Maby 是帮助你的。
https://homekitnews.com/2019/12/04/aqara-opple-smart-switch-review/
向下滚动到电池更换的主题

如果有人感兴趣,我为 6 按钮变体添加了对 Domoticz 的基本支持 - 它适用于单按和双按中间按钮。 这非常棒:-)

https://github.com/Smanar/Domoticz-deCONZ/issues/46

您好,使用持续测试版,我已成功尝试在 Phoscon 中包含 4 个按钮和 6 个按钮,但不会像您说的那样显示 ostgardh。

4个按钮切换:4个按钮1点击ok,3、4按钮双击ok,不再长按
6个按钮切换:1在6个按钮上单击确定,双击不确定,在按钮3、4、5上长按确定,但在6个按钮上长按返回5个按钮释放(6001 - > 5003)

我有一个问题:如何打开开关更换电池?

长按后释放 6 个按钮也有同样的问题。 远程返回 5003 事件而不是 6003。
@merdok你有机会看看第六个按钮的问题吗? 先感谢您。

看来zigbee2mqtt支持Aqara Opple开关
https://www.zigbee2mqtt.io/devices/WXCJKG13LM.html
我尝试深入研究 zigbee2mqtt 代码,并找到他们如何解决对 opple 的支持。

@bastshoes我知道这个问题,我有空的时候会尝试解决它
@ostgardh上次我检查他们的实现时,它与这个非常接近,所以我猜他们会遇到与双击和长按 4 和 6 按钮版本相同的问题。

我在代码中看到 Opple 开关没有报告正确的buttonevent值,所以我无法添加对 homebridge-hue 的支持。

x000(按下)、x001(按住)、x002(松开)和 x003(按住后松开)来自 Hue 调光器开关。 当按下/释放按钮时,它会发送 x000、x002。 当按下、按住、松开按钮时,它会发送 x000、x001、x001、...、x001、x003。
Hue 桥不支持推送通知,因此 API 客户端(如 homebridge-hue)需要轮询桥。 桥梁能够处理的最佳状态是每 2 秒一次。 这意味着 API 客户端很可能会错过 x000 事件和一些 x001 事件。 因此,他们的逻辑基于看到 x002 和 x003。

因此,请确保每个按钮操作的按下(按住)-释放序列都以 x002 或 x003 结尾。 不要_不要发布没有相应 x002 或 x003 的 x000,不要_发布没有相应 x003 的 x001。 如果开关只在按下时发送命令,则需要映射到 x002; 只有当它在按下时发送一个命令并在释放时发送一个命令时,才会将印刷机映射到 x000,将释放映射到 x002。

不确定你的意思是什么,我不是事件专家,只是根据其他按钮的事件进行了我的开发。 自从我实现这个(使用 HomeAssistant)以来没有任何问题。 您能否指出我需要准确调整的内容和位置?

此外,我们仍然没有在 deconz 中看到 Multistate 集群,我想这是添加适当的 Opple 支持所必需的。 当前缺少交换机发送但由于集群不可用而未到达 deconz 的事件。

您能否指出我需要准确调整的内容和位置?

您想发出:

  • 对于单按:x002 ( S_BUTTON_ACTION_SHORT_RELEASED );
  • 长按:x003 ( S_BUTTON_ACTION_LONG_RELEASED );
  • 对于双击:0x004 ( S_BUTTON_ACTION_DOUBLE_PRESS )。

如果后面跟着 x002 或 x003,则仅发出 x000 ( S_BUTTON_ACTION_INITIAL_PRESS ); 如果后面跟着 x003,则仅发出 x001 ( S_BUTTON_ACTION_HOLD )。 也就是说,如果开关发送不同的消息用于按下/保持与释放。

此外,我们仍然没有在 deconz 中看到 Multistate 集群,我想这是添加适当的 Opple 支持所必需的

在此之后:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/84cd1b0bdf4e66b5f244cf733c263166129fca62/de_web_plugin.cpp#L3848 -L3852
您要添加以下内容:

else if (node->nodeDescriptor().manufacturerCode() == VENDOR_XIAOMI &&
         modelId.contains(QLatin1String("86opcn01"))) // Aqara Opple switches
{
    fpSwitch.inClusters.push_back(MULTISTATE_INPUT_CLUSTER_ID);
}

这应该在 GUI 中显示集群并允许记录消息。 我不知道交换机是否需要绑定。 通常,小米设备开箱即用地向协调器(NWK 地址 0x0000)发送报告,但这些开关与任何其他小米开关不同。

要处理 _Multistate Input_ 报告,您需要更改
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/84cd1b0bdf4e66b5f244cf733c263166129fca62/de_web_plugin.cpp#L3407

else if ((ind.clusterId() == DOOR_LOCK_CLUSTER_ID && sensor->manufacturer() == QLatin1String("LUMI")) ||
         (ind.clusterId() == MULTISTATE_INPUT_CLUSTER_ID && sensor->modelId().contains(QLatin1String("86opcn01"))))

您可以为所有三个开关使用单个 buttonMap:

  • ep匹配按钮(0x01, ... 0x06 用于S_BUTTON_1S_BUTTON_6 ;2 按钮和 4 按钮开关根本不会从更高的端点发送消息) ;
  • cluster是 0x0012 (_Multistate Input_);
  • cmd为0x0a(_报表属性_);
  • param是:

    • 0 为S_BUTTON_ACTION_HOLD

    • 1 为S_BUTTON_ACTION_SHORT_RELEASED

    • 2 S_BUTTON_ACTION_DOUBLE_PRESS

    • S_BUTTON_ACTION_LONG_RELEASED 255。

谢谢! 周末会检查一下,看看我是否可以让它工作!

@ebaauw
尝试根据您的建议添加多状态集群,但没有奏效。 代码被调用,因为我还在那里添加了一个日志并且我在控制台中看到了它,但是多状态集群仍然没有出现在 gui 中。
还有其他想法吗?

目前我无法根据您的要求调整按钮映射,因为该按钮仅发送S_BUTTON_ACTION_INITIAL_PRESS ,仅此而已。 之后什么都没有。 没有S_BUTTON_ACTION_SHORT_RELEASED来。
在某些按钮上, S_BUTTON_ACTION_LONG_RELEASED又回来了。 但在这里,当我坚持长时间并释放时,什么也没有发生。

我认为如果不让多状态集群工作,我们就无法获得对这些开关的适当支持......

是的,我仔细检查了我的lumi.sensor_wleak :确实添加的 _IAS Zone_ 集群没有显示在 GUI 中,但是来自该集群的消息可用于 REST API 插件。

在使用您的代码添加集群后,我没有看到任何新事件或消息。 什么都没有真正改变。

你重新配对开关了吗?

是的,我修过。 正如我所说,我看到代码被调用,因为我在那里添加了一个日志输出,它出现在控制台中。

/sensors资源的uniqueid是什么? 它是否以-01-0012结尾?

抱歉不行:

{
"config": {
"battery": 100,
"group": "7",
"on": true,
"reachable": true
},
"ep": 1,
"etag": "3cecbb01c9daea3e7cdd67424fd87bc5",
"manufacturername": "LUMI",
"mode": 1,
"modelid": "lumi.remote.b686opcn01",
"name": "lumi.remote.b686opcn01",
"state": {
"buttonevent": 2000,
"lastupdated": "2020-03-01T21:01:58"
},
"swversion": "20190730",
"type": "ZHASwitch",
"uniqueid": "04:cf:8c:df:3c:75:b8:b9-01-0006"
}

嗯,那可能是因为 _On/Off_ 客户端(出)集群优先于这里:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/69946322ade31ba98f2d0827f3dc7a8fc07a71b5/de_web_plugin.cpp#L4764

也许通过在此处列出交换机来防止添加客户端集群:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/69946322ade31ba98f2d0827f3dc7a8fc07a71b5/de_web_plugin.cpp#L4290 -L4293
之后并重新配对,它应该以-01-0012结尾。

我看到代码被调用,因为我在那里添加了一个日志输出,它出现在控制台中。

只是仔细检查一下,那将是这条线?

    fpSwitch.inClusters.push_back(MULTISTATE_INPUT_CLUSTER_ID);

目前我无法根据您的要求调整按钮映射,因为该按钮仅发送 S_BUTTON_ACTION_INITIAL_PRESS,仅此而已。

该按钮不会发送 S_BUTTON_ACTION_INITIAL_PRESS。 它在按下时发送命令,该命令当前映射到 S_BUTTON_ACTION_INITIAL_PRESS。 这个命令应该被映射到 S_BUTTON_ACTION_SHORT_RELEASED 而不是,因为按钮在释放时不会发送另一个命令。

也许通过在此处列出交换机来防止添加客户端集群:

好的,现在uniqueid-01-0012 uniqueid结尾,但我在控制台中没有看到任何新消息或事件。 开关和以前一样工作,除了 uniqueid 改变之外什么都没有。

只是仔细检查一下,那将是这条线?

是的,那条线。

该按钮不会发送 S_BUTTON_ACTION_INITIAL_PRESS。 它在按下时发送命令,该命令当前映射到 S_BUTTON_ACTION_INITIAL_PRESS。 这个命令应该被映射到 S_BUTTON_ACTION_SHORT_RELEASED 而不是,因为按钮在释放时不会发送另一个命令。

哦,所以我必须将按钮映射从S_BUTTON_ACTION_INITIAL_PRESS更改S_BUTTON_ACTION_SHORT_RELEASED

好的,现在 uniqueid 以 -01-0012 结尾

那挺好的。

但我在控制台中没有看到任何新消息或事件。

这不好。 看看 zigbee2mqtt,它确实有一些魔力来设置 Opple:
https://github.com/Koenkk/zigbee-herdsman-converters/blob/29f6a72d56e6c93e19261e93d2de76fa7da70362/devices.js#L890

集群定义如下:
https://github.com/Koenkk/zigbee-herdsman/blob/e7050455cedc7dc8115dc1260989a666515923ed/src/zcl/definition/cluster.ts#L3651

因此,它使用制造商代码 0x115f 将 u8 值 1 写入集群0xFFC0 0xFCC0、属性 0x0009。 我打赌 Opple 需要听到这个神奇的词才能开始发送 _Multistate Input_ 消息。

我们对delayedFastEnddeviceProbe()的 Hue 调光器做了类似的事情,在某处:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/69946322ade31ba98f2d0827f3dc7a8fc07a71b5/de_web_plugin.cpp#L14171
恐怕文件太大,无法在 GitHub 上列出。 我想知道这是暗示吗? ;-)

哦,所以我必须将按钮映射从 S_BUTTON_ACTION_INITIAL_PRESS 更改为 S_BUTTON_ACTION_SHORT_RELEASED ?

是的,请。

因此,它使用制造商代码 0x115f 将 u8 值 1 写入集群 0xFFC0、属性 0x0009。 我打赌 Opple 需要听到这个神奇的词才能开始发送多状态输入消息。

这就说得通了。 但是我完全不知道如何使用 deconz 将其写入端点。 你能告诉我如何以及在哪里做吗?

我们对 delayFastEnddeviceProbe() 中的 Hue 调光器做了类似的事情,在附近的某个地方:

我在 de_web_plugin.cpp 中找不到方法delayedFastEnddeviceProbe()实现,我只是看到它在那里被调用了两次。 你确定它在那个文件里?

是的,请。

我可以做这个改变,但现在仍然调整它是否有意义,因为我们越来越接近让多状态集群工作?

顺便说一句:你知道如何添加适当的家庭助理支持吗? 目前,我必须监听来自交换机的事件,并且在 Opple 的设备下,只列出了电池。 其他开关在那里列出了所有事件......

我在 de_web_plugin.cpp 中找不到方法delayedFastEnddeviceProbe()实现,我只是看到它在那里被调用了两次。 你确定它在那个文件里?

当我回到家时,我需要仔细检查一下。 正如我所提到的,该文件太大,GitHub 无法完整显示。 缺少最后几行 (!)。

我可以做这个改变,但现在仍然调整它是否有意义

我同意,让我们专注于让 _Multistate Input_ 工作。

顺便说一句:你知道如何添加适当的家庭助理支持吗?

抱歉,我既不使用也不知道 HA。

当我回到家时,我需要仔细检查一下。 正如我所提到的,该文件太大,GitHub 无法完整显示。 缺少最后几行 (!)。

哦,现在。 我现在在本地开发环境中看到了该方法。

好的,所以基于 zigbee2mqtt 我们现在知道需要做什么才能使多状态集群工作,现在我们必须找到正确的位置将数据写入端点(我猜是在启动时)。

正确的位置是在delayedFastEnddeviceProbe() ,在写入 Hue dimmer 属性的位置旁边。 我写那个已经有几年了,但它仍然有效。 见https://github.com/dresden-elektronik/deconz-rest-plugin/commit/82cdb3b521e3704d2c75b17eb360b334893f7bf5。

所以我添加了这个:

if (sensor->modelId().contains(QLatin1String("86opcn01")))  // Aqara Opple
{
    DBG_Printf(DBG_INFO, "WRITE TO OPPLE \n");
    deCONZ::ZclAttribute attr(0x0009, deCONZ::Zcl16BitBitMap, "mode", deCONZ::ZclReadWrite, false);
    attr.setBitmap((quint64) 0x000b);
    writeAttribute(sensor, sensor->fingerPrint().endpoint, 0xFFC0, attr, VENDOR_XIAOMI);
}

配对时调用代码(我在控制台中看到 DBG_Printf),但多状态集群在 gui 中仍然不可见,也没有新的事件或消息。 我做错了什么?

这是一些日志输出:

write manufacturer specific attribute of 0x04CF8CDF3C75B8B9 ep: 0x01 cluster: 0xFFC0: 0x0009
21:11:59:078 add task 248 type 20 to 0x04CF8CDF3C75B8B9 cluster 0xFFC0 req.id 95
21:11:59:079 0x04CF8CDF3C75B8B9 (lumi.remote.b686opcn01) create binding for attribute reporting of cluster 0x0001 on endpoint 0x01
21:11:59:079 discard double entry in binding queue (size: 4) for for 0x04CF8CDF3C75B8B9, cluster 0x0001
21:11:59:079 APS-DATA.request id: 96, addrmode: 0x03, addr: 0x04cf8cdf3c75b8b9, profile: 0x0000, cluster: 0x0021, ep: 0x00 -> 0x00 queue: 1 len: 15 tx.options 0x04
21:11:59:106 APS-DATA.request id: 95, addrmode: 0x03, addr: 0x04cf8cdf3c75b8b9, profile: 0x0104, cluster: 0xFFC0, ep: 0x01 -> 0x01 queue: 2 len: 10 tx.options 0x04

还搜索了整个控制台的多状态集群 ID 引用(0x0012),但没有单个条目...

Opple 属性是 u8 类型,因此ZclAttribute构造函数的第二个参数应该是deCONZ::Zcl8BitUint 。 您需要将其设置为 1 到attr.setValue((quint64) 1);的 u8 值。

deCONZ::类来自 deCONZ 核心程序提供给插件的 C++ API。 查看deconz-dev包中的 #include 文件,安装到/usr/include/deconz 。 记录此 C++ API 的网站丢失了...

if (sensor->modelId().contains(QLatin1String("86opcn01")))  // Aqara Opple
{
    DBG_Printf(DBG_INFO, "WRITE TO OPPLE \n");
    deCONZ::ZclAttribute attr(0x0009, deCONZ::Zcl8BitUint, "mode", deCONZ::ZclReadWrite, false);
    attr.setBitmap((quint64) 0x000b);
    attr.setValue((quint64) 1);
    writeAttribute(sensor, sensor->fingerPrint().endpoint, 0xFFC0, attr, VENDOR_XIAOMI);
}

依然没有。 我需要离开昨天的黑客还是需要删除它们?

删除对setBitMap的调用,只是为了确定。

依然没有...

对 zigbee2mqtt 源进行双重检查和三重检查。 我花了第四次检查才看到集群是0xFCC0 。 我的错。

嘿,我从你的评论中复制了它,但即使在那之后我将它与源代码进行了多次比较,但也没有注意到错误......

好的,现在我终于可以看到新的东西了。

多状态集群和 2 个新端点出现在 gui 中:
Anmerkung 2020-03-02 224625

我的旧按钮映射不再起作用。
新事件来自集群 0x0012(多状态):

APS-DATA.indication srcAddr: 0x4586, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -47
22:45:20:520    asdu: 18b00a5500210100
22:45:20:520 Node data 0x04cf8cdf3c75b8b9 profileId: 0x0104, clusterId: 0x0012
22:45:20:524 Force binding of attribute reporting for sensor lumi.remote.b686opcn01
22:45:20:525 no button handler for: lumi.remote.b686opcn01 ep: 0x01 cl: 0x0012 cmd: 0x0A pl[0]: 0x55

一些新的东西,比如 ZCL 属性报告:

22:50:10:693 APS-DATA.indication srcAddr: 0x4586, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -47
22:50:10:693    asdu: 18b70a5500210200
22:50:10:693 Node data 0x04cf8cdf3c75b8b9 profileId: 0x0104, clusterId: 0x0012
22:50:10:695 Force binding of attribute reporting for sensor lumi.remote.b686opcn01
22:50:10:695 no button handler for: lumi.remote.b686opcn01 ep: 0x01 cl: 0x0012 cmd: 0x0A pl[0]: 0x55
22:50:10:695 ZCL attribute report 0x04CF8CDF3C75B8B9 for cluster: 0x0012, ep: 0x01, frame control: 0x18, mfcode: 0x0000
22:50:10:695    payload: 5500210200

其中一些来自端点 4 ????

22:54:04:230 Node data 0x04cf8cdf3c75b8b9 profileId: 0x0104, clusterId: 0x0012
22:54:04:233 ZCL attribute report 0x04CF8CDF3C75B8B9 for cluster: 0x0012, ep: 0x04, frame control: 0x18, mfcode: 0x0000

不知道如何处理这些...

现在编辑我在 gui 中获得了 6 个新端点,为远程上的每个按钮创建一个端点。 只有当我第一次按下遥控器上的按钮时,它们才会出现在 gui 中。

Anmerkung 2020-03-02 225659

控制台中的no button handler for:消息仅出现在第一个端点,其余的我只在控制台中看到ZCL attribute report

rest api 中的 uniqueid 仍然以-01-0006结尾

所以我想现在我只需要配置一个新的按钮映射就可以了。 那么我现在如何使用这个新数据创建一个合适的按钮映射?

多状态集群和 2 个新端点出现在 gui 中:
只有当我第一次按下遥控器上的按钮时,它们才会出现在 gui 中。

啊,那是真的(当然,现在我想起来了); 当 GUI 看到来自该集群的设备的消息时,它会显示集群(未在 _Detailed descriptors_ 中报告)。

我的旧按钮映射不再起作用。

您可能需要仔细检查是否已创建客户端集群的绑定。

但是,交换机很可能使用客户端集群或_Multistate Input_服务器集群。 也许为魔法属性写另一个值会改变它在“双重”模式下的状态,但我认为我们应该算上我们的祝福,而不是试图修复没有损坏的东西。

但是,您应该避免为这些交换机创建组,公开config.group并设置任何客户端集群绑定。

不知道如何处理这些...

在按钮映射中。

控制台中的 no button handler for: 消息仅出现在第一个端点

最好先创建新的按钮映射。

其余的我只在控制台中看到 ZCL 属性报告。

而这正是我们想要看到的!

rest api 中的 uniqueid 仍然以 -01-0006 结尾

确保不要将客户端集群添加到 fpSwitch 指纹,请参阅https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061#issuecomment -593149167。

那么我现在如何使用这个新数据创建一个合适的按钮映射?

见上文, https: //github.com/dresden-elektronik/deconz-rest-plugin/issues/2061#issuecomment -592617874。 我读到该开关还支持值为 3 的三次按下。

但是,您应该避免为这些交换机创建组,公开 config.group 并设置任何客户端集群绑定。

对不起,我不明白。 你可以再详细一点吗?

确保不要将客户端集群添加到 fpSwitch 指纹中,请参阅 #2061(评论)。

这样做我还需要推回多状态集群 ( fpSwitch.inClusters.push_back(MULTISTATE_INPUT_CLUSTER_ID); ) 否则交换机不会配对,可以吗?

根据您在之前评论中的建议开始了一个新的按钮映射:

static const Sensor::ButtonMap aqaraOpple6MapNew[] = {
//    mode                          ep    cluster cmd   param button                                       name
    // First button Off
    { Sensor::ModeScenes,           0x01, 0x0012 , 0x0a , 0,    S_BUTTON_1 + S_BUTTON_ACTION_HOLD, "Off top hold" },
    { Sensor::ModeScenes,           0x01, 0x0012 , 0x0a , 1,    S_BUTTON_1 + S_BUTTON_ACTION_SHORT_RELEASED, "Off top press" },
    { Sensor::ModeScenes,           0x01, 0x0012 , 0x0a , 2,    S_BUTTON_1 + S_BUTTON_ACTION_DOUBLE_PRESS, "Off top double press" },
    { Sensor::ModeScenes,           0x01, 0x0012 , 0x0a , 255,    S_BUTTON_1 + S_BUTTON_ACTION_LONG_RELEASED, "Off top long released" },
    // end
    { Sensor::ModeNone,             0x00, 0x0000, 0x00, 0,    0,                                           nullptr }
};

结果总是触发button 1001 Off top hold ,无论我是按一次、两次、三次、按住还是松开。

按其他按钮仍然不会导致no button handler for:出现控制台...

以下是每个事件的消息。

单按:

23:50:12:401 APS-DATA.indication srcAddr: 0xc394, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -49
23:50:12:401    asdu: 180d0a5500210100

双击:

23:50:14:214 APS-DATA.indication srcAddr: 0xc394, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -49
23:50:14:214    asdu: 180e0a5500210200

三重按压:

23:50:15:696 APS-DATA.indication srcAddr: 0xc394, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -49
23:50:15:696    asdu: 180f0a5500210300

抓住:

23:52:53:785 APS-DATA.indication srcAddr: 0xc394, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -50
23:52:53:785    asdu: 18100a5500210000

发布:

23:52:54:568 APS-DATA.indication srcAddr: 0xc394, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -50
23:52:54:568    asdu: 18110a550021ff00

这些消息之间的唯一变化是最后一个有效负载部分,似乎与您所说的完全一样,但控制台中始终只有button 1001 Off top hold出现。
对于其他按钮,只有 APS-DATA 指示出现在控制台上,而button xxxx即使我调整了按钮映射。

对不起,我不明白。 你可以再详细一点吗?

不要调用checkSensorGroup()checkSensorBindingsForClientClusters()sensor->addItem(DataTypeString, RConfigGroup);

这样做我还需要推回多状态集群

是的,这需要留下来。

结果总是触发按钮 1001 Off top Hold,无论我是按一次、两次、三次、按住还是松开。

你能在这里列出你改变的代码吗:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/84cd1b0bdf4e66b5f244cf733c263166129fca62/de_web_plugin.cpp#L3407

按其他按钮仍然不会导致没有按钮处理程序:出现控制台...

您是否将其他端点的条目添加到 buttonMap 中?

不要调用 checkSensorGroup() 或 checkSensorBindingsForClientClusters() 或 sensor->addItem(DataTypeString, RConfigGroup);

知道了! 我删除了对checkSensorGroup()checkSensorBindingsForClientClusters()调用。 这个sensor->addItem(DataTypeString, RConfigGroup);我从来没有添加过。 开关仍然有效,但config.group仍然存在于其余 api 中。

我也删除了checkClientCluster = true;可以吗?

你能在这里列出你改变的代码吗:

那里没有改变任何东西。

您是否将其他端点的条目添加到 buttonMap 中?

是的,我做到了。 有趣的是,对于其他按钮,甚至没有调用checkSensorButtonEvent()方法。 我只是在那里放置了一个日志输出,它会在控制台中为端点为 1 的按钮打印出来,但对于所有其他按钮,它不会打印我的日志,因此它永远不会被调用...

有趣的是,对于其他按钮,甚至没有调用 checkSensorButtonEvent() 方法。

总有一个地方可以列入白名单...您需要将此处的交换机列入白名单,以使用端点 01 搜索它们。
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/c69b8323051a90dd78035025ffe174df7370f440/de_web_plugin.cpp#L715 -L718

那里没有改变任何东西。

你应该看到https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061#issuecomment -592617874 以上,就在按钮映射之前。

请注意,您可以对所有三个开关使用相同的按钮映射。

我还删除了 checkClientCluster = true; 那样行吗?

也这样觉得。

总有一个地方可以列入白名单...您需要将此处的交换机列入白名单,以使用端点 01 搜索它们。

所以基本上是这样,如果我理解正确的话?

else if (sensorNode->modelId().contains(QLatin1String("86opcn01")))
{
    sensorNode = getSensorNodeForAddressAndEndpoint(ind.srcAddress(), 0x01);
}

您应该看到上面的#2061(评论),就在按钮映射之前。

哦,抱歉,不知何故我错过了。

今天晚上补上缺失的代码,试试看。

也这样觉得。

我想自从我们现在让多状态集群工作以来,我添加的一些以前的代码不再需要了,所以我想尽量保持它的干净......
config.group仍然出现在rest api中是否可以? 既然多状态集群处于活动状态,交换机是否仍然需要在一个组中,或者不再需要?

所以基本上是这样,如果我理解正确的话?

是的。

哦,抱歉,不知何故我错过了。

正如我所说,总有一个地方...

config.group仍然出现在rest api中是否可以?

不,这不行,因为开关现在不会发送任何命令来控制该组中的灯。 您可能想要删除资源并重新配对交换机,以仔细检查是否仍创建了config.group 。 这可能是编写特殊属性之前的剩余部分。

好的,现在所有的按钮按下都在checkSensorButtonEvent()这样就可以解决了。

但是现在在checkSensorButtonEvent()方法中添加后:

else if ((ind.clusterId() == DOOR_LOCK_CLUSTER_ID && sensor->manufacturer() == QLatin1String("LUMI")) ||
         (ind.clusterId() == MULTISTATE_INPUT_CLUSTER_ID && sensor->modelId().contains(QLatin1String("86opcn01"))))

即使按钮正确并根据您的建议进行了调整,所有按钮按下都会显示no button handler for:

您是否通过调试打印检查了该if的 then-block 已执行?

是的,它被调用了。 每按一个按钮它甚至会被调用 5 次。

编辑:对不起,我只是注意到我错了 if 块...

好的,现在开关工作完美👍所有事件都到达并得到妥善处理。 我想我们明白了!
config.group也不再出现在其余 api 中!
让我检查 4 和 2 按钮变体,我认为它完成了。
之后我会准备一个拉取请求。 如果您可以快速查看并检查一切是否正常,尤其是关于 homebridge 插件更新,那就太好了。

我想我们明白了!

凉爽的!

让我检查 4 和 2 按钮变体,我认为它完成了。

只需使用相同的 buttonMap; 他们根本不会从更高的端点发送报告。

我刚刚注意到关于其余 api 中的config.group另一件小事。 因此,当我最初配对开关时, config.group出现在其余 api 中,然后在我重新启动 deconz 后它消失了。 你知道为什么会这样吗,我怎样才能防止这种情况发生?

所以你现在在所有按钮上都有单、双、长(和三次?)点击工作,@merdok?

config.group显示值null ? 您是否看到config.group的值已更改的 websocket 通知?

你确定你没有为传感器节点做addItem(DataTypeString, RConfigGroup)吗?

@ebaauw不,有一个组号,这个组实际上是创建的。
有趣的是,在/groups端点下,我看到了那个新组,而交换机是该组的成员。
在我配对交换机并重新启动 deconz 后,交换机不再具有config.group属性,但/groups端点下的组仍然存在,并且交换机仍然是该组的成员。

不,我不调用也从未调用过(即使在我的第一个实现中)这个addItem(DataTypeString, RConfigGroup)

我想也许它会遇到另一个 if 块,在那里调用它......但是在哪里?

@jdberry正确,所有事件都有效! 单、双、三、保持、长释放

@ebaauw
好吧,那算了。 找到创建组的位置。 它在 bindings.cpp 中

目前在 bindings.cpp 中还有这个代码块:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/c69b8323051a90dd78035025ffe174df7370f440/bindings.cpp#L2482 -L2489

既然它可以工作,我还应该在那里添加 MULTISTATE 集群吗?

它在 bindings.cpp 中
既然它可以工作,我还应该在那里添加 MULTISTATE 集群吗?

大多数小米设备(如果不是全部)立即向协调器发送报告。 无需为这些设备创建任何绑定。 您为 Opple 引入了它们,因为它默认情况下直接通过这些客户端集群控制灯光。 现在我们有 _Multistate Input_ 集群工作,所有对 Opple 的引用都需要从bindings.cpp删除(假设它也将开箱即用地向协调器报告电池)。 另外,请确保没有为 Opple 调用bindings.cpp中的任何方法。 请参阅https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061#issuecomment -593671487。

我什么时候知道它向协调器报告了电池? 我删除了bindings.cpp对 Opple 开关的所有引用,除了其余 api 中的电池现在显示null外,一切仍然有效,我需要手动按下电源配置集群上的读取按钮deconz gui 使其更新为100

编辑:我目前在bindings.cpp文件中为开关保留了电池电压绑定,如果没有这个,我会在其余 api 中获得电池的值null

编辑:我目前在开关的 bindings.cpp 文件中保留了电池电压绑定,没有这个,我在其余 api 中获得电池的值为 null。

我可能不需要,但我想它不会造成任何伤害。 config.battery通常会显示null直到第一个报告到达。 如果设置报告会触发第一个报告,我不会感到惊讶。

我订购了一个六键 Opple; 这里的一些好心人捐了一些钱给我。 一旦我可以嗅探到它的流量,就可以更轻松地检查是否需要配置。 但是,它会在几周后到达,但是......

好酷👍
我提交了具有改进支持的拉取请求。 一切似乎都正常! 如果您有时间,请快速查看它并检查我是否遗漏了什么。

了不起的工作

了不起的工作

同意! 谢谢你们两个,为了解决这个问题而付出的努力!

我刚刚设置了我的第一个 6 按钮 opple 开关,我想知道我是否是唯一一个遇到这个问题的人,但我在搜索中没有在其他任何地方看到它。

查看事件,只需按一下相应的按钮,我就会得到事件 1000、2000、3000、4000、5000 和 6000,这很棒。 按住按钮 1 或 2 给我相同的相应事件(1000 和 2000),但是按钮 3-6 给我一个保持代码(按钮 3 示例)3001 和 3003(释放时)。 双击 6 个按钮中的任何一个只会给我单按事件,而三按不会在所有 6 个按钮上发生任何事件。

这种已知行为/已经记录在某处,还是我是唯一有这种行为的人? 我还在节点红色搜索事件中的 deconz 组件上抛出了一个调试节点,但那里也没有任何变化,与上述 Home Assistant 的结果相同。

提前致谢

您需要自己编译 REST API 插件(请参阅自述文件)或等待具有这些更改的下一个版本。

@jsnyde30这是旧的实现。 对于新的改进支持,请使用 deconz v2.05.75 beta 或等待下一个正式版本。

谢谢默多克! 抱歉,如果我在笔记中遗漏了这一点。

您需要自己编译 REST API 插件(请参阅自述文件)或等待具有这些更改的下一个版本。
@ebaauw
安装开发环境的自述文件很短:
sudo apt install deconz-dev

包存储库位于何处? 在我的 raspi 上试过,没有找到 deconz-dev 包。
我通过搜索得到的最好的提示是:
wget http://www.dresden-elektronik.de/rpi/deconz-dev/deconz-dev-latest.deb
这不能解决。
对这个项目的贡献有进一步的说明吗?

刚刚升级到 2.05.75,现在我的 opple 遥控器不发送按钮事件。 我已经删除了开关并重新配对。 它没有帮助。 仍然没有事件。 我丢失了为远程创建的组。

刚刚升级到 2.05.75,现在我的 opple 遥控器不发送按钮事件。 我已经删除了开关并重新配对。 它没有帮助。 仍然没有事件。 我丢失了为远程创建的组。

您是否移除并重新关联交换机到您的网络?

您是否移除并重新关联交换机到您的网络?

是的。 我已经删除了远程,然后通过配对过程走了出来。

同样在这里。 在 2.04.74 中,我确实设法获得了按钮事件(单击),但是在 2.04.75 中,开关什么也不做。 已经重新配对,它现在显示在 gui 中,但不发送任何状态。

@拉迪
我也是。
更新至 2.04.75,移除设备。 但是没有发送任何状态..

供参考..
如果我按下其他设备按钮,我可以在 GUI 中看到蓝色按钮闪烁。
但不是我添加的 Aqara OPPLE...

今天晚上会检查一下。 也许合并出了点问题......

好的,我看到@manup合并提交时出现问题的地方。
我需要提交一个新的拉取请求来解决这个问题。

更新后也停止在这里工作

提交修复:#2561

只是为了确认,通过我的修复获得了最新的源代码,编译,测试,一切正常。 开关出现在 UI 中并且所有事件都有效!

@merdok我刚刚编译了 PR 并在这里使用全新的 6 键 Opple 进行了测试。 为了配对,我去了旧的 webUI 并使用了“开放网络”。 然后我按住背面的按钮,直到 LED 闪烁。 然后我按了每个按钮一次。

现在似乎顶部按钮是“全开”/“全关”控件,因为按下它时我所有的灯都会打开或关闭。 我已经检查了 REST API,但我似乎根本找不到它(但我可能错误地使用了 REST API...)?

我目前无法访问 deCONZ UI(桌面)...

有任何想法吗? 也可能是 PEBCAK,当然......! :P

从未尝试过与旧的 webUI 配对。 我建议您尝试使用 Phoscon 应用程序。

好的,所以我进入桌面应用程序并从那里删除它,但我的灯仍然对它做出反应......
尝试通过在 Phoscon 中“添加传感器”来再次添加它,但“就绪”按钮无法点击。 去“添加开关”时也一样。 我做错了吗?

在再次配对之前删除开关。

我做到了。 进入 deCONZ 桌面应用程序,选择节点并按“删除”。 然后该节点消失了。

编辑:
现在似乎它已重新添加,我会检查它现在是否工作得更好。 :)

“39”:{
“配置”:{
“电池”:100,
“开”:真的,
“可达”:真
},
"ep": 1,
"etag": "190c1c15c8c64eea05ce4a20bad3a8b6",
"制造商名称": "LUMI",
“模式”:1,
"modelid": "lumi.remote.b686opcn01",
"name": "发射器 3-gang",
“状态”: {
“按钮事件”:2002,
“上次更新”:“2020-03-09T21:43:23”
},
"swversion": "20190730",
"type": "ZHASwitch",
"uniqueid": "04:cf:8c:df:3c:77:b5:89-01-0012"
}

编译了新的提交,现在完美运行。 在 Phoscon GUI 中可见,与 Homebridge-Hue 插件和 Node-RED 插件一起使用。 非常感谢您的努力和时间!

你好@merdok

据我了解,根据您的代码更改,不会为 opple switch 创建组。
即使协调器关闭,创建直接绑定来控制灯光也很有用。 有什么改变可以保留吗?

在第一个实现中需要该组才能仅控制特定的灯,如果没有该组,开关将仅控制 zigbee 网络中的所有灯。 现在交换机得到了适当的支持,因此不再需要该组。 我的意思是您仍然可以使用 REST API 自己创建组,如果您需要的话,可以将开关放入其中。

我的意思是您仍然可以使用 REST API 自己创建组并将开关放入其中

那不会有任何好处。 我们更改了 Opple 的操作模式,使其向协调器发送报告,而不是向关联组发送命令。 这是支持丰富的按钮事件(按下、保持、释放、长释放、双击、三次按下)所需要的。

嗨,大家好

所以我没有注明日期为 205.75。 我有同样的问题,没有事件。 这是否意味着我需要等待下一个版本才能让这个开关工作?

您是否删除了/sensors资源并重新配对交换机?

感谢您及时的回复。
我没有删除传感器资源。 这会在 Phoscon 中吗?

但我确实重新配对了两次

是的,我想如果你删除 Phoscon 中的开关,它会删除资源。 但是,如果您删除 GUI 中的节点,资源将保持不变。

我的意思是您仍然可以使用 REST API 自己创建组并将开关放入其中

那不会有任何好处。 我们更改了 Opple 的操作模式,使其向协调器发送报告,而不是向关联组发送命令。 这是支持丰富的按钮事件(按下、保持、释放、长释放、双击、三次按下)所需要的。

好的,我知道了。

如何获得 Aqara OPPLE 的后期支持?
我只找到 2.05.75
http://deconz.dresden-elektronik.de/ubuntu/beta/?C=M;O=D

等待下一个版本,或者自己从源代码编译 deconz。

谢谢会做:)

当我连接开关时,我仍然只能获得电池电量。 它还会在连接时重置所有其他指示灯。 当我检查变更日志时,这不应该发生。 我究竟做错了什么? 2.05.75不是支持opple交换机的版本吗? 家庭助理将开关显示为

其次:lumi.remote.b286opcn01
由 LUMI

对于家庭助理,需要使用 Opple 支持更新 deconz 集成。 在此之前,您可以监听来自 Opple 开关的事件。

等待下一个版本,或者自己从源代码编译 deconz。

下一个版本什么时候计划?

我不知道那个。 @manup正在发布。

对于家庭助理,需要使用 Opple 支持更新 deCONZ 集成。 在此之前,您可以监听来自 Opple 开关的事件。

这在这里似乎行不通。 我曾经能够使用 deconz 2.05.74 从交换机接收事件,但自从更新到 .75 后不再起作用:

grafik
按开关上的任何按钮不会在 Home Assistant 中产生任何事件。


grafik
它似乎在 Phoscon 网络应用程序中连接...


grafik
...以及在 GUI 中。


我已经尝试在 Web 界面和 deCONZ GUI 中删除开关,但无济于事。 还有什么我可以尝试的吗?

这里已经多次声明 2.05.75 有问题,您需要等待下一个版本或自己从源代码构建 deconz。

大家好! 请告诉我大概的更新日期? 我已经有了我的两个 6 按钮开关,但该死的 :)

就我而言,我是从最新的 master 编译的,并且没有添加开关。 Phoscon 目前展示的是 .75 版本。 在 GUI 上,它们是这样的:
image
而在其余 api 上,它们没有显示。

@mat1990dj我在 .75 上也有同样的情况。
并且开关绑定到所有 Zigbee 灯和开关。 因此,按下开/关按钮会使所有这些按钮都打开/关闭。

我可能编译错了吗? 或配对错误?
我编译使用:

sudo apt install deconz-dev
git clone https://github.com/dresden-elektronik/deconz-rest-plugin.git
cd deconz-rest-plugin
qmake && make -j2
sudo cp ../libde_rest_plugin.so /usr/share/deCONZ/plugins
and then launched deCONZ as usual.

我从rest api中删除了两个旧传感器,也从带有删除选定节点的GUI中删除了
我配对做:
5s按返回键
扫描设备/扫描开关
没啥事儿

我也编译了它,我和我的一个朋友什么也没发生。 所以我们必须等到 DE 的人与 Mark 更紧密地整合,或者至少如果有开发版本的程序集。 为了避免像opple这样的情况......

我不知道如何正确删除设备,它们会自动重新连接:(
image

您需要使用rest api删除设备,然后在尝试再次配对之前重新启动deconz。 我就是这样做的。

我已经这样做过一次,但是我有三台设备不断回来,我不知道如何删除它们,因为它们不再出现在 API 上
image

尝试将其置于配对模式,然后将其删除。

我已经这样做了,他们一直这样配对:(

@mat1990dj我想你有这样的问题,你能确认一下吗? Ova 在这里: https :

请尝试一下,我认为这不是我的本地问题,也不是您的一些更新后发生的事情...

看起来有些相似,但我没有重命名设备。 看来真的是老鬼虫了

尝试将其置于配对模式,然后将其删除。

那对我有用!
我按下了后面的“c”按钮(大约 5 秒),然后将其删除。 之后,该设备不再显示。

谢谢

好的,但是您也可以通过重命名来重复我的问题吗? 只需通过 phoscon 重命名一些设备,然后重新启动 deconz,这很有趣。 你会不会有同样的问题...提前致谢。

尝试将其置于配对模式,然后将其删除。

那对我有用!
我按下了后面的“c”按钮(大约 5 秒),然后将其删除。 之后,该设备不再显示。

谢谢

只是要清楚,
5s C 按钮,然后从 deCONZ GUI 中删除?
没有来自 phoscon 的配对?

这对我不起作用,他们不断来,他们没有链接线,然后我无法再次正确配对。
image
我不知道如何从这里配对并使用它们
我什至从 zll.db 中删除了它们并尝试再次配对它们,但它们总是这样

这种情况看起来好像您只需要重置操纵杆 - 但这不正常。 就我个人而言,我认为这是更新的结果,以前从未有过这种行为。 您可以安全地移除、重新配对等。

我的 raspbee 也有两个鬼魂...

我的树莓派上有多个图像。 一种用于 24/7 全天候运行,一种用于开发。 所以我在开发中绑定的设备也出现在我日常运行图像的 deconz gui 中。 但这不应该造成任何麻烦,我从来没有遇到过问题。
那么你为什么要完全摆脱它们呢?

我不知道如何,但我遇到了这种情况:
image
其中一个开关已配对(虽然不报告任何状态)
另一个配对但没有描述符,如何获得它们? 天知道...

好的,但是您也可以通过重命名来重复我的问题吗? 只需通过 phoscon 重命名一些设备,然后重新启动 deconz,这很有趣。 你会不会有同样的问题...提前致谢。

我现在已经尝试重现您的问题。
我在 Hassio 中使用版本为 2.05.75 / 8.3.2020 的 ConBee II 棒。
我现在重命名了一个灯、一个开关和一个传感器:
所有设备也直接在 Hassio 中重命名。 之后我重新启动了 deCONZ 容器。 所有设备都保留了名称。 即使在重新启动 Hassio 后,我也无法重现所描述的问题。

尝试将其置于配对模式,然后将其删除。

那对我有用!
我按下了后面的“c”按钮(大约 5 秒),然后将其删除。 之后,该设备不再显示。
谢谢

只是要清楚,
5s C 按钮,然后从 deCONZ GUI 中删除?
没有来自 phoscon 的配对?

这对我不起作用,他们不断来,他们没有链接线,然后我无法再次正确配对。
image
我不知道如何从这里配对并使用它们
我什至从 zll.db 中删除了它们并尝试再次配对它们,但它们总是这样

opple 开关只在 deCONZ 中显示给我,而不是在 phoscon GUI 中。
我已经在 deCONZ 中多次删除它,但它一直回来。
只有在按下“C”按钮 5 秒钟后。 然后(大约 5 分钟后)删除 deCONZ 中的设备,该设备真的永久消失了。

只是一个简短的 pingback - 因为这些按钮在我的系统上不起作用,而且我正在使用 Docker(由于 SQL、FHEM、Homebridge 等环境非常大...)我想问下下一个固定版本将发表? 任何一个想法 - 当我每天检查 Github ATM 时......

DE 家伙不分享任何发布日期。

冲户,谢谢。 只是想知道大约一个月过去了,许多问题已被标记为已解决 - 让我希望发布可能即将发布;)

是的。 正如我之前所说,我从没想过像现在这样的更新。

今天我收到了我的 6 瓶 Opple (WXCJKG13LM)。
在 phoscon 配置交换机之前,我需要 3xreset。
第一次重置后,虽然点击了一些随机灯,但按钮 2 上的一些随机灯亮了,但 phoscon 无法识别该开关。
在第二次重置 phoscon 拿起它并将交换机配置为:
image
在我意识到 switch 不会在 openhab 中生成任何通道事件后,我的热情下降了。 我正在使用 openhab deCONZ 绑定,它适用于现有的。

在测试之前,基于今天的http://deconz.dresden-elektronik.de/raspbian/beta/deconz-latest-beta.deb创建了一个新的 docker 容器

@lukicsl我认为这必须为 openhab deconz 集成而实施。
我需要为家庭助理做类似的事情。 我已经为家庭助理 deconz 集成准备好了一个承诺,只是在等待下一个正式的 deonz 版本。

@merdok我刚刚调试了 deconz 绑定,似乎在注册的 websocket 上没有生成任何事件

抱歉,我对 openhab 一无所知...

@merdok deconz 公开了一个 websocket,您可以在其中注册各种事件。
关于此开关,至少似乎没有生成任何事件。
https://dresden-elektronik.github.io/deconz-rest-doc/websocket/

有兴趣知道我们是否可以将其与 deconz 和 Homeassistant 一起使用

我在 node red 中配置了一个 websocket 监听器:
image
当按下 Opple 上的按钮时,不会生成任何事件!

这里nodered定义,使用时更改app-key:

流.json.txt

如果 deconz 没有生成事件,NodeRed 如何获取任何事件...问题 - deconz 没有为那些 Opple ATM 生成事件 - 这就是为什么我们都在等待下一个版本...

我使用了最新的 beta.deb。 我认为这包含所有 git 提交。
如果没有,我有自己编译的最新版本。 我会试试这个。

我能够编译生成 libde_rest_plugin.so 的最新版本。 我将 libde_rest_plugin.so 复制到 /usr/share/deCONZ/plugins。
不幸的是,这导致我无法登录 Phoscon。
奇怪的是 VNC 服务器正在运行,所以我目睹了网络正在建立。
我退回到 0.75 并等待正式发布。

@lukicsl我对自己编译的最新插件有相同的结果。 所以..等待新版本。

+1 用于集成。 之前没有检查它们是否得到支持并且很高兴,当我今天的开关到达时。
太早了...

+1 用于集成。 之前没有检查它们是否得到支持并且很高兴,当我今天的开关到达时。
太早了...

在这里也一样.... 希望能尽快整合...得到了这 6 个按钮中的 2 个...

哇,我不敢相信已经 5 个月了。

...没有更新即将到来。 :|

...没有更新即将到来。 :|

该死的......知道为什么没有更新吗? 集成那些交换机有这么大的问题吗? 甚至我的 Osram 4 按钮也不工作...... :-(

我认为由于电晕,现在更新速度较慢。

获得了有关未来几天即将进行的更新的信息。

我认为由于电晕,现在更新速度较慢。

好吧,他们应该停止喝酒🤣对不起那个人🧥

这是一个耻辱。 :( @merdok也许我们会尝试一些开发容器?也许你需要一些帮助?:(该死,我已经厌倦了等待,只是锡。

获得了有关未来几天即将进行的更新的信息。

六月……八月? :D

好吧,请随意自行编译;)

我并不害羞并编译了它......你可以阅读上面的结果。 :)

编译后的版本应该可以工作(我一直在使用它,没有任何问题,所有事件都可以工作),只需确保重新配对您的开关。

当您将开关与 deconz 2.05.75 配对,然后安装任何其他版本而不重新配对开关时,事件仍将不起作用。

@merdok我必须修理每台设备还是只修理 opple 开关?

我正在尝试在 raspi 4 上编译自己,但我总是收到一个错误:

{标准输入}:汇编消息:
{标准输入}:10900:警告:文件结尾不在行尾; 插入换行符
{标准输入}:11309:错误:未知伪操作: .l' {standard input}:11276: Error: invalid operands (*UND* and .ARM.extab.text._ZN5QListIN6deCONZ16SimpleDescriptorEE13detach_helperEi sections) for -'
{标准输入}:11279:错误:“-”的操作数无效( UND和 .ARM.extab.text._ZN5QListIN6deCONZ16SimpleDescriptorEE13detach_helperEi 部分)
g++:致命错误:终止信号终止程序 cc1plus
编译终止。
make[1]: * [Makefile.

make[1]: 离开目录 '/home/pi/deconz-rest-plugin'
make: ** [ Makefile:40 : release] 错误 2

只是 Opple 开关。

这是一个想法。 Aqara、Opple、Lumi、小米或他们自称的任何东西。 我注意到的一件事是,尽管它们是基于 zigbee 的,但该公司并未遵循标准程序。 对于每个版本,他们都使将他们的产品与使用其集线器进行集成变得更加困难,从而迫使您使用他们的云服务并收集有关您的数据?

@merdok Marcin 你能分享一下你编译的插件吗?

@SAOPP不确定我是否可以这样做...

我正在运行 hass.io 全功能安装程序,我无法使用此版本进行编译是否正确?

不,Hass 使用预编译的附加组件,在重新租用新版本后需要数天/数周/数月的时间。

@SAOPP不确定我是否可以这样做...

哦,ie编译好的插件不能分发? :(

不确定,但是自己编译它很容易。 从字面上看,它只需要 5 分钟。

不确定,但是自己编译它很容易。 从字面上看,它只需要 5 分钟。

你是在raspbian上编译的吗?
我收到错误,无法编译

是的,我确实在 raspbian 上编译了它,只需按照指南进行操作,就不会出错。

我自己编译了它,但它完全不起作用,请参阅上面的评论。 我无法登录 phoscon 和 REST。

是的,我确实在 raspbian 上编译了它,只需按照指南进行操作,没有什么可以出错的

我所做的一切都与描述的完全一样。 但我总是收到一个错误:

{标准输入}:汇编消息:
{标准输入}:38943:警告:文件结尾不在行尾; 插入换行符
{标准输入}:39934:警告:缺少表达式假设为零
{标准输入}:39904:错误:“-”的操作数无效( UND和 .ARM.extab 部分)
g++:致命错误:终止信号终止程序 cc1plus
编译终止。
make[1]: * [Makefile.

make[1]: 离开目录 '/home/pi/deconz-rest-plugin'
make: ** [ Makefile:40 : release] 错误 2

编辑:我设法让它在新的 deconz 图像上编译。 正如我所希望的那样,开关得到了认可。

是的,我确实在 raspbian 上编译了它,只需按照指南进行操作,就不会出错。

我想等待常规的新版本。 v2.05.76 是否有计划发布日期?

肯定有,但是确切的发布时间只有@manup知道!

很久没买开关了,我什至不知道我把它们放在哪里了......

我成功地编译了插件,没有任何问题。 我可以成功地集成交换机。 在 Phoscon 中,不可能与灯连接,但事件是在 api 中触发的(尝试使用 node-red、家庭助手以及 android 应用程序 Hue Essentials)。 我现在可以在 Hue Essentials 中将所有按钮(短按、长按、多次按)与组、灯等联系起来。

我也编译了。 到目前为止,iobroker 一切正常。

现在我可以说那些 oppel Switches 一分钱一分货。 😁

那么,我最好的解决方案是什么? 我在婴儿房准备了一个开关。 这一天定在 5 月 12 日。 我正在 raspberry pi 4 上运行 easy install hass.io。等待并使用宜家开关直到更新到来? 或者用家庭助手重新安装 raspbian,编译最新版本希望我的知识足够?

使用已经有效的东西,宜家或尝试菲利普斯色调调光器。 两者都在大多数国家/地区可用且价格便宜。

使用已经有效的东西,宜家或尝试菲利普斯色调调光器。 两者都在大多数国家/地区可用且价格便宜。

确实如此,但在荷兰,Hue 调光器不适用于普通摇杆。 将此开关车放置在旧摇杆所在的同一位置。 这就是美:)。 计划是最终在每个房间都使用这个开关。

我以为菲利普斯做了一个盖子来装在面板上? 他们为英国做。

编辑:我设法让它在新的 deconz 图像上编译。 正如我所希望的那样,开关得到了认可。

我可以编译,但插件没有加载...

20:22:30:985 HTTP Server listen on address 0.0.0.0, port: 80, root: /usr/share/deCONZ/webapp/
20:22:31:008 CTRL. 3.16.220:22:31:340 dev /dev/ttyAMA0
20:22:31:340 ZCLDB init file /root/.local/share/dresden-elektronik/deCONZ/zcldb.txt
20:22:31:436 found node plugin: libde_signal_plugin.so - Signal Monitor Plugin
20:22:31:453 found node plugin: libstd_otau_plugin.so - STD OTAU Plugin
20:22:31:727 dev /dev/ttyAMA0

(没有像20:26:58:519 found node plugin: libde_rest_plugin.so - REST API Plugin ,这是我在不加修改的情况下使用 docker 容器时出现的)

我正在使用官方的 docker 镜像,我在这里遗漏了什么?

编辑:似乎我不是唯一有问题的人: https :

感谢开发团队所做的工作。 迫不及待地希望它被标记并成为下一个版本的一部分。 一直没能找到另一个我喜欢的接近这个 6-gang 选项的设备。

我有点失望地发现这还不起作用(根据 wiki 中的兼容性列表购买了它)。

我不反对运行 repo,但我不确定如何(或是否)与主管的 HassOS/HassIO 设置一起工作。

猜猜我需要弄清楚或耐心等待发布。

@luke3butler它不适用于主管解决方案。 我在同一条船上,试图弄清楚是否要使用 Rasbian 重新安装 RaspPI,然后安装 Home Assistant。

同样的故事:看起来是唯一满足我需求的设备(除了 ZWAVE aeotec wallmote quad)。
但是在VM中运行HAssOS,所以对我来说不适合(并且不喜欢很快改变,因为整个房子现在都在运行)

@annetimdegraaf @bramv101
我认为这实际上可以通过一点工作来实现。 Fork 现有的 supervisor 插件,修改它以构建一个脱离 master 的版本,然后简单地在 Github 上为它创建一个新的存储库,并称之为“deCONZ-dev”或其他东西。

一旦到位,任何人都可以添加自定义存储库并迁移到使用它,如果他们想使用不稳定的通道。 甚至可以允许手动设置 checkout 命令来克隆和构建。

编辑:我打算等待并耐心等待发布,但是当有人说这是不可能的时,我只需要找到解决方案😄
不确定我是否会坚持下去,但这绝对是可能的。

刚订购了一个 raspbee,因为我想将 zigbee 收音机远离我的 HASS PC。

有没有关于如何编译最新软件的方法,现在我有一个备用的 conbee 棒。 我需要在 opple 开关上尝试一些东西吗?

@卢克3巴特勒

我刚刚发布了所有设备,安装并编译了实际状态。 但不幸的是,我的 opple 交换机都没有稳定运行。 由于编译没有生成错误消息,我想(在我编译时)代码中似乎有影响稳定性的更改。 因此,如果有人能够编译稳定的开发版本 - 我同意,最好在共享主机或其他地方交换她或数据文件本身......

我遇到了一个奇怪的问题。 我连接了两个 6x 开关并显示在 deconz 插件中。 按下按钮等在 VNC 图中没有显示任何活动,所以我从附加组件中删除了它们。 然后想再次添加它们作为开关。 该应用程序没有找到它们,也没有将它们显示为开关,但它以某种方式工作:

image

当然,这些开关不会作为开关呈现给 HA,从而使它们无用。
知道我能做什么吗?

编辑:阅读所有帖子,似乎我既不是第一个也不是唯一的。 所以我想我必须等待下一个 deconz 版本。

在家庭助理中,使用 deconz 集成,所有单按、双按和保持事件都有效,但保持后没有释放事件

在家庭助理中,使用 deconz 集成,所有单按、双按和保持事件都有效,但保持后没有释放事件

目前有发布版本吗? 版本 2.05.75 固件 264A0700 ?
在这里不工作...... Opple 开关根本不被识别为开关。

抱歉,我的意思是,如果您在开发人员工具部分中使用“deconz_event”在家庭助理中收听事件,则事件会被识别,这意味着您可以基于它们进行自动化,但您是对的,目前还没有可用的切换实体。

抱歉,我的意思是,如果您在开发人员工具部分中使用“deconz_event”在家庭助理中收听事件,则事件会被识别,这意味着您可以基于它们进行自动化,但您是对的,目前还没有可用的切换实体。

你有没有为此设置/安装任何特别的东西? 我有 Deconz 主管插件,在 Deconz 中链接了我的 6 个按钮设备,开关显示在具有电池百分比的设备中,但是按下按钮时我在 deconz_event 日志中看不到任何内容:(

首先,您可以通过转到开发人员工具 -> 事件(在家庭助手中)查看 deconz 插件触发的所有事件,并且在页面底部有一个名为“监听事件”的部分。 在“要订阅的事件”字段中输入deconz_event并按开始收听。
现在,当您按下遥控器上的某个键时,您将在屏幕底部看到 deconz 插件触发的事件。
例如,单击按钮 one 会为您提供一个 ID 为 1002 的事件。例如,您可以将此 ID 用作打开灯的触发器。
您可以通过添加自动化来创建这些自动化,如您在此页面上的条目中所见: https :

yaml 中自动化的另一种选择是使用 node-red 家庭助理插件,这是我在家庭助理中拥有所有自动化的地方。 Node-red 在很多方面都很棒,如果您还不知道,可以在 youtube 上看看它是如何工作的,例如这里https://www.youtube.com/results?search_query=home+assistant+event +触发器+节点-红色

您使用的是哪个版本的 Phoscon @joggs ? 使用最新版本,您将不会收到家庭助理中 Opple 开关的任何事件。 因此,许多人现在正在等待更新,因为它会解决问题。

2.05.75。 不是最新的吗?

这是最新版本,奇怪。 我自己有一个 6 路开关,我在 Home Assistant 中没有收到任何事件。

2.05.75。 不是最新的吗?

也运行相同的版本,但侦听 deconz_event 事件不会提供任何事件。 不是在按下按钮时,而是在触发运动传感器或切换灯光时。 也许有一个设置会导致这些事件? @joggs您是否将按钮添加到 phoscon 中的组中?

仅供参考,我必须在 docker 映像中构建新插件。 它似乎工作。 https://github.com/marthoc/docker-deconz/issues/114

我终于设法以正确的方式进行编译,然后我才搞砸了 Pi(armhf) 并获取了 amd64 的开发包。 库现在被容器拾取。 我的详细说明位于: docker-deconz/issues/114

我启动了容器并且能够登录到 Phoscon,REST 也可以。 我检查了存在哪个库的正在运行的容器。 一切正常。

我卸下了开关并尝试再次添加它。 添加为开关根本不起作用,添加为传感器在第一次尝试时起作用。

虽然我仍然没有在 REST 界面上收到任何事件,但没有,没有,没有。
按下任何按钮,我也没有在 LED 上看到任何活动:
image

最后,我终于让它工作了。
我多次从 Phoscon 删除开关并重置开关,没有积极的结果。 我没有重命名 Phoscon 中的开关。 最后一次尝试我重命名了它,它开始工作。
我完全不确定是什么让它wkn。

2.05.75。 不是最新的吗?

也运行相同的版本,但侦听 deconz_event 事件不会提供任何事件。 不是在按下按钮时,而是在触发运动传感器或切换灯光时。 也许有一个设置会导致这些事件? @joggs您是否将按钮添加到 phoscon 中的组中?

我刚刚将 opple 添加到 deconz 并仍然使用它的默认名称(Transmitter 3-gang)。 未添加到 phoscon 中的任何组。
在家庭助理中的 deconz 集成中,我启用了“允许 deconz 灯组”,但这在这种情况下应该无关紧要。
也许您可以尝试在家庭助理中重新安装 deconz 集成

你好呀!

我注意到我的 opple 开关的异常行为,我不知道如何解决它...

每次我在 iobroker 中安装了 Conbee 软件或 Deconz 适配器的情况下重新启动 Raspbery Pi 时,Opple 似乎都会遇到以下 4 个命令:

1x“按钮1:按下后释放=真”
1x“按钮4:按下=真后释放”
2x“按钮4:三次按下后释放=真”

在 iobroker 的对象视图中我看不到“真”状态。 他们保持“虚假”。

这是一个非常大的问题,因为按钮“1”打开了我的电视,如果树莓在半夜重新启动,这不是很好的事情......

有没有人有类似的问题,或者可能是如何解决这个问题的线索?

谢谢!

终于收到了我 3 月 2 日订购的 6 按钮 Opple。 它配对没有任何问题,我看到 x002、x004、x005 和 x001/x003 按钮事件用于按下、双击、三次按下以及所有 6 个按钮的保持/释放。 描述符有点乱,但开关仍然起作用。 下周末将做一些实验,看看是否可以将开关引入双模式,通过 _Multistate Input_ 集群报告按钮事件,同时通过 _On/Off_ 集群控制灯。

有没有人已经想过是否可以更换电池?

显然 Aqara 不希望用户可以轻松更换 Opple 开关的电池,但仍然可以通过一些工作来更换电池。

谢谢,@merdok。 你需要为此打开摇杆吗? 当试图撬开它们时,它们似乎相当脆弱。

是的,你需要把它们分开。 还没有自己做,但我在网上看过指南。

现在有一个备用的conbee棒。 我如何获得这个预发布版本? 这将是我网络上未来 deconz 设备的测试平台。

你需要为此打开摇杆吗? 当试图撬开它们时,它们似乎相当脆弱。

当我第一次收到六按钮开关@ebaauw 时,我很好奇,并且确实找到了有关如何暴露电池的在线说明。 我记得,一旦我想出要做什么,这并不难,而且我会毫不犹豫地再做一次。 我不记得确切的程序,而且我面前没有开关。 是的,我确实需要撬开按钮,我记得,虽然我认为这样做会破坏它,但它们最终对我来说相当容易和顺利。 完成后,访问电池就很简单了。

@manup嗨,曼努埃尔,我们很多人都在等待下一个版本。 似乎不可能为主管/hassio/家庭助理解决方案手动编译。 一直在看之前版本的发布日期,这次好像时间更长了。 你能透露一下 v2.05.76 的发布日期吗?

也许有人为 Raspberry 编译了它,你可以分享这些文件,我们手动将它们复制到适当的位置吗? 否则那行不通。
我个人不想给开发人员施加压力......但我想玩开关下界越少;)

也许有人为 Raspberry 编译了它,你可以分享这些文件,我们手动将它们复制到适当的位置吗?

libde_rest_plugin.so (armhf)
对于 raspi

谢谢,但是那个文件在哪里?

/usr/share/deCONZ/plugins/libde_rest_plugin.so

所以我在这里尝试了@lukicsl的文件。 它被拾取并加载到容器中,但行为似乎没有什么不同。

我无法从列表中删除开关,刷新时它会立即重新出现。 它仍然关闭了我所有的灯和开关。 尝试配对它也不起作用。 家庭助理中的开关没有事件。

/usr/share/deCONZ/plugins/libde_rest_plugin.so

谢谢,但在 HASSIO 下无法访问

当然。 您可以扩展官方插件:

  1. 下载https://github.com/home-assistant/hassio-addons/tree/master/deconz
  2. 将 deconz 文件夹复制到您的家庭助理插件目录(使用 SMB 或 SCP)
  3. 修改 config.yml 并将名称更改为例如deconz-master
  4. libde_rest_plugin.so复制到 deconz 目录中。
  5. 将 Dockerfile 更改为
FROM homeassistant/armhf-addon-deconz:5.3.2
COPY libde_rest_plugin.so /usr/share/deCONZ/plugins/
  1. 安装本地插件,停止官方 deconz 并启动新插件。

但正如我所说,它似乎仍然无法正常工作。

刚到的 Opple 6 按钮,通过应用程序连接到 deconz 作为开关,连接但不返回任何事件到 Home Assistant,版本 2.05.75

Opple
Opple2
Opple3

@Luke95vl这是一个已知的错误。 等到下一个版本修复

有人认识@manup吗?

我希望他没事,你知道发生的一切。 自 4 月 5 日以来我找不到他的任何活动,我担心我们可能会自己编译。 我使用 docker 映像,但不知道如何编译并使其正常工作。 有没有人成功做到这一点?

我认为会有重大变化,他们只是想确保更新稳定。 最近 deconz 的问题太多了,而且变得有点不稳定

@djashjones啊,这是有道理的。

@djashjones他们正在进行重大更改,4 周内不提交任何代码有点奇怪。 对于重大更改,经常提交通常是明智的......

Deconz 并不是完全开源的。 后端代码已关闭并归德累斯顿电子所有。 其余的 api 是开源的,由非公司编码人员(即志愿者)维护。

如果您希望智能家居设置支持最新最好的 zigbee 设备,那么 zigbee2mqtt 是您的最佳选择。

@djashjones我 99% 确定@manup适用于德累斯顿。

@svenove如果是这样,WTF 正在进行中!!!!! 🤣

2路开关aqara opple也有这个问题。 有办法解决吗?

Aqara Opple 2-gang 不工作
Aqara 智能无线开关 WXKG11LM 2016 完美运行

zigbee2mqtt 会工作,但更多 dyi?

我有这个 aqara opple switch(WXCJKG12LM) 的 2-gang 版本,我尝试将它与 phoscon 配对,但它失败了,但是,在 Home Assistant 中收听 deconz_events 时,它显示了! 它显示为:

{
"event_type": "deconz_event",
“数据”: {
"id": "lumi_remote_b486opcn01_30",
"unique_id": "04:cf:8c:df:3c:75:c2:25",
“事件”:3000
},
"起源": "本地",
"time_fired": "2020-05-08T10:34:52.733044+00:00",
“语境”: {
"id": "2213df60b1a24be09c93bec99e1b1276",
“parent_id”:空,
“user_id”:空
}
}

然而,在 phoscon 网络应用程序中无处可见该开关......

具有相同事件的两个按钮?

具有相同事件的两个按钮?

不,所有按钮都有不同的事件 ID,只是不打算将它们全部张贴在这里!

Dresden Elektronik 请集成 Aqara OPPLE 设备! 我们都在翘首以待!
是否有我们可以投票的功能请求区域?

具有相同事件的两个按钮?

不,所有按钮都有不同的事件 ID,只是不打算将它们全部张贴在这里!

不同,你的意思是每次来自同一个按钮的不同事件? 或者?

具有相同事件的两个按钮?

不,所有按钮都有不同的事件 ID,只是不打算将它们全部张贴在这里!

不同,你的意思是每次来自同一个按钮的不同事件? 或者?

我不明白你的问题。 该开关在家庭助理中正常工作。 我现在让它切换一些灯。 开关上的每个按钮都会在 Home Assistant 中创建一个事件,如您所料:按钮一为 1000,按钮二为 2000,按钮三为 3000,依此类推。 还有用于按住按钮的事件 ID。 正如你所期望的那样。 所以我可以通过 deconz 和 Home Assistant 充分利用 Opple 开关。 该开关实际上并没有出现在 Phoscon 网络应用程序中,所以我不能重命名它或任何东西,但这没什么大不了的。

确切地。 您还有双击事件。 我在 homeassistant 中处理来自 node-red 的所有事件,它运行良好。 从 phosconapp 正常配对后,我还在 phoscon 应用程序中看到了开关
Capture

我有这个 aqara opple switch(WXCJKG12LM) 的 2-gang 版本,我尝试将它与 phoscon 配对,但它失败了,但是,在 Home Assistant 中收听 deconz_events 时,它显示了! 它显示为:

{
"event_type": "deconz_event",
“数据”: {
"id": "lumi_remote_b486opcn01_30",
"unique_id": "04:cf:8c:df:3c:75:c2:25",
“事件”:3000
},
"起源": "本地",
"time_fired": "2020-05-08T10:34:52.733044+00:00",
“语境”: {
"id": "2213df60b1a24be09c93bec99e1b1276",
“parent_id”:空,
“user_id”:空
}
}

然而,在 phoscon 网络应用程序中无处可见该开关......

我依赖这个帖子。 好吧,也许我理解错了。 ' 一切正常。

README声明这些开关还支持三次按下事件和总共 6 种不同的事件类型。 有人可以确认一下吗?

是的,在我的 iobroker 设置中,我可以为每个按钮点击三次按下事件。

我对新版本很感兴趣。 我有 WXCJKG11LM,和这里的几乎所有人都有同样的问题。 它在 deconz 中显示(错误地显示为 Dimmer),但在 Phoscon 中没有显示。 我在 deconz 日志上看到,一旦它分配了正确的事件(按下按钮 1000 等),它甚至在 Eve 中显示两个按钮,单击/双击和长按。 但没有事件到来。 删除设备并重新加入后,它说按钮未映射。 默认情况下,它会打开和关闭我所有的灯。 在 NodeRed 中,我只看到最后一个(缓冲的)事件,但没有新事件到达。 如果需要任何输入,请告诉我。

在已知的稳定版本发布之前,我个人不会再进行任何实验。 我遇到的问题:我的 3D 打印机在 zigbee 电源开关后面,我在测试 opple 开关时忘记了它正在运行。 是的,当然它在中间打印时关闭了 ;)
这将永远不会再发生。 我现在等了这么久(我想我是当时使用 zigbee2mqtt 时收到的第一批人之一),所以我可以再等一两个月。
如果有人想让我调试某些东西,我很乐意提供帮助,但在那之前我会保持原样......

好的,现在我有四个按钮开关,它在抽屉里:(
它显示在 phoscon 中,就是这样。 没有显示按钮事件。

{"config":{"battery":100,"on":true,"reachable":true},"ep":1,"etag":"7e15482cb98d58da8f76543da706a5d9","manufacturername":"LUMI","mode" :1,"modelid":"lumi.remote.b486opcn01","name":"Paradies","state":{ "buttonevent":null,"lastupdated":"none" },"swversion":"20190730" ,"type":"ZHASwitch","uniqueid":"04:cf:8c:df:3c:77:bb:42-01-0012"}

为什么它在支持的设备列表中?
https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Supported-Devices#supported -wireless-switches

我在 Euronics 恒温器上也有过同样的经历。 它有效,但只支持一半,配对对每个人来说都不是。

我可以等,但对某些人来说可能会很烦人。

请停止将设备添加到支持设备列表中,但这些设备并未得到完全支持! 或添加一个列“正在开发/正在建设/测试版/alpha”。
我认为“问题”一栏不适用于这种情况

嗨莱克斯

你的在支持列表中吗? 我最近买了一个,它的类型代码是:WXCJKG11LM,正如您在支持的项目中看到的那样,未列出。

那么你的交换机上的代码是什么?

来自:lex通知@ github.com
发送:2020 年 5 月 15 日 09:37
至:dresden-elektronik/deconz-rest-plugin [email protected]
抄送:mhin76 [email protected] ; 评论[email protected]
主题: Re: [dresden-elektronik/deconz-rest-plugin] Aqara OPPLE 开关支持 (#2061)

好的,现在我有四个按钮开关,它在抽屉里:(
它显示在 phoscon 中,就是这样。 没有显示按钮事件。

{"config":{"battery":100,"on":true,"reachable":true},"ep":1,"etag":"7e15482cb98d58da8f76543da706a5d9","manufacturername":"LUMI","mode" :1,"modelid":"lumi.remote.b486opcn01","name":"Paradies","state":{"buttonevent":null,"lastupdated":"none"},"swversion":"20190730" ,"type":"ZHASwitch","uniqueid":"04:cf:8c:df:3c:77:bb:42-01-0012"}

为什么它在支持的设备列表中?
https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Supported-Devices#supported -wireless-switches

我在 Euronics 恒温器上也有过同样的经历。 它有效,但只支持一半,配对对每个人来说都不是。

请停止将设备添加到支持设备列表中,但这些设备并未得到完全支持!


您收到此消息是因为您发表了评论。
直接回复本邮件,在 GitHub 上查看https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2061#issuecomment-629081857 ,或者退订https://github.com/notifications/unsubscribe-身份验证/ALXOFW2O7YLCUNZZL2CBIW3RRTWKPANCNFSM4JLW7MBQhttps://github.com/notifications/beacon/ALXOFW2BBQXYWOQUSLY4KJTRRTWKPA5CNFSM4JLW7MB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEV7QOAI.gif

该死! 我的是 WXCJKG12LM。 我学到了一些关于购买 zigbee 的东西。
对不起我的咆哮!

接下来做什么? 等待还是出售?

自去年 11 月以来,我拥有 6 按钮版本。 在上次更新之前有点工作(仅按一次)然后 .75 更新破坏了一切。 我有各种 IKEA 5 按钮遥控器,现在色调调光器。 两者都非常值得。 我没有理由购买更多的 opple 开关,即使它们会得到支持。 我可以在当地购买宜家和飞利浦,交货快捷!

我添加了两个开关,一个正常工作(左),另一个有描述的奇怪行为,可以打开/关闭所有东西。
事件被传递给左边的 homeassistant,但右边的不是。
(右边没有多态)
image

@mat1990dj尝试重置并修复有问题的开关。

@mat1990dj尝试重置并修复有问题的开关。

我尝试了几次,它在没有多状态集群的情况下不断返回

重置开关,将其从 deconz 中移除,重新启动 deconz,然后再次配对。

重置开关,将其从 deconz 中移除,重新启动 deconz,然后再次配对。

它一直没有那个描述符,这真的很奇怪,我也遇到了配对 5 按钮宜家开关的问题,尽管调光器工作得很好。

@mat1990dj第一次配对我不受支持的开关 WXCJKG11LM(由于 phoscon 未显示任何成功而重置几次后)我突然看到我的 homekit(和 Eve)应用程序上的开关,按钮和动作都适用于第一,第二并长按。 但没有事件到来。 在互联网上搜索后,我读到了一些关于设备名称的信息,名称中不应包含空格。 所以我通过 REST API 重命名了它(bc 通过 deconz 重命名不起作用并且开关仍然没有显示在 phoscon 上)。 但是重命名并没有解决问题。 所以我通过 deconz 删除了节点,甚至删除了 deconz 数据库中的任何条目(通过 SQLIGHT 客户端)。 再次配对后,我注意到出现了新名称。 从那时起,我的 homekit 中再也没有出现过 switch(同时我将 deconz 升级到 2.05.75 版本)。
长话短说:即使您删除 deconz incl 中的节点。 DB 以某种方式在 Zigbee Stick (ConBee II) 或其他地方保留条目。 我会等到这个开关被支持。 我在2.05.75的源码中看到这个版本已经准备的地方很少了。 手指交叉它很快就会完成。 :)

是的,让我们希望:)
谢谢

好吧,现在我很困惑。 我只是偶然在 2.05.75 的发行说明中看到支持此开关。 但对我不起作用。 那么错误的代码? 德语版本说明:
F1C9700B-15A3-42E1-95FB-B4371EF0F11A

在 0.75 之前工作,但只有一个按钮按下事件。 由于 .75 什么都没有! 所以等了2个多月才修复。

为什么人们不仔细阅读 2.05.75 是测试版,不应使用...
我的意思是,如果有人安装了测试版,那么当然会有问题......
2.05.74 对 Opple 交换机有基本支持,下一个版本将提供全面支持,所以请耐心等待。

问题是(在 Home Assistant 的情况下)大多数人都在运行附加组件,其中包括 2.05.75 版本。 也许最好在每个版本中清楚地表明它是测试版还是稳定版,在 Github 中你可以表明这一点。 (更多信息

@klaasnicolaas他们已经这样做了。 我猜那些没有“_stable”的被认为是测试版。 https://github.com/dresden-elektronik/deconz-rest-plugin/tags

即便如此也有改进的空间😉

76在那里! 谁先尝试?

也可用于 deconz/HomeAssistant。 19分钟前撞了!

请注意:它似乎是一个“测试版”!

@gysman Wooohoo 感谢您提供信息!
现在只是等待新的 docker-image 来测试它:)

仅供参考 docker 镜像应该很快就会上线!
https://github.com/marthoc/docker-deconz/pull/225

我刚刚升级到新版本。 但是我的 Opple 3-gang 开关仍然不工作。 我做错了什么吗? 我已成功配对 Phoscon 中的开关。 我可以将其视为家庭助理中的一个单位。 但是,如果我听听 deconz_event,它什么也没给我。 它在 Deconz 的早期版本之一中工作 - 我认为它是 5.3.1

我的 6 按钮开关与 Deconz 成功配对并显示在 Phoscon 应用程序中。 当我在 Home Assistant 中收听 deconz_event 时,我看到按钮按下的事件没有任何问题。

不为我工作。 6 按钮版本。

{"buttonevent":null,"lastupdated":"none"} 来自 node-red 的完整负载

更新:HA 中也没有事件。

我的 6 按钮开关与 Deconz 成功配对并显示在 Phoscon 应用程序中。 当我在 Home Assistant 中收听 deconz_event 时,我看到按钮按下的事件没有任何问题。

你在使用家庭助理吗?

是的,我在上一篇文章中提到过:)

我的 6 按钮开关与 Deconz 成功配对并显示在 Phoscon 应用程序中。 当我在 Home Assistant 中收听 deconz_event 时,我看到按钮按下的事件没有任何问题。

你对我可能做错了什么有什么建议吗?

我的 6 按钮开关与 Deconz 成功配对并显示在 Phoscon 应用程序中。 当我在 Home Assistant 中收听 deconz_event 时,我看到按钮按下的事件没有任何问题。

你对我可能做错了什么有什么建议吗?

不是真的,但上次当我添加飞利浦 Hue 调光器开关时,我必须重新启动我的 Pi,然后才能看到 deconz_event 中的事件

也可以通过VNC查看GUI看是否添加正确

还想提一下,直到 76 年 5 月 5 日,我才尝试配对我的 Opple,我知道有问题,所以我只是等待工作版本

当您从 2.05.75 升级到 2.05.76 时,您需要首先从 deconz 中完全删除交换机,然后重新启动 deconz,然后将它们与新版本重新配对。 如果没有这些步骤,开关仍然无法工作,因为从 2.05.75 开始,您的数据库中的配对就会损坏

尝试重新配对交换机

重新启动并重新配对工作。 我的设备直到 0.76 才被添加

当您从 2.05.75 升级到 2.05.76 时,您需要首先从 deconz 中完全删除交换机,然后重新启动 deconz,然后将它们与新版本重新配对。 如果没有这些步骤,开关仍然无法工作,因为从 2.05.75 开始,您的数据库中的配对就会损坏

那奏效了。 非常感谢:-) 我等了这么久

保留后我看不到释放 (x003)
我在 deconz 集群信息 (255) 中看到它,但在 HA 事件中没有看到。
我已经重置开关,移除并重新启动,然后再次包含开关。

保留后我看不到释放 (x003)
我在 deconz 集群信息 (255) 中看到它,但在 HA 事件中没有看到。
我已经重置开关,移除并重新启动,然后再次包含开关。

这里的 6 个按钮没有问题。

事件 1 于下午 5:27 触发:
{
"event_type": "deconz_event",
“数据”: {
"id": "lumi_remote_b686opcn01_22",
"unique_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
“事件”:3003
},
"起源": "本地",
"time_fired": "2020-05-23T15:27:08.018072+00:00",
“语境”: {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
“parent_id”:空,
“user_id”:空
}
}

奇怪,我也有6个按钮。
其他一切都在工作 1 2 3 单击并按住,但在按住后不释放。
好吧,我得再试试。
感谢您确认它应该可以工作。

@mickeman我也有同样的问题。
在日志中我看到这个:

没有按钮处理程序:lumi.remote.b686opcn01 ep:0x06 cl:0x0012 cmd:0x0A pl[0]:0x55

@L3H0
好的,我一直在尝试与下面完全一样,但它没有帮助
我在 WMware 下的 ubuntu 中运行 deconz。
我已将 conbee II 更新至固件 0x26580700

当您从 2.05.75 升级到 2.05.76 时,您需要首先从 deconz 中完全删除交换机,然后重新启动 deconz,然后将它们与新版本重新配对。 如果没有这些步骤,开关仍然无法工作,因为从 2.05.75 开始,您的数据库中的配对就会损坏

我添加了 2 次开关,使用 deconz 重新启动 docker,但仍然相同:/
我不升级conbee II的固件,我还有264A0700

@L3H0
好的,所以这不是固件。
也许@merdok可以提供帮助?

我会,但我没有看到任何用于安装的 deb 包,也没有看到用于自己编译的 make 文件。 我对 github 不太熟悉,但我使用“$ wget http://deconz.dresden-elektronik.de/raspbian/beta/deconz-latest-beta.deb ”来获取最新的可用测试版,但这让我回到了 2.05 .75
你能给我一个提示吗?

上午 23.05.2020 嗯 14:45 schrieb Adrian通知@github.com:


仅供参考 docker 镜像应该很快就会上线!
marhoc/docker-deconz#225


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看,或取消订阅。

好的,安装了最新版本并成功修复了我的 Opple。 现在它在 phoscon 和 deconz 上正确显示,但不幸的是在该设备的节点 red 上没有看到任何事件。

上午 23.05.2020 嗯 20:52 schrieb Martin Hinz [email protected] :


我会,但我没有看到任何用于安装的 deb 包,也没有看到用于自己编译的 make 文件。 我对 github 不太熟悉,但我使用“$ wget http://deconz.dresden-elektronik.de/raspbian/beta/deconz-latest-beta.deb ”来获取最新的可用测试版,但这让我回到了 2.05 .75
你能给我一个提示吗?

上午 23.05.2020 嗯 14:45 schrieb Adrian通知@github.com:


仅供参考 docker 镜像应该很快就会上线!
marhoc/docker-deconz#225


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看,或取消订阅。

有效,但在 Phoscon 中没有长单击映射?
image

@Kroeliemonster :哪个固件? 我有同样的问题,比如 mikeman 在 HA 中没有发布信息:(我在hold (x003) 后没有看到发布),你hold了多久?

@Kroeliemonster :哪个固件? 我有同样的问题,比如 mikeman 在 HA 中没有发布信息:(我在hold (x003) 后没有看到发布),你hold了多久?
固件:26490700
我可以持有很短或更长的时间,但它仍然给出事件 x003

我为 Conbee II 安装了固件 26490700 并将 deConz 更新到 2.05.76,但我仍然看不到我的 4 按钮开关。 在 Domoticz,我看到了同样的事情。 当我从 domoticz 中删除它时,它会在重新启动我的 pi 后返回。
Capture
我想我必须从 deConz 中移除开关,但是如何在无头模式下使用 deConz 做到这一点?

我有 264a0700 并且没有 x003 事件并更新到 26580700 并且在 HA 中没有 x003 事件。

@Havym :通过API? 你没有网页界面? 你是怎么添加的?

我进入 HA deconz 插件日志如下:

13:22:48:598 no button handler for: lumi.remote.b686opcn01 ep: 0x01 cl: 0x0012 cmd: 0x0A pl[0]: 0x55

HA 0.110.1 deconz .76 CB II 26580700

@Havym :通过API? 你没有网页界面? 你是怎么添加的?
我第一次像许多用户一样通过 phoscon 应用程序添加它们。 那时不支持该开关并打开和关闭所有灯。 但是在 phoscon 应用程序中仍然看不到该开关。
但是没有 deConz Gui 我不能删除开关。

在 phoscon 应用程序中尝试 -> 开关 -> 添加新开关 -> 其他 -> 在 opple 上按 c 直到它闪烁三次 -> 等待 30 秒。
如果交换机现在在 phoscon 应用程序中,请将其删除,重新启动 deconz,然后再次添加它们。

有趣的是......我尝试了你的方式,它出现在 phoscon 中,我再次删除了开关并重新启动了 deconz。 现在我不能再连接交换机了。
Capture

编辑:我再次尝试,它出现在 deconz 和 domoticz 中! 谢谢你。

我可以确认,在安装插件的更新并重新启动 HA 之后,我现在可以添加两个 6x 开关,它们都为 1、2、3x 单击和释放状态提供了正确的结果。 做得好。 谢谢你。

现在我想我需要找出用适当的操作填充所有这些可能的开关(每个硬件开关 18 个)的最佳方法。 最好的方法是什么? 我猜您需要为每个事件编写 18 个自动化,对吗?

每个开关有 5 个状态吗? 1 (x002), 2(x004), 3(x005)x 点击,长按 (x001) 和释放 (x003) ? 在自动化中,每个状态都有五个,但长按后的 x003 版本不是来自 deconz。

嗯。 奇怪,我还以为 x003 也在那里,但现在不能让它出现。 所有其他人都工作正常。

通过节点红色我得到 1,2,3,4,5。 可惜花了 6 个月才走到这一步,现在是 Beta 版

我尝试了 HA 和节点红色组件,但仍然没有收到 x003(发布)事件。 我删除了节点,并从 Web 界面中删除了开关,然后重新添加了几次,但结果相同。 我会继续玩它,直到有人发布解决方案。 到目前为止,其他一切都完美无缺,考虑到它在我墙上挂了几个月的纸重,这很棒😁

如果与按钮对应的端点上的 _Multistate Input_ 集群 (0x0012) 的 _Present Value_ 属性 (0x0055) 反映按钮操作,您能否在 GUI 中仔细检查? 0 表示保持,255 表示长释放,1、2、3 表示单、双、三按。

@ebaauw

如果与按钮对应的端点上的 _Multistate Input_ 集群 (0x0012) 的 _Present Value_ 属性 (0x0055) 反映按钮操作,您能否在 GUI 中仔细检查? 0 表示保持,255 表示长释放,1、2、3 表示单、双、三按。

就我而言,我可以在 GUI 中看到所有按钮操作,就像您上面所说的那样。
但是在家庭助理中我只能看到 x001 x002 x004 x005。
我在 ubuntu 中运行 deCONZ,我已经将 Conbee II 固件更新到 26580700。

@ebaauw

如果与按钮对应的端点上的 _Multistate Input_ 集群 (0x0012) 的 _Present Value_ 属性 (0x0055) 反映按钮操作,您能否在 GUI 中仔细检查? 0 表示保持,255 表示长释放,1、2、3 表示单、双、三按。

就我而言,我可以在 GUI 中看到所有按钮操作,就像您上面所说的那样。
但是在家庭助理中我只能看到 x001 x002 x004 x005。
我在 ubuntu 中运行 deCONZ,我已经将 Conbee II 固件更新到 26580700。

是的,我可以确认。 一切都在 VNC GUI 中可见。

我在 HA 中遇到的唯一事件是 x001、x002、x004 和 x005。
我现在可以使用我的开关了,太棒了! 一些丢失的事件总比没有事件好:-)

感谢开发人员,非常感谢您的工作。

就我而言,我可以在 GUI 中看到所有按钮操作,就像您上面所说的那样。
是的,我可以确认。 一切都在 VNC GUI 中可见。

在这种情况下,x003 按钮事件必须由 REST API 插件发出。 我不明白它怎么可能。

我会开始怀疑 HA,但因为还有一份关于 Node-red 的报告:

  • 您能否在保持/长期发布后仔细检查 API 中的state.buttonevent确实是 x003?
  • 您能否用dc_eventlog (包含在 Homebridge Hue 中)或另一个 Web 套接字客户端仔细检查 x003 事件是在 Web 套接字上发出的吗?

我尝试直接使用 deconz API 使用 Hue Essentials(Android 应用程序)制定规则,但这不适用于 1003。
例如 1002 就像它应该的那样工作。
Screenshot_20200525-001517

@ebaauw现值 (0x0055) 报告“255”以获得长期持有释放。
看起来单次按下(释放?)报告“1”,保持“0”,双击“2”,三次按下“3”,长时间保持释放“255”。

这可能无关紧要,但在双击或三次按下的最后一次点击长时间发布后,它也会报告 255(对于长时间发布之前的那些事件,它仍然报告 2 或 3)

编辑:包括截图
Screen Shot 2020-05-24 at 7 09 21 PM

这可能无关紧要,但在双击或三次按下的最后一次点击长时间发布后,它也会报告 255(对于长时间发布之前的那些事件,它仍然报告 2 或 3)

看到 x003 没有前面的 x001 有点不寻常,但 API 客户端应该能够处理这个问题(轮询 Hue 桥时,甚至可能会错过 x001)。 我认为这与丢失/未处理事件的情况无关。

我们真的需要确定问题出在哪里。 据我们所知,交换机报告事件正常,_Present Value_报告255。 下一步是仔细检查 API 是否更新了state.buttonevent并发出 Web 套接字通知。

再说一次,我不明白它如何适用于其他值,但不适用于 255。我讨厌打“它对我有用”卡并盲目地责怪 API 客户端,所以请检查这个。

在按 Opple 6 按钮 (WXCJKG13LM) 上的按钮 1 4 秒后,在 HA AddOn deconz 日志中:

07:51:35:742 按钮 1001 关闭
07:51:35:742 集群的 ZCL 属性报告 0x04CF8CDF3Cxxxxxx:0x0012,ep:0x01,帧控制:0x18,mfcode:0x0000
07:51:39:719没有按钮处理程序:lumi.remote.b686opcn01 ep:0x01 cl:0x0012 cmd:0x0A pl[0]:0x55
07:51:39:719 集群的 ZCL 属性报告 0x04CF8CDF3Cxxxxxx:0x0012,ep:0x01,帧控制:0x18,mfcode:0x0000

x003 的 deconz .76 中似乎没有按钮处理程序

你能用--dbg-info=2运行 deconz 并捕获asdu有效载荷吗? 我认为 0x55 可能指的是 _Present Value_ 属性 id (0x0055) 的 lsb。 交换机为所有操作发送相同的属性报告(命令 0x0A),仅有效载荷中的值不同。

在我的情况下,我按照步骤添加删除、重新启动和重新添加,我的一个开关工作得很好,但另一个仍然在没有多状态输入的情况下添加,并控制网络中的所有灯。

希望抓住所有相关的,如果你需要更多让我知道......

08:13:16:503 来自子 0x3B01 的 APS-DATA.indication
08:13:16:504 验证 0x04cf8cdf3cxxxxxx 是 94 秒后的子节点
08:13:16:504 节点数据 0x04cf8cdf3cxxxxxx profileId:0x0104,clusterId:0x0012
08:13:16:505 0x04CF8CDF3Cxxxxxx:0 秒后更新 ZCL 值 0x01/0x0012/0x0055
08:13:16:507 按钮 1001 关闭
08:13:16:508 强制绑定传感器 OPPLE Schalter 3-fach 的属性报告
08:13:16:508 集群的 ZCL 属性报告 0x04CF8CDF3Cxxxxxx:0x0012,ep:0x01,帧控制:0x18,mfcode:0x0000
08:13:16:510 有效载荷:5500210000
08:13:16:515 Websocket 172.30.32.1:34146 发送消息:{"e":"changed","id":"66","r":"sensors","state":{"buttonevent": 1001,"lastupdated":"2020-05-25T06:13:16.507"},"t":"event","uniqueid":"04:cf:8c:df:3c:xx:xx:xx-01- 0012"} (ret = 165)
08:13:16:516 Websocket 172.30.32.1:34172 发送消息:{"e":"changed","id":"66","r":"sensors","state":{"buttonevent": 1001,"lastupdated":"2020-05-25T06:13:16.507"},"t":"event","uniqueid":"04:cf:8c:df:3c:xx:xx:xx-01- 0012"} (ret = 165)
08:13:16:517 Websocket 172.30.32.1:34182 发送消息:{"e":"changed","id":"66","r":"sensors","state":{"buttonevent": 1001,"lastupdated":"2020-05-25T06:13:16.507"},"t":"event","uniqueid":"04:cf:8c:df:3c:xx:xx:xx-01- 0012"} (ret = 165)
08:13:16:518 Websocket 192.168.76.92:43698 发送消息:{"e":"changed","id":"66","r":"sensors","state":{"buttonevent": 1001,"lastupdated":"2020-05-25T06:13:16.507"},"t":"event","uniqueid":"04:cf:8c:df:3c:xx:xx:xx-01- 0012"} (ret = 165)
08:13:16:521 验证邻居状态:APP_SUCCESS (0x00)
08:13:16:521 丢弃传感器状态推送 66:状态/上次更新(已推送)
08:13:16:544 来自子 0x3B01 的 APS-DATA.indication
08:13:16:544 节点数据 0x04cf8cdf3cxxxxxx profileId:0x0104,clusterId:0x0012
08:13:16:545 0x04CF8CDF3Cxxxxxx:0 秒后更新 ZCL 值 0x01/0x0012/0x0055
08:13:16:546 强制绑定传感器 OPPLE Schalter 3-fach 的属性报告
08:13:16:546 无按钮处理程序:lumi.remote.b686opcn01 ep: 0x01 cl: 0x0012 cmd: 0x0A pl[0]: 0x55
08:13:16:546 集群的 ZCL 属性报告 0x04CF8CDF3Cxxxxxx:0x0012,ep:0x01,帧控制:0x18,mfcode:0x0000
08:13:16:546 有效载荷:550021ff00

我完全迷失了。 没有代码可以以不同方式处理有效负载中的不同值。 这个对我有用:

May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:443 APS-DATA.indication srcAddr: 0xee72, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -38
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:443     asdu: 18cb0a550021ff00
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:444 Node data 0x04cf8cdf3c79744f profileId: 0x0104, clusterId: 0x0012
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:444 0x04CF8CDF3C79744F: update ZCL value 0x01/0x0012/0x0055 after 0 s
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:446 button 1003 Off long released
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:446 don't create binding for attribute reporting of sensor Opple
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:446 Force binding of attribute reporting for sensor Opple
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:446 ZCL attribute report 0x04CF8CDF3C79744F for cluster: 0x0012, ep: 0x01, frame control: 0x18, mfcode: 0x0000
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:446     payload: 550021ff00
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:448 Websocket 127.0.0.1:52216 send message: {"e":"changed","id":"7","r":"sensors","state":{"buttonevent":1003,"lastupdated":"2020-05-25T20:17:08.445"},"t":"event","uniqueid":"04:cf:8c:df:3c:79:74:4f-01-0012"} (ret = -1092095048)
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:449 Websocket 127.0.0.1:52260 send message: {"e":"changed","id":"7","r":"sensors","state":{"buttonevent":1003,"lastupdated":"2020-05-25T20:17:08.445"},"t":"event","uniqueid":"04:cf:8c:df:3c:79:74:4f-01-0012"} (ret = -1092095048)
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:451 discard sensor state push for 7: state/lastupdated (already pushed)

为了确定起见,我重置并重新配对了 Opple。 我在 v2.05.76 上用 ConBee II 在 Raspbian buster 下尝试了 Pi 4B,在 v2.05.77 上用 RaspBee 在 Raspbian 拉伸下尝试了 Pi 3B+。

你在什么平台上运行? 我能想到的唯一解释是编译器错误。

刚刚使用 2/4/6 按钮开关尝试了 v2.05.77,一切似乎都按预期工作。

我唯一不确定的是,当我按住按钮很长时间(超过 6 秒)时,释放事件不再发生。 @ebaauw你知道它是否应该这样吗?

是否应该这样我无法回答,但我的经历是一样的。 从外观上看,当您按住它太长时间时,交换机不再发送释放消息。 与“无按钮处理程序”问题无关。

好吧,也是这么想的。
关于“无按钮处理程序”问题,我也想知道为什么有些用户得到0x55负载而不是0x255

它是 255(十进制)或 0xFF。

请参阅上面的日志:有效负载用于 _Report_ 属性命令550021xx00 ,或: 0x0055 - _Present Value_ 属性; 0x21 - 数据类型uint16 ; 0x00xx 值。 日志显示payload[0],即第一个字节,即0x55; 按钮处理程序查看payload[3],它是第四个字节,或xx。
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/2a26b78f4139a179968e61aa0e0caf3fd1917162/de_web_plugin.cpp#L3581 -L3591

啊对。 抱歉,已经太晚了……现在我明白了。 那么为什么它会查看某些用户的第一个字节呢?

我遇到同样的情况,如果你长按按钮,6 秒后将不再有消息,但长按 1 秒后 x001,如上图所示。
我将 NUC 与虚拟盒和 Home Assistant 0.110.2(或最新版本)与 AddOn deconz .76 ConBee II 26580700 一起使用。
该消息似乎已发送,因为只有长按或非常长按 ;-):

08:13:16:546 无按钮处理程序:lumi.remote.b686opcn01 ep: 0x01 cl: 0x0012 cmd: 0x0A pl[0]: 0x55
08:13:16:546 集群的 ZCL 属性报告 0x04CF8CDF3Cxxxxxx:0x0012,ep:0x01,帧控制:0x18,mfcode:0x0000
08:13:16:546 有效载荷:550021ff00

你需要别的东西吗? 让我知道。

非常感谢您的帮助!

如何捕获adsu数据? 如果我激活--dbg-info=2我在日志中没有这样的东西:
May 25 22:17:10 pi5 deCONZ[28578]: 22:17:08:443 asdu: 18cb0a550021ff00
那么哪个参数激活这个输出来记录?

可能--dbg-aps=2 。 需要在某个时候收集和记录所有这些......

非常感谢您的辛勤工作。
我现在有六个月的时间了,并且在这里阅读了很多。
刚刚将开关添加到 homeassistant。 现在我有 16 个新事件要处理……
非常感谢你

但是为什么,最好的事件之一不起作用。 太难过了 ;(

你是说保持后释放?

你是说保持后释放?

是的

保持后释放正在工作......显然,交换机在超过 6 秒后不发送释放事件是交换机本身的问题。

保持后释放正在工作......显然,交换机在超过 6 秒后不发送释放事件是交换机本身的问题。

不,它在 HA 中不起作用。 是的,该事件在 GUI 中可用,但这不是一个有效的解决方案。 你说那是开关本身工作不好,但我没有看到这个开关在 zigbee2mqtt 上有任何问题。

它正在HA工作。 自从我在三月份与 HA 一起实施以来一直在使用它...
为什么对某些人来说它不起作用,需要调查。

@merdok :即使交换机在 6 秒内发送此消息,保持后的释放在 deconz、HA 和 NodeRED 中都不起作用。

在 6 秒内保持后,Deconz 不会发送事件 x003 以供释放。

我今天用三个新的 opple 6 gang 按钮和一个全新安装的 deconz (.77) 和 ConBee II 264A0700 和 26580700 进行了尝试。

17:45:50:322 APS-DATA.indication srcAddr: 0x0494, srcEp: 0x03 dstAddrMode: 2, profile: 0x0104, cluster: 0x0012, lqi: 255, rssi: -42
17:45:50:322 asdu: 18040a550021ff00
17:45:50:322 来自子 0x0494 的 APS-DATA.indication
17:45:50:322 节点数据 0x04cf8cdf3c797497 profileId:0x0104,clusterId:0x0012
17:45:50:322 强制绑定传感器 OPPLE Schalter 3-fach 的属性报告
17:45:50:322没有按钮处理程序:lumi.remote.b686opcn01 ep:0x03 cl:0x0012 cmd:0x0A pl[0]:0x55
17:45:50:322 集群的 ZCL 属性报告 0x04CF8CDF3C797497:0x0012,ep:0x03,帧控制:0x18,mfcode:0x0000
17:45:50:322 有效载荷:550021ff00

长新闻发布问题可能是编译器错误。
我可能是错的,这个理论必须经过测试,但它似乎适用于 Raspberry Pi (ARM),而不适用于 x86。

我在无头 PC 上运行 HA/deconz,我注意到上面有这个问题的人正在使用 NUC。 成功的人似乎都在使用 Raspberry Pi。

任何人都对您正在运行的内容以及您在获得这些活动方面的成功有任何反馈?

编辑:我不确定不同类型的开关的代码如何或是否不同,但我确实收到了其他开关的释放事件,而不是这个 Opple (lumi.remote) 开关。

可能是一个解释,我使用带有 Win10、VB 的 NUC。
将尝试我的 rpi3b ...

@luke3butler好点。 那可以。 我也使用 Raspberry Pi (ARM) 并且它工作正常。

我有,Deconz 在 Synology 上的 docker 中。

对我来说,x003 事件适用于 rpi3-something

x003 在我的设置中不起作用。
在带有 WMware (ESXI) 和 Ubuntu Desktop 18.04 的 Intel i5 上运行

RPi3 在这里与 HA 一起使用,虽然我只在 6 秒完成之前使用保留事件后的释放,但我必须确认在 6 秒后 x003 事件没有找到通往 Deconz 的路。

在我的 RPi3B 上它可以工作,使用相同的 Opple 6-gang,以及相同的 ConBee II 264A0700 和 ConBee II 26580700
在我的 NUC i7 win10 VB HA 0.110.3 AddOn Deconz .77 上它没有。

@Kroeliemonster这是一个不同的问题,可能与开关本身有关。
你必须区分它,因为这只会让这里的人感到困惑!

根据目前的反馈,它看起来像是一个编译器错误,或者至少是与 CPU 架构有关的问题。

根据目前的反馈,它看起来像是一个编译器错误,或者至少是与 CPU 架构有关的问题。

正如我之前所说,这似乎是最合理的解释。

我能想到的唯一解释是编译器错误。

古怪的表达似乎是:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/2a26b78f4139a179968e61aa0e0caf3fd1917162/de_web_plugin.cpp#L3586

zclParam0quint16zclFrame.payload()返回QByteArrayQByteArray::at()返回char 。 因此,我们将 255 的无符号 16 位整数值与我假设的 8 位可能有符号char值进行比较。 我想_是_自找麻烦。

按钮图中我们使用zclParam0值 255 的唯一其他地方是宜家调光器的 1002(急右转)。 猜猜我们在那里看到了什么? 提示:#2787。 也许我们说调光器被诅咒有点为时过早?

@manup ,您对此有何看法?

@ebaauw你认为在按钮映射中使用 0xFF 可以解决这个问题吗?

该文件中“payload().at(”的大多数用途都被强制转换或分配给无符号临时文件。在我看来,与无符号值相比的所有用途都应该以相同的方式处理,以保持一致性,即使它们似乎没有严格意义上的危险信号,因为这个用法实例在 255 可能被视为有符号值 -1 的情况下。

你认为在按钮映射中使用 0xFF 可以解决这个问题吗?

否。编译器会将 255 和 0xFF 转换为完全相同的值。 将zclParam0值更改为 65535 (0xFFFF) 可能适用于 x86,但在 ARM 上会中断。

将比较更改为buttonMap->zclParam0 == zclFrame.payload().at(3) & 0xFF可能对两种架构都有效。 使用更体面的方式来解码有效载荷将是最好的解决方案恕我直言。

char在 x86 上签名,在 ARM 上未签名,请参阅:
https://www.linuxtopia.org/online_books/an_introduction_to_gcc/gccintro_71.html

因此,在 x86 上,8 位值 -1 (0xFF) 可能会转换为 16 位无符号值 65535 (0xFFFF),作为带符号的 16 位值,该值将是 -1。 在 ARM 上,8 位无符号值 255 (0xFF) 将被转换为 16 位无符号值 255 (0x00FF)。

也许buttonMap->zclParam0 == static_cast<quint8>(zclFrame.payload().at(3))

也可能工作。 我无法在 x86 上编译以进行检查。

还有一些zclParam0 > 127 的地方: lumi.sensor_switch上的 1010(多次按下)和内部遥控器 RC110 上的 7002、8002、9002(_4_、_5_、_6_)。 猜猜看:https://github.com/dresden-elektronik/deconz-rest-plugin/issues/635#issuecomment-534519677)。

也可能工作。 我无法在 x86 上编译以进行检查。

我也不能。 我最倾向于使用转换为某种类型的无符号 8 位 int,因此将static_castquint8uint8_t会很好。 如果您使用位操作方法,我会觉得使用0x0ff而不是0xff ,只是因为我不能说后者必然会产生未签名的结果,尽管我猜测它可能会。

会尝试一下,但不幸的是我也不能为 x86 编译。

@ebaauw在这里可能会解决一批错误背后的问题。
非常感谢您的工作。 🥇

如果没有人能够进行 x86 测试,我会花时间建立一个专门的测试环境。 我正在使用 HA 集成(受监督),但可以启动另一个 VM。

我云甚至帮忙,但需要帮助如何...

对于lumi.sensor_switch的 1010(多台印刷机),看起来之前已经发现(并解决)了这个问题:
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/720a324f33dcb31efc086f2f052b35eba3948794/de_web_plugin.cpp#L3546
有了相当数量的蛮力,我可能会补充。

我刚刚将payload().at( _n_ )分配给了 Lutron Aurora 的quint8 ,但我不知道是否有人在 x86(或其他带有签名的平台)上测试过它char )。

你能在 x86 上测试我上面的提交吗?

作为记录:它毕竟不是编译器错误,只是糟糕的、不可移植的代码。

感谢所有正在进行的辛勤工作,目前似乎我无法通过 deconz 将事件发送到我的 HassOS。
这个价格/质量还有其他 6 帮交换机吗?

测试最新的“测试版”,一切正常。 对我来说,我们可以在最终发布后关闭问题。

我们可以_最后_关闭这个😄吗?

我无法测试它,因为测试版不适用于 HA AddOns,而且我现在无法在 x86 或 x86 VM 上测试它。

@ebaauw@Mimiix 非常感谢您的辛勤工作。

我会测试它,尽快在 HA 中发布可用。

@thecem我没有做太多, @ebaauw是这里
如果 HA 插件已发布并更新,请在有任何问题时联系这里 :)

_Mimiix 喜欢摆脱旧的长期运行问题😄_

有什么特别的情侣程序吗? 我安装了最新的 deconz 版本,但无法连接 6 按钮开关。 它有效,因为它直接开关灯,但它没有连接到 deconz。

我已经测试了 x003,它在 NUC WIN10 HA 0.110.4 Addon Deconz 2.05.08 中工作:

grafik

@ebaauw :感谢您的

有什么特别的情侣程序吗? 我安装了最新的 deconz 版本,但无法连接 6 按钮开关。 它有效,因为它直接开关灯,但它没有连接到 deconz。

我一开始也遇到了同样的问题。 所以我玩弄 C 按钮(按住 5 秒,等待,按下 1 秒,等待,重复所有操作),并在某个时候它连接到 deconz。 非常不满意的尝试和错误。 _另外,它不会触发 deconz_event,所以这个时候对我来说没用。_

编辑:我已经更新了 deconz,现在我得到了事件。 :-)

您至少需要 2.05.77 版本,如果您之前连接过,请使用最新版本进行修复。
在 deconz 中:

  • 连接新开关
  • 按下 c 按钮(短 // 1 秒,如果您事先按下它 15 秒来重置它,如果没有按下它 15 秒)
  • 等待

我有 2.05.78 / 22.05.2020 - 昨天的最新版本,但今天它出于某种原因从https://phoscon.de/en/changelog/消失了?

我按下 c 键 15 秒。 每 ~ 5 秒,LED 闪烁一次。
我在 Phoscon Web App 中按下了 Add Switch
我按 C 键 1(也尝试了 5 次)...... LED 再次闪烁,但没有配对:(

由于此问题最终会导致人们在小事上需要帮助并且支持 opple 开关,因此我将关闭此问题。

对于小问题,Discord 是您的最佳选择! 你可以在 readme.md 中找到 URL

伙计们,今天我尝试将 opple 6 按钮与带有 26350500 固件的 raspbee 配对,并且遇到了有趣的行为。 点击添加开关,我开始点击C配对按钮,没有任何反应,但是,我点击了开关上的一个按钮,开关开始控制我的三个E27 aqara灯泡,开/关,色温和亮度。 在这之后,我重复了几次配对模式,终于把switch加到了phoscon上,但是在HA中我没有收到任何事件。

那么,问题是,raspbee 是否可以与 opple 开关配合使用?

按钮 1,左上角,动作 = 关闭我所有的灯和插座。
按钮 2,右上角,动作 = 打开我所有的灯和袜子。
按钮 3,左中,操作 = 降低灯泡亮度。
按钮 4,中间右侧,动作 = 增加灯泡的亮度。

今天得到了我的 opple 6-way 并且有完全相同的行为。

我在 2.5.79 上使用 ConBee 1 上的固件 26350500

我只能建议您尝试再次添加。 正如我之前在另一个主题中所写的那样,我可以在配对过程中无需按按钮进行添加,只需启动配对过程,然后将设备置于配对模式即可。 所以说试试你的运气。 ;)

这是我正在谈论的话题: https :

我修理了多次开关。
删除了 Phoscon 中的开关。
在 Phoscon 中开始发现。
按住开关上的 C 按钮约 13 秒,直到 LED 第二次闪烁。
......
......
无需按 6 个按钮中的任何一个即可发现开关。
所有的灯和插头都会自动打开。

image

哦,那好吧。 一次又一次。 现在它起作用了。 不知道为什么

那么这个问题我也不能给出详细的答复。 我很高兴你最终做到了。

今天我收到了这个开关,根据我的经验,如果你在 LED 闪烁后仍然按下 C 按钮会有所帮助。 当我开始这样做时,我能够配对它。

具有与@saxn-paule 相同的版本并且在 Phoscon 中几乎相同 - 只有很小的差异我有详细的版本。

image

有必要在 git 的 deconz 支持页面收集信息并尽可能详细地为用户描述配对过程...

亲爱的大家
我收到了相同的开关,并且能够将它包含在 Phoscon 中。 现在,我正在尝试为这六个按钮创建一些操作,不幸的是,只有两个顶部按钮可以通过自动化识别。 如何为中间和向下按钮生成自动化?

你好
您正在运行哪个版本的 deconz。 一开始就有一些问题。 如果您使用的是 2.5.82,那么我建议您再次删除开关并通过按下后退按钮超过 15 秒再次加入。 加入后,您会收到成功加入的消息,按左上角按钮。 这就是它对我的工作方式,现在所有 6 个按钮都显示事件。

你好
我再次完成了这个过程,但是当我进行配置(Hassio)时,我只有一个实体(电池)并且没有按钮实体?

image

好的,但这可能不是 deconz 问题。 您可能会在 hassio 支持论坛上发布请求?

我正在使用 ioBroker,它运行良好。

那就是我能够生成所有必要的自动化
谢谢

你好
我再次完成了这个过程,但是当我进行配置(Hassio)时,我只有一个实体(电池)并且没有按钮实体?

你很可能已经找到了,但可以肯定。 在家庭助理中,您必须处理事件(类型 deconz_event) - 按钮不会作为开关实体添加。

如果您想通过 deCONZ Zigbee 中的此开关控制所有设备,对我来说最方便的是使用 Phoscon 操作。
image

你好,

我如何才能真正更新在 raspberry 上运行的 Phoscon? 它说版本 2.05.71 是 up2date,没有可能更新到 2.05.77 来让他运行 Opple。

谢谢
雅库布

@elpaso666取决于您的安装方法。 如果您只是本机安装,请使用 linux 更新方式。 信息在这里: https :

如果您运行 Raspbian,则工作原理相同。

对于这里有一般问题的所有用户:该设备已正确实施且功能正常。

对于问题:使用 Discord,或打开自己的问题(使用用户问题模板!)

@Mimiix我已经运行 sudo atp-get update/upgrade ......它去了,最后一行是这样的:
设置 deconz (2.05.81-raspbian-buster-stable) ...
我如何在 phoscon 中看到 2.05.71 / 9/14/2020 - 旧版本,但新日期 :)

@Mimiix我已经运行 sudo atp-get update/upgrade ......它去了,最后一行是这样的:
设置 deconz (2.05.81-raspbian-buster-stable) ...
我如何在 phoscon 中看到 2.05.71 / 9/14/2020 - 旧版本,但新日期 :)

这里完全一样.....我升级到最新版本但 phoscon 应用程序仍然显示 2.05.71 与更新
像 elpaso666 提到的日期。
我通过 shell 再次检查以进行更新,但现在它说我使用的是最新版本。

你好,
尝试重新启动 RPI。 重新启动后,我在 Phoscon gui 中获得了最新版本,并带有可用按钮来升级固件,我做到了,现在我使用的是最新的 phoscon 和最新的固件,其中 Aquara Opple 按钮确认它在工作时已更新。

雅库布

你好,
尝试重新启动 RPI。 重新启动后,我在 Phoscon gui 中获得了最新版本,并带有可用按钮来升级固件,我做到了,现在我使用的是最新的 phoscon 和最新的固件,其中 Aquara Opple 按钮确认它在工作时已更新。

雅库布

谢谢 Jakub ......这就是解决方案! Aqara Opple 现在工作。

按钮 1,左上角,动作 = 关闭我所有的灯和插座。
按钮 2,右上角,动作 = 打开我所有的灯和袜子。
按钮 3,左中,操作 = 降低灯泡亮度。
按钮 4,中间右侧,动作 = 增加灯泡的亮度。

今天得到了我的 opple 6-way 并且有完全相同的行为。

我在 2.5.79 上使用 ConBee 1 上的固件 26350500

你好,我也有同样的问题,你是怎么解决的?
我在 2.05.88 使用 FW 26660700(最新固件),Conbee 2

按钮 1,左上角,动作 = 关闭我所有的灯和插座。
按钮 2,右上角,动作 = 打开我所有的灯和袜子。
按钮 3,左中,操作 = 降低灯泡亮度。
按钮 4,中间右侧,动作 = 增加灯泡的亮度。

今天得到了我的 opple 6-way 并且有完全相同的行为。
我在 2.5.79 上使用 ConBee 1 上的固件 26350500

你好,我也有同样的问题,你是怎么解决的?
我在 2.05.88 使用 FW 26660700(最新固件),Conbee 2

我也是。 与 Phoscon 配对运行良好,但它始终激活所有 Zigbee 设备,而无需在 ioBroker 中配置任何场景。 它只是做它想做的,所以我想这个开关毫无价值......

Switch 在这里工作正常,但我必须承认我没有通过 Phoscon 界面分配操作。 我正在通过 node-red(以及相应的 deconz 插件)处理按钮按下。

嗯,那么我想知道这是否与我与 deconz 一起使用的 ioBroker 有关。 虽然我没有设置任何命令来激活触发器上的所有内容......有点奇怪

你好
我有几个 aqara opple 开关,它们工作正常。 同样在开始时,我在配对它们时遇到了问题。 我遵循了这些步骤。

  1. 删除 phoscon 应用程序中的开关(如果它已经在那里了)
  2. 启动配对模式
  3. 按下 opple 开关上的复位按钮至少 13 秒并松开
  4. 等待!!! 直到完全配对,您可以看到 Phoscon 中的制造商和交换机名称已更改
  5. 关闭进程
  6. 按左上角按钮 1 次
    通过这个过程,它确实总是有效。

希望这可以帮助。

亲切的问候

@easybeat谢谢你的帖子。 您是否能够通过来自 opple 交换机的 websockets 接收任何事件? 在我的情况下,配对有效,但 websocket 中没有事件。 (Conbee 2: 2.06.00 固件 26660700)

你好

是的,我在 ioBroker 中使用它们,最新的 deconz Adapter 2.06 没有任何问题。

这有帮助吗?

谢谢

@easybeat谢谢你的帖子。 您是否能够通过来自 opple 交换机的 websockets 接收任何事件? 在我的情况下,配对有效,但 websocket 中没有事件。 (Conbee 2: 2.06.00 固件 26660700)

您是否尝试过重新启动 deconz 适配器实例? ioBroker 重启? 在我使用 Opple 开关的情况下,这是解决问题的步骤。

@easybeat谢谢你的帖子。 您是否能够通过来自 opple 交换机的 websockets 接收任何事件? 在我的情况下,配对有效,但 websocket 中没有事件。 (Conbee 2: 2.06.00 固件 26660700)

抱歉没有看到您提到您已经使用 deconz 2.06 版本。 我不是,我在 2.5.86 上使用以前的固件。

您是否尝试过重新启动 deconz 适配器实例? ioBroker 重启? 在我使用 Opple 开关的情况下,这是解决问题的步骤。

是的,我重新启动了 deconz。 我这边没有涉及 ioBroker。 我只是在检查 WebSocket。

我对版本做了一些研究:

  • 在 2.06.00 配对时 --> 无事件
  • 在 2.05.88 配对时 --> 无事件
  • 在 2.05.85 中配对时 --> 事件正在运行

    • 升级到 2.06.00:事件仍然有效(没有新的配对)

看起来,配对已损坏 >= 2.05.88(配对有效,但没有事件)

@easybeat Thx,您对版本的暗示为我指明了正确的方向。

我对版本做了一些研究:

  • 在 2.06.00 配对时 --> 无事件
  • 在 2.05.88 配对时 --> 无事件
  • 在 2.05.85 中配对时 --> 事件正在运行

    • 升级到 2.06.00:事件仍然有效(没有新的配对)

看起来,配对已损坏 >= 2.05.88(配对有效,但没有事件)

@easybeat Thx,您对版本的暗示为我指明了正确的方向。

行。 很有意思。 请创建一个错误报告,很好,你让他们工作。 我认为这些是目前与 deconz 兼容的最佳开关。

谢谢

我通常使用 phoscon 和 deconz gui 并在配对 oppleswitch 时执行以下操作:

  1. 单击“添加新交换机”
  2. 按下位于背面的 oppleswitch 按钮 C 6 秒
  3. 转到 deconz,单击基本集群并读取属性
  4. Phoscon 应显示“化合物已准备好”,不要关闭它。
  5. 如果您的设备像这样在 deconz 上显示,则表示成功并且未与所有 zigbee 设备配对
    image
  6. 如果没有,请单击 deconz gui 上的 oppleswitch 设备并按 F5(重置节点),直到到达集群上方。 重复直到成功,我通常做2-3次。
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jan666 picture jan666  ·  4评论

philko123 picture philko123  ·  3评论

salopette picture salopette  ·  4评论

felixstorm picture felixstorm  ·  4评论

mvasicek picture mvasicek  ·  4评论