Deconz-rest-plugin: 添加对Danalock v3的支持

创建于 2018-04-04  ·  146评论  ·  资料来源: dresden-elektronik/deconz-rest-plugin

智能锁是未来,所以让我们支持Danalock v3的Zigbee版本。

https://danalock.com/danalock-v3.html

Device Request

最有用的评论

请添加对此锁的支持。 那将不胜感激。

所有146条评论

我同意!

嘿,

我试图整合我的Danalock V3-Zigbee。

但是问题是,用于更改锁定状态的群集显示为“未知群集”。 附件中您可以看到我所看到的信息。

另外,我还附有danalock的官方zigbee文档。

附加信息:Danalock使用新的ZHA V3,目前仅受Amazon echo plus(与zigbee配合)支持。

有人可以帮忙吗?

最好的祝福
TD003 Zigbee手册.pdf

danalock_1
danalock_2

您需要将0x0101群集(属性和命令)添加到general.xml中,以使其显示在deCONZ GUI中。 通常,这涉及将文本从ZCL或ZHA规范手动转换为XML。

下一步将弄清楚锁如何响应各种命令,其状态如何反映在属性中以及它是否支持属性报告。

然后,我们需要找出要为锁创建的/lights和/或/sensors资源。 这将是丑陋的:我们无法放置/sensors state ,因此控制锁定很可能是通过/lights资源(请参阅我们对警报器所做的操作,窗帘和通风孔)。 此外, /lights资源没有config.battery ,因此我们需要额外的/sensors资源来显示电池电量。

我对zigbee“编码”非常陌生。 愿有人愿意帮助我:)我想它也会帮助别人,而且! 我认为,当raspbee总体上支持smartlocks时,对于该产品将是一个很大的优势。

因此,我现在添加了以下集群:

<cluster id="0x0101" name="Door Lock">
    <description>Provides a mechanism for the controlling a Smart Lock.</description>
    <client>
    </client>
    <server>
        <attribute id="0x00" name="Lock state" type="u32" access="rw" required="o"></attribute>
        <attribute id="0x01" name="Lock type" type="u32" default="0x00" access="rw" required="o"></attribute>
        <attribute id="0x02" name="Actuator enabled" type="u32" default="0x00" access="rw" required="o"></attribute>
        <attribute id="0x10" name="Num lock records supported" type="u32" default="17918" access="rw" required="o"></attribute>
        <attribute id="0x11" name="Num total users Supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x12" name="Num PIN users supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x13" name="Num FRID users supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x14" name="Num weekday schedules supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x15" name="Num yearday schedules supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x16" name="Num holiday schedules supported" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x20" name="Enable logging" type="u32" default="1" access="rw" required="o"></attribute>
        <attribute id="0x34" name="Zigbee security level" type="u32" default="0" access="rw" required="o"></attribute>
        <attribute id="0x40" name="Alarm mask" type="u32" default="0xFFFF" access="rw" required="o"></attribute>
        <attribute id="0x42" name="RF operation event mask" type="u32" default="0xFFFF" access="rw" required="o"></attribute>
        <attribute id="0x43" name="Manual operation event mask" type="u32" default="0xFFFF" access="rw" required="o"></attribute>
        <attribute id="0xFFFD" name="Cluster revision" type="u32" default="0x01" access="rw" required="o"></attribute>
        <command id="0x00" dir="send" name="LockDoorResponse" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x01" dir="send" name="UnlockDoorResponse" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x00" dir="recv" name="LockDoor" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x00" dir="recv" name="UnlockDoor" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x01" dir="recv" name="GetLogRecord" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x04" dir="send" name="GetLogRecordResponse" required="o">
            <description></description>
            <payload></payload>
        </command>
        <command id="0x20" dir="send" name="Operationg Event Notification" required="o">
            <description></description>
            <payload></payload>
        </command>
    </server>
</cluster>

它来自danalocks zigbee文档(如上所述)。

但是使用此代码,deconz中的每个群集现在都显示为“未知”。 我看不到任何语法错误。

也许有人对我有更多的了解? :)

最好的祝福

如果所有集群都显示未知,则general.xml出现问题。 通常是语法错误,但也可能是逻辑错误。 命令ID似乎重复。 您是否将它放在_Closures_域中,就在_Windows Covering_群集之前? 如果您可以附加压缩后的general.xml,我来看一下。

编辑Danalock Zigbee手册非常简短。 从ZCL规范来看,这些属性并不都是uint32也不是读/写。 此外,响应命令具有强制性有效负载,而set命令将PIN用作可选有效负载。 但不确定Danalock是否支持PIN。

danalock未提交更多信息...

附件中,您可以找到包含general.xml的请求的zip文件。

deconz.zip

最好的祝福

有人已经审查了我的案子吗?

非常感谢😘

好的。 我只是尝试了一下
如我所见,即使我从general.xml中删除了智能锁集群,每个集群的未知性仍然存在。

我将我的general.xml与github上的“原始”文件进行了比较。

问题仍然出现。 现在每个群集都是未知的。 Thefuck错了吗?

看起来您将新条目放置在错误的域中。

您是否将它放在_Closures_域中,就在_Windows_覆盖群集之前?

你好

是的,我做到了。 但是正如我提到的,我另外删除了群集并将其与原始群集进行比较。 一切仍然未知。 我也让deconz重新读取配置

我也让deconz重新读取配置

我从来没有那个工作。 最好退出并重新启动deCONZ以重新加载general.xml。

您能从上述我的提交中尝试general.xml吗?

ang! 开箱即用!

现在,让我们看起来“可实现”。

为什么我们不将其伪装成开关? 就像1被锁定而0被解锁一样。

您能否发布_Door Lock_集群的屏幕截图(阅读所有属性之后)?

您能否检查是否可以为_Lock State_属性设置属性报告? 我希望/期望当您发出_Lock Door_或_Unlock Door_命令以及手动控制锁定时,此属性将自动反映当前锁定状态。

bildschirmfoto von 2018-08-10 20-09-05
bildschirmfoto von 2018-08-10 20-09-12
附上截图。

我不必设置任何东西。 状态在更新后立即更新。

我目前尝试通过仅“复制”窗口覆盖部分来修改其余api插件源。

编辑:嗯,锁不会出现。 :/

我目前尝试通过仅“复制”窗口覆盖部分来修改其余api插件源。

确实,最好将其暴露为一盏灯,并将state.on映射到锁定状态。 但是,还有更多的东西。 在de_web_plugin.cpp中更改addLightNode()

  • 供应商ID(0x115c)需要定义并列入白名单,因为它是电池供电的( if (node->nodeDescriptor().manufacturerCode() == VENDOR _...)`;
  • 需要通过设置hasServerOnOffif (i->inClusters()[c].id() == DOOR_LOCK_CLUSTER_ID) ;
  • 需要定义设备ID(0x000a)并将其列入白名单( case DEV_ID_DOOR_LOCK下的case DEV_ID_HA_WINDOW_COVERING_DEVICE )。

在light_node.cpp中:

  • 将供应商添加到setManufacturerCode() ;
  • 将设备ID添加到setHAEndPoint()以将类型设置为"Door lock"

这应该足以创建资源(我希望)。 最好搜索DEV_ID_HA_WINDOW_COVERING_DEVICEWINDOW_COVERING_CLUSTER_ID ,以确保它们未在其他地方列入白名单。

自己注意:_Door Lock_的设备ID 0x000a仍然在general.xml中丢失。

接下来,您需要将state.on映射到_Lock State_属性(以便将对锁定状态的更改反映在state.on )。 在de_web_plugin.cpp中的nodeEvent()中,将DOOR_LOCK_CLUSTER_ID列入白名单以调用updateLightNode() 。 在updateLightNode() ,将同一集群列入白名单,并为ic->id() == DOOR_LOCK_CLUSTER_ID添加一个处理程序,类似于_ONOFF_CLUSTER_ID_,但显然检查属性0x0101 / 0x0000。

要通过REST API控制锁定,您需要在zcl_tasks.cpp中创建一个新例程addTaskDoorLock() ,请参见。 我为控制警报器而创建的addTaskWarning() 。 根据锁定状态参数,使用_Lock Door_或_Unlock Door_命令添加任务。 在rest_lights.cpp中,您需要在if (hasOn)下的setLightState()调用此例程。 您需要检查taskRef.lightNode->type() == QLatin1String("Door lock") ,类似于我在警报器的hasAlert下所做的工作。

我目前尝试通过仅“复制”窗口覆盖部分来修改其余api插件源。

它是如何工作的? 我在哪里可以做?

请按照自述文件中的步骤获取REST API插件源的本地副本并进行编译和安装。 然后编辑您的本地源并重新编译插件。

然后编辑您的本地来源

我是这些东西的初学者。 您是否可以上传更改的文件?
您上面的说明当然很好,但是很遗憾,没有帮助,我无法做到。

提前致谢!!!

各位我在这里发布了我的插件更改: https :

我根据window_covering和Warnings做了很多修改。

我现在处于无法进一步发展的地步。 编译仍然显示“未声明”错误,并且该API不会显示我的锁。

也许有人可以更近一点lo(o / c)k:P

VENDOR_DANALOCK应该是_Node info_面板中的_Manufacturer code_。

什么是编译错误?

出现以下错误:

g++ -c -pipe -Wno-attributes -Wall -Wno-attributes -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DDECONZ_DLLSPEC=Q_DECL_IMPORT -DARCH_ARM -DARCH_ARMV7 -DUSE_WEBSOCKETS -DHAS_SQLITE3 -DGW_SW_VERSION=\"2.05.34\" -DGW_API_VERSION=\"1.0.9\" -DGIT_COMMMIT=\"0e7156dc2109aabd38d10146d6e0d3393b48574a\" -DGW_AUTO_UPDATE_FW_VERSION=0x260b0500 -DGW_MIN_RPI_FW_VERSION=0x261f0500 -DGW_MIN_DERFUSB23E0X_FW_VERSION=0x22030300 -DGW_DEFAULT_NAME=\"Phoscon-GW\" -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../.. -I../../common -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWidgets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtSerialPort -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWebSockets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtNetwork -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -Irelease -I. -I/usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -o release/websocket_server.o websocket_server.cpp zcl_tasks.cpp: In member function ‘bool DeRestPluginPrivate::addTaskDoorLock(TaskItem&)’: zcl_tasks.cpp:922:21: error: ‘TaskDoorLock’ was not declared in this scope task.taskType = TaskDoorLock; ^~~~~~~~~~~~ zcl_tasks.cpp: In member function ‘bool DeRestPluginPrivate::addTaskDoorUnlock(TaskItem&)’: zcl_tasks.cpp:957:21: error: ‘TaskDoorUnlock’ was not declared in this scope task.taskType = TaskDoorUnlock; ^~~~~~~~~~~~~~ Makefile.Release:1037: recipe for target 'release/zcl_tasks.o' failed make[1]: *** [release/zcl_tasks.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/pi/deconz/test/deconz-rest-plugin' Makefile:38: recipe for target 'release' failed make: *** [release] Error 2

是。 这就是我目前的立场。

您是否在de_web_plugin_private.h中声明了锁定和解锁功能?

是的,我做到了。 第1072、1073行

因此,我进行了一些更改并编译了插件,将其复制到/ usr / share / deCONZ / plugins,重新启动并执行以下操作:
img_2049

当我在家时,我将测试该功能。

太棒了当我发出API请求时

它可以正确显示灯光及其所有细节:

{
 "etag": "010881e2e4974327caa7b3eb871a1e34",
 "hascolor": false,
 "manufacturername": "Danalock",
 "modelid": "V3-BTZB",
 "name": "Danalock",
  "state": {
   "alert": "none",
   "on": true,
   "reachable": true
  },
"swversion": "0000000E",
"type": "Door Lock",
"uniqueid": "00:0b:57:ff:fe:59:e0:4b-01"
}

当我尝试更改状态时

放置http://192.168.178.100/api/CD5466EA30/lights/7/state
{“ on”:true}

响应是

{
"error":{
 "address":"/lights/7",
 "description":"resource, /lights/7, not available",
 "type":3
 }
}

@ pascal1337 :请您更新您的存储库? 我警告您测试您的更改。 谢谢!

编辑:
也许这在德语中也是可能的;-)
我从您和编译器重新加载了目录(没有错误)。 然后,我“复制”了新插件并重新启动。 然后在Phoscon中开始搜索。 不幸的是,达纳洛克没有出现在那。 难道我做错了什么?

提前致谢!

问候

@ tomac01您好:)回购协议是最新的。 我不确定Phoscon搜索是否会成功。 我使用deCONZ Gui将Danalock直接记录在我的Raspberry上。 您必须使用回形针,牙签或类似物品进行此操作。 短暂按一下Danalock上的孔。 然后,Danalock开始点亮/闪烁绿色。 在此期间,必须向新设备开放网络。

非常感谢!
之后,我会立即尝试。

@ pascal1337 :我再次使用“给定克隆”下载了

我重新整合了Danalock(之前是)。 我还可以通过deConz界面(网络)通过ZigBee正确操作锁。 之后重新启动Raspi。

不幸的是,Phoscon没有将锁显示为灯。 即使我正在寻找也没有。

你还有其他主意吗? 正如我所说:我可以通过Raspi桌面(通过VNC)控制网络中的锁定。 它与它集成在一起。 只有Phoscon没有显示任何内容。

提前致谢!

@ pascal1337我再次将我在DeCONZ中的广告与上面的图片进行了比较。 来自ebaauw的general.xml显示“门锁”而不是“ 000a”。 但这仅是000a的翻译,对吗?

2b703cea-87a4-4e22-a4f2-20eda9fc8d00

确实,设备类型仅在GUI显示中使用。

电池供电的设备非常容易配对。 如果该锁已显示在GUI中,但未创建REST资源:

  • 从旧版Web应用程序打开网络,或从Phoscon应用程序搜索灯光;
  • 从GUI读取_Basic_群集的属性。
  • 对锁执行一些操作,以确保它处于唤醒状态(只需按一下重置按钮,或手动控制锁)。
  • 当REST API插件从锁接收到_Basic_属性时,应创建资源。

如果那不起作用,请仔细检查您的锁是否相同:

  • Mac地址前缀,
  • 制造商ID(在_Node info_面板中),
  • 型号ID和_Manufacturer name_(在_Basic_集群中)

我检查了

  • Mac地址前缀:000b57->确定
  • 制造商代码:0x115c->确定
  • 型号ID:V3-BTZB(与pascal1337相同的ID)->认为还可以
  • 制造商名称:Danalock->确定

我完全按照您的指示进行。 但是只能在deCONZ GUI中识别该锁。 旧的网络应用程序和phoscon都无法识别该锁定。

这是锁中节点信息的图片:
unbenannt

你还有其他主意吗?
是否可以在某处搜索错误?

多谢!

@ pascal1337您可以将编译后的libde_rest_plugin.so提供给我进行测试吗? 如果那行不通,也许还有其他事情……预先感谢!

一些远景:

  • 您确定安装正确吗? 您需要覆盖库存库或将其移出/ usr / share / deCONZ / plugins目录; 仅将其重命名(.old或其他名称)是不够的。
  • 是否正在运行最新版本的deCONZ核心程序?
  • 使用--debug-info=2运行deCONZ,并仔细检查RaspBee是否从锁中接收消息。 如果在重新启动deCONZ之后读取_Basic_集群属性并将其填充在GUI中,那么您感觉很好。
  • 仔细检查锁的电池。

@ebaauw

  • 插件按照自述文件中的说明进行安装(覆盖)。
  • 我已经再次下载了deb软件包并重新安装。 它应该是最新版本(请参见下图)。
    e9ab6eca-902d-4b20-aa87-986483cf7e5c
  • 根据该应用程序,东西还可以。
  • 基本群集属性将在deCONZ-GUI中读取并填充。 我也可以通过GUI(打开/关闭)来控制锁定。

今天下午,我将使用调试设置启动deCONZ,然后看一下....

你好

我编译的插件: http :

@ebaauw关于我的api,您还有其他

@ pascal1337太好了! 将文件复制到目录中并在Phoscon上重新启动后,Danalock立即被识别为亮光。
unbenannt

我不知道编译时做错了什么。 但是一定有问题。 没有编译错误,并且文件已创建。 这实际上对我来说是一个好兆头,但似乎并非如此……;-(

多谢!

您还有关于我的api的其他建议,但我没有采取任何措施?

我不一定会信任错误消息(无法找到资源),但请阅读该错误消息以表示在处理PUT时出现故障,例如没有_OnOff_集群。 您还能更新其他灯光状态吗? 查看您的存储库,您尚未更改rest_lights.cpp吗?

您好,phoscon仍然无法更新其他指示灯。

因此,您无法切换phoscon的锁定? 我也一样

不,不幸的是没有。 尽管Phoscon显示“灯”亮着,但是锁没有反应。 在deConz GUI中,我也没有看到任何活动。 如我所说,我可以通过GUI打开和关闭锁。 不适用于Phoscon。

@ pascal1337 :有什么新东西吗? 不幸的是,我在这里没有帮助。 我什至不能编译:-(。您是否已经检查了集群101的分配?它实际上只能是很小的东西...
许多问候

嗨,我现在没有那么多时间...

不幸的是,我没有进一步的解决方案。

@ pascal1337 ,在rest_lights.cpp中,您需要更改setLightState() 。 在处理json主体( if (hasOn) )中的on键时,您需要检查设备是否为锁,如果是,则发出_Lock Door_或_Unlock Door_命令,而不是_On_或_Off_命令。 您需要在zcl_task,cpp中创建相应的任务或创建一个新文件,就像对Window Covering设备所做的那样。 参见PR https://github.com/dresden-elektronik/deconz-rest-plugin/pull/746。

我没有从rest_lights.cpp中得到他妈的逻辑。 它调用hasOn(),然后调用addTaskSetOnOff()。 但是没有人说它应该打开还是关闭灯。 我不知道,我的addTaskDoorLock分别放在哪里addTaskDoorUnlock。 我也不想操弄API,为什么我们不能将正确的锁定设备集成到API中?

最好的祝福,
帕斯卡

addTaskSetOnOff将ON / OFF作为参数:
addTaskSetOnOff(task, isOn ? ONOFF_COMMAND_ON : ONOFF_COMMAND_OFF, 0))
因此,它取决于先前设置的isOn

我是这个话题的新手,还帮不上忙。 我家里有一个带Zigbee的全新Danalock V3。
我在这里还拥有Raspberry 3B和Raspberry Zero W以及一些编程经验。 与您在控制Danalock方面所做的一样,我还需要什么呢? 我假设Zigbee棒,raspBee或conBee。 还是Qigon / Telekom /诸如此类的任何Zigbee棍子?

你好
我不知道deconz是否支持除raspbee / conbee之外的其他棍子。 但是除此之外,您仅需其他。

关于这件事有什么消息吗?
我最近将我所有的自动化功能都移到了zigbee协议上,我将获得一个智能锁,我真的想坚持使用zigbee。
Danalock是支持Zigbee的最佳锁...
那么...还有没有其他人(具有编程技能... :-))对此进行研究? @manup? @ebaauw?

嗨,我想看看是否有足够的时间。
我昨天得到了danalock,并与家庭助理和Node-Red一起工作。
所以我使用了错误的快速修复程序。 我正在使用https://github.com/ma-ca/deconz-cli-plugin这个插件和来自Node-Red的Telnet节点,并发送“ zclcmd shortaddr 1 0x0101 1”来打开锁,并发送“ zclcmd shortaddr 1 0x0101 0”关闭它。 (其中shortadress是您在DeConz中锁定shortadress,即0xab12)在HomeAssistant中,我使用MQTT锁定组件。 像魅力一样工作……但不是真正的deconz解决方案。

我希望在接下来的几周内修复该代码。

@katanapod嘿,非常感谢您的好主意。 我重建了您的快速修复程序,并且可以正常运行,但是效果不那么可靠...

您是否有更新代码?

是的,katanapod的解决方案效果很好!

对于我的家庭自动化(iobroker),我在javascript中内置了netcast命令。
我的愿望现在成真了!

@katanapod :非常

我现在最大的问题是,如何快速可靠地获取锁的状态。 我目前的代码是:

#!/bin/bash

statusfile="/home/pi/workbench/mqtt-launcher/status.txt"

old_status=`cat $statusfile`

value=$(/bin/echo "zclattr 0x568e 1 0x0101 0x0000" | /bin/nc -w3 localhost 5008 2>&1 | /bin/grep "APS attr 0x000B57FFFE59E04B")

value=$(/bin/echo $value |/usr/bin/cut -d ' ' -f 8)

if [ "$value" == "02" ]; then
        /bin/echo "UNLOCK" > $statusfile
        new_status="UNLOCK"
elif [ "$value" == "01" ]; then
        /bin/echo "LOCK" > $statusfile
        new_status="LOCK"
fi

if [ "$old_status" != "$new_status" ]; then
        /usr/bin/mosquitto_pub -h 192.168.178.55 -t home/danalock/state -m "$new_status"
fi

与cronjob,每分钟运行一次
* * * * * root /home/pi/workbench/mqtt-launcher/check_state.sh

愿有人愿意将锁定函数导入deconz rest api,我很乐意为您提供帮助...

我有一个Nuki Smart Lock 2.0,它将在2019年第一季度的固件更新中支持ZigBee _门锁集群_。

上面的讨论建议将锁定添加到/lights但是我相信@manup对此并不满意。

我实际上尚未开始在rest-api中实现Door Lock ,因此仍然有时间将其更改为/sensors或等待新的/devices资源。

我想在轻巧地使用门锁之前,考虑到越来越多的智能锁与zigbee兼容(Danalock,Yale,Nuki,Aqara等),实施/ locks资源也是合理的。

@manup @ebaauw @katanapod

非常感谢您的支持。

我正在寻找购买此锁的Zigbee版本。 我有deConz / Conbee。 除了将其视为一盏灯的问题之外,它是否可以立即使用还是我需要对Zigbee deConz / Conbee设置进行一些调整? 谢谢。 艾略特

@ pascal1337

使用命令“值= $(/ bin / echo”,我从您的外壳中获取zclattr 0xe05a 1 0x0101 0x0000“ | / bin / nc -w3 192.168.178.13 5008 2>&1 | / bin / grep” APS attr 0x000B57FFFE46F1A1“)” -脚本无结果或脚本似乎没有结束。 如果我在不保存变量的情况下通过Promt进行了全部操作,则会得到grep结果,但结果仍处于nc模式。

不使用grep命令输入就会得到APS结果和LQI(无限循环)。

我究竟做错了什么?
提前致谢!

@manup @ebaauw @katanapod

如果对您的开发有帮助,是否有一种机制可以支持\支持硬件?

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 感谢您的贡献。

这不是一个积极的问题吗? 智能锁非常受欢迎,我在网上几个地方都看到了conbee / Deconz / phoscon支持的智能锁。

它在挪威几乎被抢购一空。 他们甚至为第三方提供完整的zigbee文档。 对于deconz / phoscon和Homebridge-Hue来说,这似乎是一件令人印象深刻的好事。 我会一路测试!

@ pascal1337 @ tomac01 @katanapod Will Phoscon(由于更新的general.xml被合并)能够让Danalock加入我的网络并将其公开(我不希望Phoscon具有任何功能,但这只是最简单的方法)试试Deconz REST CLI插件)。 您是否只是在开始寻找新的照明并单击Danalock针孔一次? 还是您以某种方式从Deconz GUI打开网络,然后单击Danalock针孔? 我无法以任何方式进入网络。

我还想知道这个问题是否仍然存在,智能锁支持(特别是Dana Lock)将对我有很大帮助,对于DeConz来说似乎真的是一个不错的方向。

请添加对此锁的支持。 那将不胜感激。

@manup您能否根据上面提供的屏幕截图和代码考虑现在支持此操作? 我知道REST API v2正在开发中,但这已经被要求很长时间了,这会让很多用户感到高兴。 如果不在Phoscon Web GUI中,请至少在REST API中。

TD003 Zigbee手册V0.0.15.pdf

@manup @ebaauw经过一番苦恼,我没有为您的开发人员提供借用设备,但我得到了他们最新的锁扩展Zigbee 3.0文档,并得到了Danalock的“在2020年第二季度或第三季度进一步支持”的承诺。 我认为在那之前可以与DeCONZ一起使用(就像在Zigbee2MQTT中一样)。 我将热切地进行物理测试!

@ebaauw

我已经用此锁取得了一些进展。 它响应Rest API请求,即完全锁定和解锁,但不报告/更新其状态。 您有什么建议吗?

这是由用于Window Covers的handleWindowCoveringClusterIndication处理的,即我需要为门锁编写类似的东西吗?

您是否将其公开为/sensors资源? 在这种情况下,您需要处理de_web_plugin.cppupdateSensorNode()中的属性值。 lumi.vibration传感器已经使用了DOOR_LOCK_CLUSTER_ID的一个分支(不要问我为什么)。 最好在该传感器的if测试中添加else分支(Danalock似乎很好地遵循了标准)。 否则,您需要处理updateLightNode()的集群属性。 确保将设备类型列入白名单。

您是否设置了从锁的群集到协调器的绑定(请参阅本手册的第5章)?

谢谢!

我把它暴露为一盏灯。 我忘记了绑定。 现在,它可以完美运行了! 由于我有一扇旧门,当我从外面使用钥匙时,内部也会转动,所以锁上也有可靠的状态消息。

为了使这项工作,我有点挣扎:
1)用pascal1337将general.xml替换为先前文章中的更新内容
2)替换修改后的rest api插件链接(如果重要的话,我使用deCONZ v。2.05.67,并在Raspbian上运行Raspberry Pi3b +。我从昨天的deconz-rest-plugin中的最新版本开始进行了修改。)
3)通过将锁设置为配对模式,使锁加入网络
3)对我来说,只有在我按下门锁节点的deCONZ GUI中的“读取节点描述符”后,Phoscon才能识别该锁。

我在deCONZ设置中不使用任何灯,因此我可能无法使用某些功能。

我不确定我是否能够,甚至不能接受,但是在请求请求中这将是很棒的。

@ebaauw我试图阅读该手册(第9章绑定),但我仍然不认为自己理解了。

我遵循了@arnerek的食谱,现在可以通过Deconz REST API可靠地控制锁定,但是状态始终为未锁定。

尝试将其从锁的Door Luck集群拖动到Bind Dropbox中的源,并从配置工具和级别控制端点从协调器拖动到目标,然后单击“绑定但不更改”。

创建绑定后,您需要为要自动更新的属性设置报告。 在GUI中打开_Cluster Info_面板,选择集群,向下滚动并双击属性。 在弹出窗口中输入设置(通常最小:1,最大:300),然后按_Write Config_按钮。

谢谢!! 不幸的是,我在屏幕截图中得到了invalid_data_type。 知道为什么吗?
Skjermbilde 2019-10-13 kl  12 50 04

编辑:不用理会。 我不得不等待并首先读取属性。 完美的作品!

现在唯一的问题是,我停止了DeCONZ(最小)服务,并以相同的用户身份启动了GUI,以执行此操作,而当返回最小服务时,它似乎不成立。 状态不会再次报告。

(除了home.app的无关错误外,似乎在每次打开应用程序时始终将门锁类型显示为“解锁”,导致当当前被锁定时,门锁处于“锁定...”状态。但这就是另一个问题。)

EDIT2: @ebaauw无头的Deconz在这方面是否有局限性? 在GUI中完成的某些事情是否没有被考虑? 当rpi无头,并且偶尔仅停止最小的Deconz服务并通过X转发到Mac时,如何运行GUI而不是无头服务?

在GUI中完成的某些事情是否没有被考虑?

绑定和属性报告存储在ZigBee设备的非易失性存储器中。

无头Deconz在这方面是否有局限性?

不,只有一个带有命令行选项的deCONZ二进制文件可以禁止GUI。 两种服务都启动相同的二进制文件。

我无头运行Raspberry,但仍启用了图形环境,使用VNC服务器和MacOS屏幕共享客户端与GUI进行交互。

我疯了! 从命令行运行GUI时,现在可以准确并立即报告状态。 当我关闭该程序并重新启动deconz.service时,它会被更新,但“ on”状态始终为“ false”。 但是,我仍然可以锁定和解锁。 不好意思,@ ebaauw

编辑:我想我已经缩小了范围。 当我停止极小值并启动GUI时,我总是会弄乱“门锁”并检查簇0101,然后单击“属性”上的“读取”。 这样可以在GUI运行的同时运行了! 当我恢复到最小的deconz.service时,我当然不/无法读取属性,并且它不起作用。 长时间或手动操作锁后都不会。

此外,在读取属性之前,门锁在GUI中呈红色闪烁。

你能告诉我为什么@ebaauw这个日志没有更新状态吗? 我使用@arnerek的插件,但他仍在改进,但我想知道我的DeCONZ是否弄乱了。

在这里,我将其解锁(同时运行最少的deconz.service):

okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:02:708 <-LQI 0x0B04   012 9 3 0x000B57FFFEC4FA38 0xE8A8 1 1 2 02 0F 36
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Endrer tilstand
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her2!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her3!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her4!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her, 1!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Has on!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:05:951 Er her5!
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:06:054 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:06:054 APS Ind 71, 0xFD8A: 0C 00 0D 00 03 F6 2C 02 FF FF 2E 21 00 F6 2C 02 FF FF 2E 21 00 00 00 24 02 00 73 F6 2C 02 FF FF 2E 21 00 6D 64 C3 FE FF 57 0B 00 4F 03 25 02 0F D9 F6 2C 02 FF FF 2E 21 00 04 7A 77 FE FF 9F FD 90 04 0B 25 02 0F 29
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:06:054 <-LQI 0xFD8A   013 0 3 0x00212EFFFF022CF6 0x0000 0 1 2 02 00 73
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:06:519 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:30:06 LillePi deCONZ[22034]: 21:30:06:519 APS Ind 71, 0xFD8A: 0D 00 0D 03 03 F6 2C 02 FF FF 2E 21 00 12 7C 70 FE FF 57 0B 00 E0 3D 25 02 0F 71 F6 2C 02 FF FF 2E 21 00 B7 BB D6 FE FF 57 0B 00 26 46 25 02 0F 3A F6 2C 02 FF FF 2E 21 00 6A 06 C2 FE FF 57 0B 00 48 4C 25 02 0F D6
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:06:519 <-LQI 0xFD8A   013 3 3 0x000B57FFFE707C12 0x3DE0 1 1 2 02 0F 71
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:015 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:015 APS Ind 71, 0xFD8A: 0E 00 0D 06 03 F6 2C 02 FF FF 2E 21 00 86 C4 C7 FE FF 6F 0D 00 18 5E 25 02 0F 81 F6 2C 02 FF FF 2E 21 00 0F ED EE FE FF 57 0B 00 A7 67 25 02 0F 35 F6 2C 02 FF FF 2E 21 00 5B 9B AF FE FF 6F 0D 00 C8 A8 25 02 0F 8A
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:015 <-LQI 0xFD8A   013 6 3 0x000D6FFFFEC7C486 0x5E18 1 1 2 02 0F 81
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:479 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:479 APS Ind 71, 0xFD8A: 10 00 0D 09 03 F6 2C 02 FF FF 2E 21 00 8E 9C 88 FE FF 9F FD 90 D3 BE 25 02 0F 69 F6 2C 02 FF FF 2E 21 00 88 DC C7 FE FF 6F 0D 00 93 CB 25 02 0F 70 F6 2C 02 FF FF 2E 21 00 38 FA C4 FE FF 57 0B 00 A8 E8 25 02 0F FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:479 <-LQI 0xFD8A   013 9 3 0x90FD9FFFFE889C8E 0xBED3 1 1 2 02 0F 69
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:944 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:944 APS Ind 27, 0xFD8A: 13 00 0D 0C 01 F6 2C 02 FF FF 2E 21 00 57 5F F3 FE FF 6F 0D 00 D1 F4 25 02 0F 5B
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:07:944 <-LQI 0xFD8A   013 12 1 0x000D6FFFFEF35F57 0xF4D1 1 1 2 02 0F 5B
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:369 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:369 APS Ind 4, 0xABF9: 19 76 01 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:369 <-ZCL serverToClient 0xABF9 1 for cluster 0x0101 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:416 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:416 APS Ind 4, 0xABF9: 19 76 01 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:416 <-ZCL serverToClient 0xABF9 1 for cluster 0x0101 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:817 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:817 APS Ind 13, 0xABF9: 09 5A 20 01 02 FF FF 00 FF FF FF FF 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:817 <-ZCL serverToClient 0xABF9 1 for cluster 0x0101 01 02 FF FF 00 FF FF FF FF 00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:848 Node data 0x000b57fffe59e55a profileId: 0x0104, clusterId: 0x0101
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:848 Start. UddateLight
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 updateLights!
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 Status dørlås: 0
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 ZCL attribute report 0x000B57FFFE59E55A for cluster 0x0101, ep 0x01
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 APS Ind 7, 0xABF9: 08 5B 0A 00 00 30 02
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 <-ZCL attribute report 0xABF9 0x0101 1 00 00 30 02
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:849 ->ZCL default response seq id 0x5B command id 0x0A, status 0x00
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:09:944 APS-DATA.confirm status 0x00, id = 0x9F, srcEp = 0x01, dstcEp = 0x01, dstAddr = 0xABF9
okt. 14 21:30:13 LillePi deCONZ[22034]: 21:30:11:818 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF

在这里,我再次锁定它(这不会将On-state更改为true):

okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:35:753 <-LQI 0x0000   014 13 1 0x000B57FFFEC4FA38 0xE8A8 1 1 3 01 00 B3
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Endrer tilstand
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her2!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her3!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her4!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her, 1!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Has on!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:37:313 Er her5!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:379 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:379 APS Ind 4, 0xABF9: 19 77 00 00
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:379 <-ZCL serverToClient 0xABF9 1 for cluster 0x0101 00
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:811 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:811 APS Ind 13, 0xABF9: 09 5D 20 01 01 FF FF 00 FF FF FF FF 00
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:811 <-ZCL serverToClient 0xABF9 1 for cluster 0x0101 01 01 FF FF 00 FF FF FF FF 00
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:842 Node data 0x000b57fffe59e55a profileId: 0x0104, clusterId: 0x0101
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:842 Start. UddateLight
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 updateLights!
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 Status dørlås: 0
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 ZCL attribute report 0x000B57FFFE59E55A for cluster 0x0101, ep 0x01
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 profileid 0104, clusterid 0101, srcEndpoint 01, dstEndpoint 01, status 0x00, securityStatus FF
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 APS Ind 7, 0xABF9: 08 5E 0A 00 00 30 01
okt. 14 21:33:38 LillePi deCONZ[22034]: 21:33:38:843 <-ZCL attribute report 0xABF9 0x0101 1 00 00 30 01
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:38:843 ->ZCL default response seq id 0x5E command id 0x0A, status 0x00
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:38:990 APS-DATA.confirm status 0x00, id = 0x09, srcEp = 0x01, dstcEp = 0x01, dstAddr = 0xABF9
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:179 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:179 APS Ind 71, 0x67A7: 69 00 0D 00 03 F6 2C 02 FF FF 2E 21 00 F6 2C 02 FF FF 2E 21 00 00 00 24 02 00 63 F6 2C 02 FF FF 2E 21 00 6D 64 C3 FE FF 57 0B 00 4F 03 25 02 0F 28 F6 2C 02 FF FF 2E 21 00 04 7A 77 FE FF 9F FD 90 04 0B 25 02 0F 82
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:179 <-LQI 0x67A7   013 0 3 0x00212EFFFF022CF6 0x0000 0 1 2 02 00 63
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:660 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:660 APS Ind 71, 0x67A7: 6C 00 0D 03 03 F6 2C 02 FF FF 2E 21 00 12 7C 70 FE FF 57 0B 00 E0 3D 25 02 0F 2E F6 2C 02 FF FF 2E 21 00 B7 BB D6 FE FF 57 0B 00 26 46 25 02 0F 34 F6 2C 02 FF FF 2E 21 00 6A 06 C2 FE FF 57 0B 00 48 4C 25 02 0F 1A
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:39:660 <-LQI 0x67A7   013 3 3 0x000B57FFFE707C12 0x3DE0 1 1 2 02 0F 2E
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:125 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:125 APS Ind 71, 0x67A7: 6F 00 0D 06 03 F6 2C 02 FF FF 2E 21 00 86 C4 C7 FE FF 6F 0D 00 18 5E 25 02 0F 1E F6 2C 02 FF FF 2E 21 00 5B 9B AF FE FF 6F 0D 00 C8 A8 25 02 0F 2C F6 2C 02 FF FF 2E 21 00 8E 9C 88 FE FF 9F FD 90 D3 BE 25 02 0F 3E
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:125 <-LQI 0x67A7   013 6 3 0x000D6FFFFEC7C486 0x5E18 1 1 2 02 0F 1E
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:621 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:621 APS Ind 71, 0x67A7: 72 00 0D 09 03 F6 2C 02 FF FF 2E 21 00 88 DC C7 FE FF 6F 0D 00 93 CB 25 02 0F 41 F6 2C 02 FF FF 2E 21 00 38 FA C4 FE FF 57 0B 00 A8 E8 25 02 0F 36 F6 2C 02 FF FF 2E 21 00 57 5F F3 FE FF 6F 0D 00 D1 F4 25 02 0F 64
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:40:621 <-LQI 0x67A7   013 9 3 0x000D6FFFFEC7DC88 0xCB93 1 1 2 02 0F 41
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:41:086 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:41:086 APS Ind 27, 0x67A7: 74 00 0D 0C 01 F6 2C 02 FF FF 2E 21 00 41 11 8A FE FF 9F FD 90 8A FD 25 02 0F 37
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:41:086 <-LQI 0x67A7   013 12 1 0x90FD9FFFFE8A1141 0xFD8A 1 1 2 02 0F 37
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:464 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:464 APS Ind 71, 0x4626: 7A 00 0D 00 03 F6 2C 02 FF FF 2E 21 00 F6 2C 02 FF FF 2E 21 00 00 00 24 02 00 22 F6 2C 02 FF FF 2E 21 00 6D 64 C3 FE FF 57 0B 00 4F 03 25 02 0F 0E F6 2C 02 FF FF 2E 21 00 04 7A 77 FE FF 9F FD 90 04 0B 25 02 0F 52
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:464 <-LQI 0x4626   013 0 3 0x00212EFFFF022CF6 0x0000 0 1 2 02 00 22
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:944 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:944 APS Ind 71, 0x4626: 7B 00 0D 03 03 F6 2C 02 FF FF 2E 21 00 6A 06 C2 FE FF 57 0B 00 48 4C 25 02 0F 13 F6 2C 02 FF FF 2E 21 00 86 C4 C7 FE FF 6F 0D 00 18 5E 25 02 0F 14 F6 2C 02 FF FF 2E 21 00 0F ED EE FE FF 57 0B 00 A7 67 25 02 0F 30
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:44:944 <-LQI 0x4626   013 3 3 0x000B57FFFEC2066A 0x4C48 1 1 2 02 0F 13
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:425 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:425 APS Ind 71, 0x4626: 7E 00 0D 06 03 F6 2C 02 FF FF 2E 21 00 5B 9B AF FE FF 6F 0D 00 C8 A8 25 02 0F 14 F6 2C 02 FF FF 2E 21 00 88 DC C7 FE FF 6F 0D 00 93 CB 25 02 0F 1C F6 2C 02 FF FF 2E 21 00 57 5F F3 FE FF 6F 0D 00 D1 F4 25 02 0F 80
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:426 <-LQI 0x4626   013 6 3 0x000D6FFFFEAF9B5B 0xA8C8 1 1 2 02 0F 14
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:922 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:922 APS Ind 71, 0x4626: 81 00 0D 09 03 F6 2C 02 FF FF 2E 21 00 41 11 8A FE FF 9F FD 90 8A FD 25 02 0F 37 F6 2C 02 FF FF 2E 21 00 7D CE 93 FE FF 57 0B 00 EE E8 12 00 02 FF F6 2C 02 FF FF 2E 21 00 A0 EF 36 02 00 8D 15 00 44 C5 12 00 02 FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:45:922 <-LQI 0x4626   013 9 3 0x90FD9FFFFE8A1141 0xFD8A 1 1 2 02 0F 37
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:46:370 profileid 0000, clusterid 8031, srcEndpoint 00, dstEndpoint 00, status 0x00, securityStatus FF
okt. 14 21:33:46 LillePi deCONZ[22034]: 21:33:46:370 APS Ind 27, 0x4626: 84 00 0D 0C 01 F6 2C 02 FF FF 2E 21 00 5A E5 59 FE FF 57 0B 00 F9 AB 12 00 02 FF
okt. 14 21:33:47 LillePi homebridge[269]: [2019-10-14 21:33:47] [Hue] lumi.remote.b286acn01 Stue: set homekit status fault from 1 to 0
okt. 14 21:33:53 LillePi node-red[950]: 14 Oct 21:33:53 - [info] [sectoralarm-site:34ecc6dc.1194e2] Received 'check' command
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:46:370 <-LQI 0x4626   013 12 1 0x000B57FFFE59E55A 0xABF9 2 0 1 00 02 FF
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491 Node data 0x00158d00027c069a profileId: 0x0104, clusterId: 0x0000
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491 Start. UddateLight
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491 no button map for: lumi.remote.b286acn01 ep: 0x01 cl: 0x0000 cmd: 0x0A pl[0]: 001
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491 ZCL attribute report 0x00158D00027C069A for cluster 0x0000, ep 0x01
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491 0x00158D00027C069A extract Xiaomi special attribute 0xFF01
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         01 battery 3005 (0x0BBD)
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         03 temperature 33 °C
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         04 unknown 17320 (0x43A8)
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         05 RSSI dB (?) 23 (0x0017)
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         06 LQI (?) 4294967296 (0x0100000000)
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         08 unknown 5129 (0x1409)
okt. 14 21:33:55 LillePi deCONZ[22034]: 21:33:47:491         0a unknown 62673 (0xF4D1)

在最小化deconz.service启动之后,一次(为了安全起见,每天一次)将netcat“ r 0xABF9 1 0x0101 0”(读取门锁的属性1)发送给DeCONZ CLI插件来暂时解决该问题。

@ebaauw我现在锁上的电池寿命很糟。 我预计每天会下降10%至20%,这有点多。 您是否认为我可以在Deconz中“绑定”太多次了? 因此,它过于重复地进行报告了吗? 某处有所有绑定的表吗?

我认为有一个ZDP命令可以读取绑定表。 您可以使用deconz-cli-plugin发送并嗅探响应。 我认为绑定的数量不是减少电池寿命的主要因素。 更可能是轮询控制和/或属性报告配置,导致设备唤醒次数过多。

@ebaauw您当然是正确的,并且ZDP命令显示1绑定。

我确实检查了自动化逻辑,并在zigbee消息传递(轮询)中发现了不必要的循环。

但是,我在Deconz的“群集信息”中设置属性报告(“最大值:300”)后,每隔5分钟左右还会报告一次其状态。 我知道我还不太了解zigbee和Deconz的所有内容,但这不是不必要的,因为它不是被动传感器,并且无论如何更改锁都会报告状态.....?

编辑:我看到有一个轮询控制群集,似乎默认将其设置为14400作为签入间隔...

在新的软件版本中默认情况下是否支持此功能,还是我需要遵循上述所有说明?

我要在Danalock Zigbee或Zwave之间做出选择。

我也有兴趣让它运行。 您可以分享分步指南吗? 我也对deconz完全陌生

为什么这个问题过时/关闭?
该锁由deConz完全检测到:
Screenshot_20200115_160911

但未通过restAPI公开(从未被Phoscon /传感器/添加新传感器/其他检测到)

curl --tcp-nodelay --max-time 59 -H'内容类型:application / json'-X GET http:// hassio :40850 / api / mypass /
“ devicename”:“ ConBee II”,
“ name”:“ Zigbee”,
“ name”:“我的申请”
“名称”:“ Phoscon#B1066x452”
“名称”:“ Phoscon#B1290x655”
“名称”:“ pydeconz”
“ name”:“我的申请”
“ name”:“ Bed Lights”,
“制造商名称”:“飞利浦”,
“ name”:“色温灯1”,
“制造商名称”:“飞利浦”,
“ name”:“色温灯2”,
“制造商名称”:“飞利浦”,
“ name”:“日光”,
“厂商名称”:“ Eurotronic”,
“名称”:“ SPZB0001”,
“厂商名称”:“ Eurotronic”,
“名称”:“ SPZB0001(2)”,

我们需要打开一个新期刊吗?

我已经将@ pascal1337的更改添加到适当的fork中, https://github.com/fr34kyn01535/deconz-rest-plugin/commits/master ,但是无法在其余api中显示该锁。 。

哈罗·史文(Hallo Sven)

我想避免分叉和维护自己的代码。
Dresden Elektronik要求在此处发布新设备,并提供所有信息。
但是这个要求是2岁,德累斯顿电子人在哪里?

我正在调查zigbee2mqtt。 老实说,这个插件的代码很烂,并且硬编码标志的体系结构不会将我们带入更大的设备生态系统。 应该有可能添加新的行为和设备,而无需重写那么多核心行为。

自10月以来,我一直在使用经过修改的rest api插件,并且它一直在正常工作。

我把锁当成灯亮了,但不确定是否可以接受此解决方案。 我不是程序员,对github没有经验。 如果有人感兴趣,我可以共享代码。 官方代码中支持此锁将是很棒的。

@arnerek共享它肯定可以在这里帮助一个或另一个。

我现在在这里发布了代码: https

@arnerek我相信可以接受,这与烟雾探测器等的处理方法相同。您能否向主存储库提出拉取请求?

@arnerek :您阅读了上面的评论吗? 我今天没有看到请求请求,但仍然希望;-)

我将尝试提出请求。 希望在未来的几天

我看到@arnerek将锁公开为/lights资源。 我不确定是否会解决问题,因为在设置目标锁定状态和更改其当前锁定状态的锁定之间通常会有一些延迟。 您可能希望目标状态和当前状态使用不同的属性来反映这一点,请参见。 温控器。 这些资源作为/sensors资源公开,目标处于config状态,(只读)当前状态处于state
当然,窗帘装置也是如此。

看起来此锁不支持_Groups_,因此没有令人信服的理由将其公开为/lights资源。 但是,不知道其他锁。

@ebaauw那有什么替代方法?
不仅可以打开和关闭灯光资源吗? 然后需要制作一些传感器来反映您描述的状态吗?
抱歉,我还不了解Deconz。

如上所述, /sensors资源的目标状态映射到config属性,而当前状态映射到state属性。

你好!

我刚刚购买了Danalock V3 Zigbee锁。 我正在尝试使用arnerek编写的代码,因为将其放入Deconz会很好。 我是github的新手,但是如果我应该能够基于arnereks分支编译该插件的版本,我是否理解正确? 原因就是我要这样做,编译持续了一段时间,但最终以错误告终。

我确实是这样的:
git clone -b Danalock https://github.com/arnerek/deconz-rest-plugin

cd deconz-rest-plugin

qmake && make -j2

这是正确的还是我必须阅读更多有关git如何工作的信息。 :)

/埃里克

我认为这是正确且更简单的方法(您无需在此方法中使用git checkout)
但是您错过了替换文件的命令行

须藤cp ../libde_rest_plugin.so / usr / share / deCONZ / plugins

别忘了

须藤apt install deconz-dev

你怎么了?

现在它实际上起作用了。 我写了make clean ,然后再试一次。
编译完成。 然后执行下一步:

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

是的,我之前做了sudo apt install deconz-dev

然后重新启动服务,并尝试配对Phoscon应用程序中的锁,但恐怕没有运气。

真的不知道该怎么办。 其他人设法使它起作用吗?

@lillaeriika只是检查您是否像我之前的文章中那样替换了general.xml? 这将使锁在deCONZ中可见,并且您应该可以执行锁和解锁命令。

@arnerek嗯,我没有找到任何您谈论general.xml的帖子? 但是要明确一点,我是否应该从您的分支中提取general.xml并将其放在文件夹中: /usr/share/deCONZ/zcl

那就是我所做的。 重新启动。 仍然不起作用。 :(

这篇文章: https :

我认为位置正确。 寻找新的光源,并在Danalock的针孔中使用回形针进行配对。

同样对我不起作用,我列出了您列出的所有内容,但无法正常工作。

您可以尝试让锁从deCONZ加入网络吗? 从deCONZ,您应该可以锁定和解锁。

是的,我可以从群集中进行锁定和解锁,但是在灯光或api中找不到它

您是否尝试过:“对我来说,只有在我按下门锁节点的deCONZ GUI中的“读取节点描述符”后,Phoscon才能识别该锁。”

您也可以尝试在phoscon中寻找新的光时转动锁

我不能在不按此按钮的情况下锁定和解锁它,所以是的,我已经做到了。
尝试通过搜索锁定并解锁它,但仍然没有。

您的网关是什么版本(在Phoscon中找到)?

2.05.69 / 25.2.2020

甚至尝试读取基本群集等上的所有属性。

大家好,

设备:
Raspberry Pi 2 B型
Conbee II(版本2.05.69 / 2/14/2020)

我做了以下事情:

  1. sudo apr获取更新
  2. 须藤apt install deconz-dev
  3. git clone -b Danalock https://github.com/arnerek/deconz-rest-plugin
  4. cd deconz-rest-plugin
  5. qmake && make -j2
  6. sudo mv /usr/share/deCONZ/plugins/libde_rest_plugin.so /usr/share/deCONZ/libde_rest_plugin.so.bak
  7. sudo mv libde_rest_plugin.so /usr/share/deCONZ/plugins/libde_rest_plugin.so
  8. 重新打开deCONZ GUI

我可以从deCONZ GUI操作锁
我可以在带有OOTB插件的HomeAssistant中将其用作灯,但是它不能保存灯的状态。

我该怎么办才能保存状态?
如何在deCONZ中打开灯泡进行开关(例如Aqara Smart Plug)?

谢谢

奇怪的。 Danalock应用程序是否为您提供可靠的门锁状态?

我在家庭助理中使用锁定模板: https :

@arnerek,你知道为什么我的锁没有亮起来吗?

不好意思也许检查libde_rest_plugin.so文件的权限或所有权? 删除Deconz上的锁,然后再次添加?

权限正确。 如何使用GUI删除该项目? 按下del键只会在5秒后“重新连接”它

奇怪的。 Danalock应用程序是否为您提供可靠的门锁状态?

我在家庭助理中使用锁定模板: https :

谢谢。
现在是完美的。

我不知道为什么,但是最初锁定并没有保持状态。 但是现在它可以正常工作了。

在从GUI删除锁并重置并通过Danalock App重新连接后,它现在也能正常工作

我也走得更远。 我以前从未使用过GUI,但是当我设法启动它时,锁实际上在那里。 我从Deconz GUI删除了它,然后通过Webapp将其添加回去。 然后,它同时出现在GUI和Phoscon App中。 所以现在在所有地方都可以。

最后一个问题:我可以在GUI和Webapp中锁定/解锁,但不能锁定Phoscon App吗?

实际上,它似乎在Phoscon App中也可以工作,但有点落后。 我将它带入Openhab,从那里开始似乎工作得很好,所以我感到很高兴。 明天我将做更多测试。 感谢您的所有帮助。 终于睡个好觉!

多谢分享您的想法。 我认为我还将购买DanaLock并对其进行测试。
顺便说一句:您知道Dockerfile是否可用吗? 我在OrangePi Zero Plus上的Docker上运行DECONZ :)

编辑:
在具有DanaLock支持的情况下使其在Docker中运行将是一个很好的选择。

和:
您是否看到HTML表单将新设备添加到Deconz ? 是否有人提交了将其集成到将来版本中的解决方案?

我和上面的人处于同一状态。 锁不会保持状态。 而命令只是有时到达。 我再次将其完全从Deconz中删除。 与phoscon一起添加了它。 立即工作,现在工作完美。 从Deconz控制它,phoscon可以将其添加到Openhab,也可以从Openhab控制它。 很高兴。 谢谢你们。

@ebaauw这里的状态如何,为什么问题已经解决? 开发人员需要更多信息吗?

这是什么状态

对不起,我不知道。 我自己没有任何智能锁,也没有编写任何支持它的代码。 如上所述,与2018年不同,我现在担心将锁公开为/lights资源可能不是一个好主意。 这可能会导致无法解决的问题(例如,需要先在GUI中读取属性,然后才能通过API更改状态)。 最近使用警报器(警报器)的经历使我改变了看法。 将设备(功能)支持为/lights资源的唯一引人注目的论据是该功能支持组的情况(窗帘设备和Heiman(独立)警报器就是这种情况,但警报器的警报声)。

为什么问题已经解决?

为了让过时的机器人开心?

开发人员需要更多信息吗?

我认为这里可能有足够的信息,尤其是由于@bohtho设法对技术手册进行了评分,请参阅https://github.com/dresden-elektronik/deconz-rest-plugin/issues/520#issuecomment -537240173。

如上所述,REST API插件的当前代码库非常复杂,添加对新设备类型的支持涉及大量的开发测试周期。 因此,我不再尝试添加对我没有的设备的支持。 如果我可以得到贷款人,或者有人愿意赞助我自己购买设备,我很乐意为Danalock提供REST API(和Homebridge Hue)支持。 请注意,我无法为Phoscon添加支持,因为它不是开源的。

谢谢@ebaauw。 我现在(使用Conbee 1)切换到Homeassistant的本地ZHA,并取得了巨大的成功。 Danalock开箱即用。

大家好。
在过去的几天中,我试图使Danalock V3与Conbee II(2.05.69版,Raspberry PI 4)和Home Assistant 0.109.6一起使用。 连接过程完成后,我在Phoscon App中看到了我的锁,可以通过deCONZ GUI对其进行管理。 此后,我在Phoscon App中执行身份验证过程以将其与HA连接(HA安装在我的NUC服务器上,并使用我的PI4通过IP在HA中的集成来与Conbee II连接)。 除Danalock的状态外,它均有效。 重新启动我的Danalock后,集成无法正常工作! 我仍然可以通过deCONZ GUI来管理它,exec命令可以完美地锁定/解锁。 请帮忙。

有关Deconz是否将支持此消息的任何消息? 我试图使其工作,但我不了解该线程以及应该执行的操作:)有人可以一步一步做吗?

@ helto4real ,您可以使用我的步骤列表:
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/520#issuecomment -612411637
然后如果需要在Home Assistant中锁定UI元素,请使用arnerek的建议
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/520#issuecomment -612471028

有时我有以下问题:

  • 锁不保持状态。 在这种情况下,我转到deCONZ GUI并手动读取状态
  • 锁的未知状态,在这种情况下,我转到deCONZ GUI并手动更改状态

是否有针对新手的“简单”指南以将Danalock与Conbee2 / Deconz连接起来?

也许对任何人来说都会很有趣,我将Danalock的更改与deconz-rest-plugin-2_05_77_stable合并了。 在以前的版本中,我无法添加Aqara opple。
来源在我的github中。

-通过Mimiix编辑>删除URL,直到进一步清除为止。

也许对任何人来说都会很有趣,我将Danalock的更改与deconz-rest-plugin-2_05_77_stable合并了。 在以前的版本中,我无法添加Aqara opple。
来源在我的github中。

-通过Mimiix编辑>删除URL,直到进一步清除为止。

它工作得很完美:-),但是仍然可以通过api获取电池状态吗? :-)

没有人可以对此回购进行公关,以使其确定吗?

我现在更新了我的rest插件,但是现在已从Phoscon应用程序中删除了锁,我也无法在api中找到它。 对这个问题有什么建议吗? 已经尝试过重置和重新连接。

@manup请将其合并到代码中:-)

我认为我们已经要求他们在3年内以不同的方式和问题将其包括在内。 我转向了zigbee牧民。 立即生效。

我现在更新了我的rest插件,但是现在已从Phoscon应用程序中删除了锁,我也无法在api中找到它。 对这个问题有什么建议吗? 已经尝试过重置和重新连接。

然后,您必须降级插件或手动添加更改以使其再次起作用:-)

@ smulle48它正在15号之前合并。 那是当新版本发布时:)

他经常在前一周合并:)

顺便说一句。 仅仅是我还是您手动转动锁(灯泡)的状态不改变?

我的锁保留了由网络应用启动的最后状态

手动转动锁时,锁的状态会更改。

我们有三个选择吗?

  • 开锁
  • 拉锁闩

我的用例是:

  • 如果没人在家,请锁上门。
  • 如果有人在家附近,请解锁门。
  • 如果要连接到WiFi,请拉动闩锁。

我们有三个选择吗?

  • 开锁
  • 拉锁闩

我的用例是:

  • 如果没人在家,请锁上门。
  • 如果有人在家附近,请解锁门。
  • 如果要连接到WiFi,请拉动闩锁。

由于它被当作灯泡,您可以打开/关闭(锁定/解锁)。

通过自动解锁,您已经进入了Danalock应用程序,其中包括“保持解锁”。

由于它被当作灯泡,您可以打开/关闭(锁定/解锁)。

通过自动解锁,您已经进入了Danalock应用程序,其中包括“保持解锁”。

@ smulle48
这意味着如果您通过zigbee解锁,它将使用应用程序上配置的选项集?
因此,不可能分别进行解锁和保持解锁吗?

由于它被当作灯泡,您可以打开/关闭(锁定/解锁)。

通过自动解锁,您已经进入了Danalock应用程序,其中包括“保持解锁”。

@ smulle48
这意味着如果您通过zigbee解锁,它将使用应用程序上配置的选项集?
因此,不可能分别进行解锁和保持解锁吗?

到目前为止,只能通过zigbee进行锁定和解锁。 您可以从官方Danalock应用程序中完成其余工作

由于它被当作灯泡,您可以打开/关闭(锁定/解锁)。

通过自动解锁,您已经进入了Danalock应用程序,其中包括“保持解锁”。

@ smulle48
这意味着如果您通过zigbee解锁,它将使用应用程序上配置的选项集?
因此,不可能分别进行解锁和保持解锁吗?

到目前为止,只能通过zigbee进行锁定和解锁。 您可以从官方Danalock应用程序中完成其余工作

好的,非常感谢!

.79版本已提供关闭此功能的支持。

此页面是否有帮助?
0 / 5 - 0 等级