如何将参数传递给openhab2转换?

时间:2017-12-09 07:23:55

标签: openhab

我有一个openhab 2.1设置,我正在使用http绑定从我的色调桥接器获取额外的数据,但尚未在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获取原始值,或者我可以进行其他转换(例如映射&#34; true&#34;到&#34; ON&#34;以及1995到19.95 ) - 我不能两者兼顾。

另外,如果我仍然检索所有传感器状态,我也可以从同一个字符串中检索所有值 - 为此,我唯一的选择是为每个SENSOR写一个(例如)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)]" }

......或者我可以吗?任何帮助都将非常感激。

感谢

。室

0 个答案:

没有答案