The following attempts to explain how to send temperature information from a CAi WebControl board to a Universal Devices ISY 994i home automation system.
1. Ensure you have these three main ingredients:
a. ISY 994i device (assumed already up and running and connected to your local area network)
b. WebControl board with firmware 3.02.16a or later (assumed to be connected to your local area network and, of course, a power supply and a temperature sensor)
c. A computer with a web browser connected to your local area network (required for setup purposes only, not for ongoing communication between the temperature sensor and ISY device)
2. Add a variable to your ISY device to receive the temperature
a. Open the ISY admin console on your computer
b. Click on the Programs tab (wait for it to digest things) and then click on the Variables tab
c. So you can trigger ISY programs based on the temperature, I recommend you create a State variable, so go ahead and click on the State tab.
d. From the State-tab screen, click on the Add button found at the bottom of the window, change the name of the variable to something like WebControllerTemp, and then click the Save button.
e. The rest of these instructions are going to assume this variable is the first State variable you’ve created on your ISY device (ID of 1). If it isn’t, you’ll have to modify the instructions in step 5.a.ii below so the State variable ID number jives with the ID number found on this State variables screen.
3. Discover your ISY’s Secret Decoder Ring Code string (a base64 encoded string)
a. To talk to your ISY, the WebControl needs to get past your ISY device’s password-protected security. To do this, it wants a hashed version of your login name and password.
b. Go to http://www.cainetwor...4-encoding.html. In the first field, enter your ISY device's admin login name (usually just admin) followed immediately by a colon and your password.
c. Your secret decoder ring code magically appears in the box that follows. As you can see from this screen shot snippet, a login of "admin" and a password of "password" generates a base64 string of YWRtaW46cGFzc3dvcmQ=

d. Remember this string of characters: Write it down or, better yet, leave this browser window open so you can copy the base64 encoded string and paste it into the appropriate WebControl field as explained in step 5.a.iii below.
For the sake of simplicity and clarity, the following assumes you do not have an existing program running on your WebControl. If there is, I assume you created that program and have enough knowledge to adjust the instructions below so they don’t stomp all over your current WebControl program / configuration.
4. Log into your WebControl and verify that your temperature sensor is working
a. Open your web browser and enter the WebControl’s IP address into the address bar.
i. If you’ve never connected to your WebControl board before, its IP address defaults to 192.168.1.15
ii. If you’ve connected your WebControl board before and enabled DHCP, hopefully you remember its new IP address; otherwise you’ll have to do some sleuthing or random guessing until you manage to navigate to the device’s main screen.
b. Activate your temperature sensor (if you haven't already)
i. Click on the Temperature Sensor Setup button
ii. Use the pull-down menu in T1's "ROM Code" column to select the sensor you want to assign to T1. If you only have one sensor connected to the WebControl, you will only have one valid (nonzero) option to choose from. If your only option is 12 zeroes, then your temperature sensor is not properly connected.
iii. Here is what my screen looks like:

c. Check to see if the sensor appears to be working.
i. Click on the System Status button and look at the number in column 1 of the Temperature Sensors row. It should at least look like a reasonable room temperature. Try “fogging” the sensor with your breath and/or blowing on it to see if you can get the temperature to move up and down, clicking the Refresh button now and then to display an updated reading.
d. If you don’t appear to be getting reasonable data or you are failing at step 4.b, double-check the wiring of the sensor to the WebControl board (cutting off its power if you do make any wiring changes, of course).
5. Teach your WebControl how to talk to your ISY device
a. Click on the WebControl menu's Notify Setup button and enter the following into each field for the URL1 row in the Web HTTP GET table at the bottom if this screen:
i. Set IP-addr
ort:Virtual Host to: isyipaddress
(do NOT include an http:// before the IP address)
ii. Set GET URI to: rest/vars/set/2/1/
(the last number is the State variable's ID; if you are using a normal variable, the second to last number should be a 1 instead of a 2)
iii. Set Base64 Authorization String to the Secret Decoder Ring Code from step 3.c
b. For example, if your ISY's IP address is 192.168.1.28 and login username is admin and password is password, your URL1 Notify Setup info should look like this:

c. Click the Send button.
1. Create a WebControl program to send the temperature to your ISY
a. Click on PLC Program and then paste the following text into the big PLC Program box:
START
SET RAM1 0
SETLED 0
LOOP:
SET RAM2 T1
ADD RAM2 5 RAM2
DIV RAM2 10 RAM2
TSTEQ RAM1 RAM2
GOTO LOOP
SETLED 1
SET RAM1 RAM2
WEBSET URL1 RAM1
DELAY 1000
SETLED 0
GOTO LOOP
END
b. Click the Send button and stand back in case you did something wrong because one bad character can cause the WebControl to explode. OK, that last part was a joke. Worst case, it simply won’t work.
c. This code constantly polls the temperature sensor looking for changes. Whenever the temperature changes by 1 degree or more, it sends the new temperature to the ISY device and flashes the WebControl’s green LED.
7. Verify that it’s all working
a. Go back to your ISY’s admin console and navigate back to the Programs->Variables->State screen where you created the MyTemp (or whatever you called it) variable to see if it has changed to something resembling a reasonable temperature.
b. Again, feel free to hyperventilate a bit by “fogging” the sensor with your hot breath and/or blowing on it to see if you can get the temperature to move up and down.
8. If it works, think nice thoughts about me. If it doesn’t, please let us know where you think it’s going wrong.
Please note that your WebControl talks to your ISY device via your local area network (LAN) so both must remain connected to your LAN for this to work.
If anything is going awry, it's probably because there is an error in the Notify Setup data described in section 5.a. It must be entered exactly right and, because everyone's setup is potentially unique, what's right for you won't be right for most other people. Any mistake here will cause the ISY to ignore you.
Please reply with any additions or corrections you might have and I'll do my best to keep this initial post up to date.
Good luck,
-Randy
1. Ensure you have these three main ingredients:
a. ISY 994i device (assumed already up and running and connected to your local area network)
b. WebControl board with firmware 3.02.16a or later (assumed to be connected to your local area network and, of course, a power supply and a temperature sensor)
c. A computer with a web browser connected to your local area network (required for setup purposes only, not for ongoing communication between the temperature sensor and ISY device)
2. Add a variable to your ISY device to receive the temperature
a. Open the ISY admin console on your computer
b. Click on the Programs tab (wait for it to digest things) and then click on the Variables tab
c. So you can trigger ISY programs based on the temperature, I recommend you create a State variable, so go ahead and click on the State tab.
d. From the State-tab screen, click on the Add button found at the bottom of the window, change the name of the variable to something like WebControllerTemp, and then click the Save button.
e. The rest of these instructions are going to assume this variable is the first State variable you’ve created on your ISY device (ID of 1). If it isn’t, you’ll have to modify the instructions in step 5.a.ii below so the State variable ID number jives with the ID number found on this State variables screen.
3. Discover your ISY’s Secret Decoder Ring Code string (a base64 encoded string)
a. To talk to your ISY, the WebControl needs to get past your ISY device’s password-protected security. To do this, it wants a hashed version of your login name and password.
b. Go to http://www.cainetwor...4-encoding.html. In the first field, enter your ISY device's admin login name (usually just admin) followed immediately by a colon and your password.
c. Your secret decoder ring code magically appears in the box that follows. As you can see from this screen shot snippet, a login of "admin" and a password of "password" generates a base64 string of YWRtaW46cGFzc3dvcmQ=

d. Remember this string of characters: Write it down or, better yet, leave this browser window open so you can copy the base64 encoded string and paste it into the appropriate WebControl field as explained in step 5.a.iii below.
For the sake of simplicity and clarity, the following assumes you do not have an existing program running on your WebControl. If there is, I assume you created that program and have enough knowledge to adjust the instructions below so they don’t stomp all over your current WebControl program / configuration.
4. Log into your WebControl and verify that your temperature sensor is working
a. Open your web browser and enter the WebControl’s IP address into the address bar.
i. If you’ve never connected to your WebControl board before, its IP address defaults to 192.168.1.15
ii. If you’ve connected your WebControl board before and enabled DHCP, hopefully you remember its new IP address; otherwise you’ll have to do some sleuthing or random guessing until you manage to navigate to the device’s main screen.
b. Activate your temperature sensor (if you haven't already)
i. Click on the Temperature Sensor Setup button
ii. Use the pull-down menu in T1's "ROM Code" column to select the sensor you want to assign to T1. If you only have one sensor connected to the WebControl, you will only have one valid (nonzero) option to choose from. If your only option is 12 zeroes, then your temperature sensor is not properly connected.
iii. Here is what my screen looks like:

c. Check to see if the sensor appears to be working.
i. Click on the System Status button and look at the number in column 1 of the Temperature Sensors row. It should at least look like a reasonable room temperature. Try “fogging” the sensor with your breath and/or blowing on it to see if you can get the temperature to move up and down, clicking the Refresh button now and then to display an updated reading.
d. If you don’t appear to be getting reasonable data or you are failing at step 4.b, double-check the wiring of the sensor to the WebControl board (cutting off its power if you do make any wiring changes, of course).
5. Teach your WebControl how to talk to your ISY device
a. Click on the WebControl menu's Notify Setup button and enter the following into each field for the URL1 row in the Web HTTP GET table at the bottom if this screen:
i. Set IP-addr
(do NOT include an http:// before the IP address)
ii. Set GET URI to: rest/vars/set/2/1/
(the last number is the State variable's ID; if you are using a normal variable, the second to last number should be a 1 instead of a 2)
iii. Set Base64 Authorization String to the Secret Decoder Ring Code from step 3.c
b. For example, if your ISY's IP address is 192.168.1.28 and login username is admin and password is password, your URL1 Notify Setup info should look like this:

c. Click the Send button.
1. Create a WebControl program to send the temperature to your ISY
a. Click on PLC Program and then paste the following text into the big PLC Program box:
START
SET RAM1 0
SETLED 0
LOOP:
SET RAM2 T1
ADD RAM2 5 RAM2
DIV RAM2 10 RAM2
TSTEQ RAM1 RAM2
GOTO LOOP
SETLED 1
SET RAM1 RAM2
WEBSET URL1 RAM1
DELAY 1000
SETLED 0
GOTO LOOP
END
b. Click the Send button and stand back in case you did something wrong because one bad character can cause the WebControl to explode. OK, that last part was a joke. Worst case, it simply won’t work.
c. This code constantly polls the temperature sensor looking for changes. Whenever the temperature changes by 1 degree or more, it sends the new temperature to the ISY device and flashes the WebControl’s green LED.
7. Verify that it’s all working
a. Go back to your ISY’s admin console and navigate back to the Programs->Variables->State screen where you created the MyTemp (or whatever you called it) variable to see if it has changed to something resembling a reasonable temperature.
b. Again, feel free to hyperventilate a bit by “fogging” the sensor with your hot breath and/or blowing on it to see if you can get the temperature to move up and down.
8. If it works, think nice thoughts about me. If it doesn’t, please let us know where you think it’s going wrong.
Please note that your WebControl talks to your ISY device via your local area network (LAN) so both must remain connected to your LAN for this to work.
If anything is going awry, it's probably because there is an error in the Notify Setup data described in section 5.a. It must be entered exactly right and, because everyone's setup is potentially unique, what's right for you won't be right for most other people. Any mistake here will cause the ISY to ignore you.
Please reply with any additions or corrections you might have and I'll do my best to keep this initial post up to date.
Good luck,
-Randy