Difference between revisions of "Redirect variables"

From HSYCO
Jump to navigation Jump to search
Line 2: Line 2:
  
 
Variables can be used in:
 
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
- [[Button]] objects, in the address parameter
+
* [[Button]] objects, in the address parameter
  
  

Revision as of 16:37, 26 September 2019

Redirect variables allow UI Objects to be linked dynamically to a source.

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 value. Each variable is a property of the "redirect" object. For example, a 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 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 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.