{
"error": null,
"id": "_ID_",
"result": {
}
}
use item name by an item identifier (item with the id should exist).
{
"id":"_ID_",
"method":"hub.scenes.expressions.set",
"params":{
"name": "HalfOfSoundLevel",
"code": "return params.sound_level / 2",
"params": {
"items": [
{ "name": "sound_level", "_id": "sirenSoundLevelItemIdentifier"}
]
}
}
}
use device and item names to address the item (device with name and an item with name should exist).
{
"id":"_ID_",
"method":"hub.scenes.expressions.set",
"params":{
"name": "HowLoudQuad",
"code": "return params.how_loud * 4",
"params": {
"device_item_names": [
{ "name": "how_loud", "deviceName": "siren", "itemName": "sound_level" }
]
}
}
}
use an expression with a scalable item.
If the item addressed by a scene’s “when block” has a scale (has scalable value), then an expression to use with or methods should return value in format to be compatible with an item.
{
"id":"_ID_",
"method":"hub.scenes.expressions.set",
"params":{
"name": "Temperature10F",
"code": "return { value = 10, scale = \"fahrenheit\" }",
"params": {}
}
}
The expression will return constant JSON object with fields value = 10 and scale = “fahrenheit”. In the case of incompatible values, a scene event that uses an expression will never raise.
use a typed expression with a scalable item.
"id":"_ID_",
"jsonrpc":"2.0",
"method":"hub.scenes.expressions.set",
"params":{
"name": "kitchenHallTempAverage",
"params": {
"items": [
{
"name": "kitchenTemperatureSetpoint",
"_id": "5fecdf73222aaa175f6d6be4"
},
{
"name": "hallTemperatureSetpoint",
"_id": "60c7696b933ffb710a8be319"
}
]
},
"code": "return { value = (params.kitchenTemperatureSetpoint.value + params.hallTemperatureSetpoint) / 2, scale = params.hallTemperatureSetpoint.scale }",
"valueType": "temperature",
"metadata": {},
"variable": false
}
}
use a typed expression as a variable.
{
"id":"_ID_",
"jsonrpc":"2.0",
"method":"hub.scenes.expressions.set",
"params":{
"name": "maxValueOfSomeParam",
"params": {},
"code": "return 2526",
"valueType": "int",
"metadata": { "info": "maximum value of parameter" },
"variable": true
}
}
Typed variable expression.
{
"id":"_ID_",
"jsonrpc":"2.0",
"method":"hub.scenes.expressions.set",
"params":{
"name": "variableExpression",
"params": {},
"code": "",
"value": 123,
"valueType": "int",
"metadata": { "info": "maximum value of parameter" },
"variable": true
}
}