Difference between revisions of "Redirect variables"

From HSYCO
Jump to navigation Jump to search
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.
  
Variables can be used in:
+
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 16: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.

Redirect vars 01.png

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"

Redirect vars 02.png

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.