Difference between revisions of "Redirect variables"
Line 1: | Line 1: | ||
Redirect variables allow [[UI Objects]] to be linked dynamically to a source. | Redirect variables allow [[UI Objects]] to be linked dynamically to a source. | ||
− | + | Redirect variables can be used in: | |
* any object's id | * any object's id | ||
* I/O Server Objects, in server id and address parameters | * I/O Server Objects, in server id and address parameters | ||
Line 14: | Line 14: | ||
== Setting Values == | == Setting Values == | ||
− | Server UISets (from events or java) are used to set a redirect variable value. | + | Server UISets (from events or java) are used to set a redirect variable's value. |
− | Each variable is a property of the "redirect" object. | + | Each redirect variable is a property of the "redirect" object. |
− | For example, a variable called "myaddr" can be set to "70" with a [[Action_Keywords#UISET|UISet]] command on events: | + | For example, a redirect variable called "myaddr" can be set to "70" with a [[Action_Keywords#UISET|UISet]] command on events: |
UISET redirect.myaddr=70 | UISET redirect.myaddr=70 | ||
Line 27: | Line 27: | ||
In a project we place a [[TempMini]] and three [[User]] buttons. | In a project we place a [[TempMini]] and three [[User]] buttons. | ||
− | On the TempMini parameters, we use two variables: mysid and myzone. | + | On the TempMini parameters, we use two redirect variables: mysid and myzone. |
[[File:redirect_vars_01.png]] | [[File:redirect_vars_01.png]] | ||
Line 45: | Line 45: | ||
== Example: Button object == | == Example: Button object == | ||
− | Similarly to the previous example, in a project we place a [[Button]] object with a variable called myaddr. | + | Similarly to the previous example, in a project we place a [[Button]] object with a redirect variable called myaddr. |
We also place two User buttons with name "changeaddr" and param "light.1" and "autom.1" | We also place two User buttons with name "changeaddr" and param "light.1" and "autom.1" | ||
Revision as of 15:46, 27 September 2019
Redirect variables allow UI Objects to be linked dynamically to a source.
Redirect variables can be used in:
- any object's id
- I/O Server Objects, in server id and address parameters
- Button objects, in the address parameter
Syntax
Variables are defined with the following syntax:
[<variable name>]
E.g.
[myaddr]
Setting Values
Server UISets (from events or java) are used to set a redirect variable's value. Each redirect variable is a property of the "redirect" object. For example, a redirect variable called "myaddr" can be set to "70" with a UISet command on events:
UISET redirect.myaddr=70
Example: Weather Object
In this example we will use a single TempMini object to display different sources. In hsyco.ini we have an ioServer with 3 zones.
ioServers = bmne500 ioServersType.bmne500 = MYHOME ioServersOptions.bmne500 = tempzones=1;2;3
In a project we place a TempMini and three User buttons. On the TempMini parameters, we use two redirect variables: mysid and myzone.
Each User button will have "changetemp" as name and "1", "2" or "3" respectively as param.
In events we declare:
function userCommand(session, userid, name, param) : { if (name == "changetemp") { uiSet("redirect", "mysid", "bmne500"); uiSet("redirect", "myzone", param); // address: "temp."+ myzone } }
Clicking on a button in the interface will execute the above callback, which sets the redirect variables' values and changes the source of the TempMini object accordingly.
Example: Button object
Similarly to the previous example, in a project we place a Button object with a redirect variable called myaddr. We also place two User buttons with name "changeaddr" and param "light.1" and "autom.1"
function userCommand(session, userid, name, param) : { if (name == "change") { uiSet("redirect", "myaddr", "dummy."+param); // dummy.light.1 } }
Once again clicking on a User button will cause the Button object to change its source, from a light to an autom.