2

我有一个 openhab 2.1 设置,我正在使用 http 绑定从我的 hue 桥获取额外的数据,这些数据在 hue 绑定中不可用(还)。我最感兴趣的是内置在运动传感器中的光和温度传感器,但我也希望能够对按钮按下做出反应(而且,因为这是交互式的,所以延迟尽可能少)。

所以我选择使用 http 绑定来轮询网桥。

我有:

hue.url=http://192.168.61.21/api/[KEY]/sensors/
hue.updateInterval=500

我正在使用 JS 或 JSONPATH 转换来提取值。

我遇到的问题是:

我可以轻松做到:

Number hue_dimmer_buttons_study_1 "Study Dimmer (last button)" { http="<[hue:500:JSONPATH($.16.state.buttonevent)]" }
Number hue_dimmer_scene_study_1 "Study Dimmer (current scene)" { http="<[hue:500:JSONPATH($.17.state.status)]" }

并从整个列表中获取值。但我只能进行这样的转换并从 JSON 中获取原始值,或者我可以进行其他转换(例如将“true”映射到“ON”以及 1995 到 19.95)——我不能同时做这两个。

此外,如果我无论如何都要检索所有传感器状态,我不妨从同一个字符串中检索所有值 - 为此,我唯一的选择是为每个传感器编写一个(例如)getHueTemperature.js,即:

getHueTemperature14.js:

(function(i) {
    return JSON.parse(input).14.state.temperature / 100;
})(input)

然后做:

[...] { http="<[hue:500:JS(getHueTemperature14.js)]" }

我无法传入要从中提取的元素,然后对所有传感器使用一种转换,例如:

getHueTemperature.js:

(function(i) {
    return JSON.parse(input)[element].state.temperature / 100;
})(input, element)

接着:

[...] { http="<[hue:500:JS(getHueTemperature.js,14)]" }

...或者我可以吗?任何帮助将不胜感激。

谢谢

。R M

4

0 回答 0