问题标签 [homekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1102 浏览

javascript - 在 node.js SyntaxError 中运行 python 脚本

尝试运行 python 脚本会抛出 child_process。收到一个 SyntaxError .. 简而言之,我试图为 homekit 创建一个“附件”,当值为 true 时执行 Python 脚本,并为 false 值运行单独的 python 脚本。对 JavaScript 菜鸟的建议?

……

语法错误

...........

代码

0 投票
2 回答
372 浏览

javascript - 很难理解 Javascript 中的“可能等于”

该项目使用 Apple 的 homekit 和树莓派上的 node.js 服务器(https://github.com/KhaosT/HAP-NodeJS)打开/关闭电器等。因此 Light_accessory.js,当 vaule 为 true(1) 时,使用 childprocces 和接线 pi 打开灯(继电器)。当值为false(0)时,它还需要关闭灯(gpio write 7 1)。Iv 尝试向其添加“可能等于”,因此它也会关闭灯(继电器)。尝试添加两个值导致我和一夜的谷歌搜索和语法错误。我在这个项目上花费的时间比我想承认的要多。很简单,目标与我不久前做的一个项目非常相似php。

..................................................... ..................................................... ..................................................... …………

这是当值为 true(1) 时 gpio 设置为低(gpio write 7 0)的地方。

你怎么加

当javascript中的值为0时?这样灯(继电器)也会关闭。

..................................................... ..................................................... ..................................................... …………

Light_accessory.js 的粗略概述;顶部主要是产品描述,而不是实际功能。“onUpdate:”下的“cType: types.POWER_STATE_CTYPE”是魔法发生的地方。

..................................................... ..................................................... ..................................................... …………

完整的 Light_accessory 脚本

0 投票
1 回答
115 浏览

javascript - 令人沮丧的语法错误

该项目使用 Apple 的 homekit 和树莓派 ( https://github.com/KhaosT/HAP-NodeJS )上的 node.js 服务器打开/关闭设备等。因此 Light_accessory.js,当 vaule 为 true(1) 时,使用子进程和接线 pi 打开灯(继电器)。当值为false(0)时,它还需要关闭灯(gpio write 7 1)。我曾尝试向其中添加 IF 语句(接近尾声),但我不断从 if 语句中收到语法错误。不知道为什么。//沮丧的。

0 投票
1 回答
898 浏览

ios - 为什么添加到 Home(HMHome) 的 Scene(Action-Set) 总是具有更新的 Characteristic(HMCharacteristic) 值:HomeKit

我正在开发一个基于 HomeKit API 的演示 iOS 应用程序。

我已经为特定家庭(H1)创建了场景(动作集)AS1,并带有一些服务(S1 S2 ...),以便一次执行多个动作。我可以毫无问题地创建多个场景,但我在更新任何创建的场景时遇到问题

我的申请流程

  • 显示添加的主页(ListView)
  • 单击任何主页,出现详细屏幕,但选项很少(附件 A1 ,房间 A2 ,场景 A3 ......)
  • 点击 A1 添加配件(可以从这里更改添加配件的服务特性)
  • A3 有一个添加场景(Action-Set)的列表以及一个将新场景(Action-Set)添加到当前主页的按钮
  • 用户可以单击任何添加的场景(动作集)来更新其动作并命名两者

问题:一旦我从附件 A1 选项更改了服务的特性,添加到场景动作的特性就会更新为相同的值。

我的假设:我认为每个创建的场景(动作集)分别维护自己的特征值,如果用户从附件 A1(从其他地方)修改任何服务的特征,那么它不应该影响添加到已保存场景的动作的值(前提条件 - 用户在创建场景的操作中选择了该附件)

我将动作集(场景)更新为的方法,

  • 一旦用户单击任何添加的 Action-Set 服务列表,用户可以单击任何服务以更新其特性
  • 访问当前 Action-Set 的 Action
  • 每个动作的访问特征(HMCharacteristicWriteAction) 访问特征的服务
  • 创建 CustomServices 实例(以跟踪一些其他信息,例如用户将该服务包含到当前操作集中等)并将其添加到数据源并避免重复
  • 一旦用户完成值更改并单击更新操作按钮
  • 启动更新过程

更新场景(动作集)

1.检查用户是否更改了Action-set的名称,

  • 然后首先更新动作集的名称,一旦成功块执行,删除所有过去添加的动作(如果存在)。
  • 向更新的场景添加新动作。

2.如果场景(动作集)名称与旧名称相同,

  • 如果存在,则删除所有以前的操作。
  • 向更新的场景添加新动作。

这是用于填充服务列表视图的代码片段(准备数据源)

我已经多次阅读 HomeKit 文档,但没有发现与此问题相关的任何内容。

据我了解动作集的概念,它应该单独维护特征值,以便我们以后可以更改它的动作值。

自最近几天以来我一直面临这个问题(因为几天前在这里发布了同样的问题)现在我确定这是苹果主页 API 中的一个错误,因为一旦我尝试重新执行相同的操作集(前置条件:用户从A1选项中更改服务特征的值。它执行成功并更新所有与创建的场景(ActionSet)具有相同特征的附件。

请任何发现更新场景(ActionSet)类似问题的人帮助我。如果我的方法是错误的,请随时指出我。

0 投票
2 回答
896 浏览

ios - HomeKit HMHome 和 HMRoom 标识符/额外的元数据

在我的应用程序中,我使用的是 HomeKit。您可以添加/删除 HMHome 和 HMRoom 对象,但我还想向它们添加一些元数据。例如,在我的应用程序中,我希望能够向 HMRoom 添加一个图标并向其添加一个项目数组。

我的解决方案是我将它与 CoreData 结合使用并存储有关 HMRoom 的额外信息,但是除了它们的名称之外,没有办法识别 HMHome 和 HMRoom 对象。如果我的应用程序是世界上唯一一个编辑 HomeKit 对象的应用程序,这将不是问题,但当然可能还有其他应用程序,也可以调整 HMHome 和 HMRoom 对象(删除它们,重命名它们)。

因此,当用户执行以下操作之一时,我真的会遇到问题:

  1. 开始我的申请
  2. 添加一个 HMHome 和 HM Room 对象
  3. 通过我的应用程序向 HMRoom 对象添加一些元数据,该应用程序存储在我的 CoreData 数据库中
  4. 退出我的申请
  5. 启动另一个应用程序并重命名他们刚刚创建的 HMRoom
  6. 再次启动我的应用程序

因为 HMHome 和 HMRoom 对象没有已知标识符,所以我再也找不到存储在 CoreData 中的元数据,而且元数据实际上已经丢失,因为我无法再将名称与创建的 HMRoom 与我的 CoreData 数据库中的数据匹配。

所以,我的问题是:除了名字之外,有没有办法“识别”HMRoom 和 HMHome 对象?

0 投票
1 回答
360 浏览

ios - Homekit 配件模拟器详细信息

我对 homekit 模拟器有疑问,例如提到的一些键和参数不理解。那么我在哪里可以找到所有这些?

garage door和的一些概念characteristics没有被理解。前任。当前的门状态是什么?当前的锁定状态是什么?

0 投票
1 回答
724 浏览

ios - HMAccessoryDe​​legate 方法未调用

我想获得特定配件的可更新特性的价​​值。

所以我正在使用func accessory(accessory: HMAccessory!, service: HMService!, didUpdateValueForCharacteristic characteristic: HMCharacteristic!)方法。

但是这个方法没有被调用。正在调用来自同一委托的另一个方法。应该是什么问题?

0 投票
3 回答
344 浏览

ios - How Apple TV is used to control Homekit Accesory

I have created an application for Homekit which works fine when both accessory and device is in same network.

I read somewhere that Apple TV is required to control accessories remotely.

Can anybody please tell how to achieve this exactly?

0 投票
1 回答
372 浏览

ios - iOS 中如何知道 Siri 对 HomeKitit 的命令?

我是 HomeKit 的新手,我得到了一个可以与 iPhone 配合使用的演示板。

当我打开演示板时,我可以Setting -> WiFi. 我单击附件并将附件添加到 WiFi 网络。配件iPhone在同一个 WiFi 网络中。

我打开 Siri 并说“Turn On the Light”,演示板上的 LED 将亮起。

但它应该有其他命令来控制灯光以向上或向下调整亮度。

我如何知道 iOS 中关于 HomeKit 的 Siri 的所有命令?

提前致谢。

0 投票
1 回答
955 浏览

ios8 - 两个用户在两个不同的 iPhone 上安装了相同的 HomeKit 控制器应用程序

两个用户在两个不同的 iPhone 上安装了相同的 HomeKit 控制器应用程序。

用户 1使用应用程序添加家庭、房间、区域和附件,他现在可以使用应用程序界面控制附件。

用户 2在同一个环境中(或者在拥有用户 1 的所有配件的物理 Home 中),但是他如何使用同一个应用程序控制这些配件,他将如何能够看到由用户 1 添加的所有房间、区域和配件用户 1?

HomeKit 是如何管理这个多用户访问同一个附件场景的,还是我们需要在代码中自己处理这个场景?

此外,它如何使用 Home 来维护用户的身份,即这个特定的 Home 属于这个 XYZ 用户?由于所有 HomeKit 用户数据都与 iClod 同步,因此 Home 实体应该有一些身份映射。