Edit
				
					{
    "error": null,
    "id": "_ID_",
    "result": {
    }
}				
			
Edit

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"}
        ]
      }
    }
}				
			
Edit

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" }
       ]
     }
   }
}				
			
Edit

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.

Edit

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
    }
}				
			
Edit

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
    }
}				
			
Edit

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
    }
}