糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 开源homekit adk 测试

开源homekit adk 测试

时间:2022-09-07 22:49:16

相关推荐

开源homekit  adk 测试

开源homekit adk 测试

摘要:本文尝试体验苹果新鲜开源的homekit adk,实现在ubuntu成功编译运行后在iPhone实现设备的添加、控制,以及siri的语音控制。

由amazon、apple、google、zigbee alliance牵头的project connected home over ip项目成立了,旨在统一智能硬件在应用层的通信协议,多年智能家居从业,从早期私有协议,再到各家所谓的data models、tls(things language specification)、物模型、miot-spec,甚是知道在上层应用的通信语言的不统一,带来的设备模型重影映射是多么繁琐。

mazon’s Alexa Smart HomeApple’s HomeKitGoogle’s WeaveZigbee Alliance’s Dotdot data models

巧的是第二天zigbee 联盟就来公司就行了宣讲。很多人会觉得很别扭,上层的应用通信语言的统一为什么会有zigbee联盟的加入,熟悉zigbee协议的应该知道,发展了10多年的zigbee在zigbee3.0后才逐渐进入人们视野。很大程度上是得益于zigbee3.0设备的zcl revision7,基于硬件属性统一了硬件之间的通信语言,打通不同硬件厂商的设备的通信。而zcl则是zigbee 联盟的物联网统一语言规范dotdot的over zigbee应用,显然地,zigbee 并不满足于此,这一次四位大佬的相聚相信会取其大家特长,打通设备之间的网关、iot平台、应用之间的标准通信语言。

利好的是由于google的加入,该项目组的从规范、到源码都会开源。很多人会由此质疑苹果的决心,于是就有了苹果的homekit hdk开源。

本文尝试体验苹果新鲜开源的homekit adk,实现在ubuntu成功编译运行后在iPhone实现设备的添加、控制,以及siri的语音控制。

context

这里直接在ubuntu18.04 上面编译测试。看起来苹果官方主要在树莓派或mac上面测试,所以ubuntu上面无可避免会趟坑。

$uname -aLinux thinkpad-550 5.0.0-37-generic #40~18.04.1-Ubuntu SMP Thu Nov 14 12:06:39 UTC x86_64 x86_64 x86_64 GNU/Linux

dependency

成功编译homekit adk之前,需要安装如下依赖。

$sudo apt-get install clang libavahi-compat-libdnssd-dev libsqlite3-dev libfaac-dev libasound-dev libopus-dev libavahi-compat-libdnssd-dev

compile

安装依赖之后从apple开源github clone 源码,着手编译。

$git clone /apple/HomeKitADK.git$cd HomeKitADK$make TARGET=Linux apps

完成编译后会在./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/编译生成Lightbulb.OpenSSLLock.OpenSSL可执行文件。

$tree ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/├── Lightbulb│ ├── App.o│ ├── DB.o│ └── Main.o├── Lightbulb.a├── Lightbulb.OpenSSL├── Lock│ ├── App.o│ ├── DB.o│ └── Main.o├── Lock.a└── Lock.OpenSSL

运行Lightbulb.OpenSSl,此时尝试从iPhoneHome尝试添加设备在输入setup code 后[报错](No setup code found in key-value store.),仔细阅读了源码还需要增加setup keystore,这部分通过Tools\provision_raspi.sh生成。

尝试在sdk 根目录执行

$rm -r ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/.HomeKitStore$./Tools/provision_raspi.sh --category 5 --setup-code 111-22-333 ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/.HomeKitStore

提示:如上111-22-333 即为iPhone Home/家 添加设备过程中需要的setup code。

test

在ubuntu上执行./Lightbulb.OpenSSL

$cd ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/$./Lightbulb.OpenSSL

在iPhone上运行Home/家->+(右上角)->Add or Scan Accessory->I Don’t Have a Code or Cannot Scan->选择Acme Light Bulb->Uncertified Accessory/Add Anyway->输入如上生成的8位setup code111-22-333完成设备添加。

成功添加设备后便可以在首页点击控制,或者通过siri语音控制。如下是打开/关闭灯泡 ubuntu打印的日志。

-12-22'T'06:01:23'Z'InfoHandleLightBulbOnWrite: false-12-22'T'06:01:23'Z'InfoHandleLightBulbOnWrite: true

troubleshootings

clang: Command not found

提示报错:

make[1]: clang: Command not found

sudo apt-get install clang

fatal error: ‘dns_sd.h’ file not found

完整报错信息如下:

PAL/Linux/HAPPlatformServiceDiscovery+Init.h:14:10: fatal error: 'dns_sd.h' file not found

安装依赖包。

sudo apt-get install libavahi-compat-libdnssd-dev

ldd error

链接报错:

/usr/bin/ld: cannot find -lsqlite3/usr/bin/ld: cannot find -lasound/usr/bin/ld: cannot find -lsqlite3/usr/bin/ld: cannot find -lasound/usr/bin/ld: cannot find -lopus/usr/bin/ld: cannot find -lfaac/usr/bin/ld: cannot find -lopus/usr/bin/ld: cannot find -lfaac

安装如下依赖

sudo apt-get install libsqlite3-dev libfaac-dev libasound-dev libopus-dev libavahi-compat-libdnssd-dev

No setup code found in key-value store.

运行

-12-22'T'04:08:57'Z'Error[com.apple.mfi.HomeKit.Platform:AccessorySetup] No setup code found in key-value store.-12-22'T'04:08:57'Z'Faultfatal error - HAPPlatformAccessorySetupLoadSetupInfo @ PAL/Linux/HAPPlatformAccessorySetup.c:50

需要提前生成设备安装秘钥存储文件。

$rm -r ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/.HomeKitStore$./Tools/provision_raspi.sh --category 5 --setup-code 111-22-333 ./Output/Linux-x86_64-pc-linux-gnu/Debug/IP/Applications/.HomeKitStore

如果觉得《开源homekit adk 测试》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。