Jump to content

Joe

Members
  • Posts

    39
  • Joined

  • Last visited

About Joe

  • Birthday December 10

Profile Information

  • Location
    Desert Southwest United States
  • Occupation
    Engineer

Recent Profile Visitors

546 profile views

Joe's Achievements

Newbie

Newbie (1/6)

9

Reputation

  1. I stopped pursuing this project almost coincident with my post above. I'm afraid I haven't anything further to offer. As I recall, once I had the HW and briefly played around with it, I quickly realized that getting something setup and working was going to be a much larger time investment than I desired and it wasn't even clear that a practical solution could be implemented with current HW regardless of the amount of time invested. I chose to pursue other interests and left this one unsolved. My Global Cache is still plugged into the serial port of my Nuvo whole house amplifier but it isn't being used. If you come up with a solution, I'd be interested in hearing about it.
  2. I seem to have taken this thread off topic... Sorry. I have requested that a new sub-section under Third Party Products be started for Wireless Sensor Tags. Refer to this post for the details: http://forum.universal-devices.com/topic/21449-new-section-in-third-party-products/. Regarding mailbox monitoring... I have successfully deployed a wireless ELK-6020 reed switch on (inside) my all-metal mailbox. Of course use of this sensor requires that you have the Elk M1 Gold security panel (or the EZ8) and the ELK-M1XRFTW two-way wireless transceiver. Assuming you have these components it works great. I get an announcement every time my mailbox is opened and if it is opened at night my front yard security lights automatically turn on.
  3. Oh yeah... if it matters I am running firmware 4.5.4 on my ISY - see screen cap below for other details.
  4. Yes, I will. It is a bit long as I have plans to deploy 10 Motion Sensor Tag Pro ALS sensors. I plan to name them ALS01, ALS02, ALS03, ... ALS10. So far I have only activated two of them - ALS01 and ALS02. Interestignly ALS02 is not updating the ISY variables... And as previously reported the ALS01 is not updating battery voltage. Interestingly both (ALS01 and ALS02) are updating the logs correctly for all (I think) parameters. Here is my code (I'll also include a screen cap of a subset of the state variables I have defined in the ISY994): var tags = <#tags_[26]_N#>; var isy_ip=<%ISY IP Address%>; var isy_user = <%ISY username%>; var isy_password=<%ISY password%>; var isy_RESTcall = "http://"+isy_user+":"+isy_password+"@"+isy_ip+"/rest/vars/set/2/" tags.forEach( function (tag) { tag.updated = function () { var cur_name = tag.name var valid_device = true switch(cur_name) { case "ALS01": var isy_variable_eventState = 21 var isy_variable_isDetected = 22 var isy_variable_isTimedout = 23 var isy_variable_outOfRange = 24 var isy_variable_tempState = 25 var isy_variable_moistureState = 26 var isy_variable_lightState = 27 var isy_variable_temperature = 28 var isy_variable_moisture = 29 var isy_variable_lux = 30 var isy_variable_lit = 31 var isy_variable_batteryVolt = 32 break; case "ALS02": var isy_variable_eventState = 41 var isy_variable_isDetected = 42 var isy_variable_isTimedout = 43 var isy_variable_outOfRange = 44 var isy_variable_tempState = 45 var isy_variable_moistureState = 46 var isy_variable_lightState = 47 var isy_variable_temperature = 48 var isy_variable_moisture = 49 var isy_variable_lux = 50 var isy_variable_lit = 51 var isy_variable_batteryVolt = 52 case "ALS03": var isy_variable_eventState = 61 var isy_variable_isDetected = 62 var isy_variable_isTimedout = 63 var isy_variable_outOfRange = 64 var isy_variable_tempState = 65 var isy_variable_moistureState = 66 var isy_variable_lightState = 67 var isy_variable_temperature = 68 var isy_variable_moisture = 69 var isy_variable_lux = 70 var isy_variable_lit = 71 var isy_variable_batteryVolt = 72 case "ALS04": var isy_variable_eventState = 81 var isy_variable_isDetected = 82 var isy_variable_isTimedout = 83 var isy_variable_outOfRange = 84 var isy_variable_tempState = 85 var isy_variable_moistureState = 86 var isy_variable_lightState = 87 var isy_variable_temperature = 88 var isy_variable_moisture = 89 var isy_variable_lux = 90 var isy_variable_lit = 91 var isy_variable_batteryVolt = 92 case "ALS05": var isy_variable_eventState = 101 var isy_variable_isDetected = 102 var isy_variable_isTimedout = 103 var isy_variable_outOfRange = 104 var isy_variable_tempState = 105 var isy_variable_moistureState = 106 var isy_variable_lightState = 107 var isy_variable_temperature = 108 var isy_variable_moisture = 109 var isy_variable_lux = 110 var isy_variable_lit = 111 var isy_variable_batteryVolt = 112 case "ALS06": var isy_variable_eventState = 121 var isy_variable_isDetected = 122 var isy_variable_isTimedout = 123 var isy_variable_outOfRange = 124 var isy_variable_tempState = 125 var isy_variable_moistureState = 126 var isy_variable_lightState = 127 var isy_variable_temperature = 128 var isy_variable_moisture = 129 var isy_variable_lux = 130 var isy_variable_lit = 131 var isy_variable_batteryVolt = 132 break; case "ALS07": var isy_variable_eventState = 141 var isy_variable_isDetected = 142 var isy_variable_isTimedout = 143 var isy_variable_outOfRange = 144 var isy_variable_tempState = 145 var isy_variable_moistureState = 146 var isy_variable_lightState = 147 var isy_variable_temperature = 148 var isy_variable_moisture = 149 var isy_variable_lux = 150 var isy_variable_lit = 151 var isy_variable_batteryVolt = 152 case "ALS08": var isy_variable_eventState = 161 var isy_variable_isDetected = 162 var isy_variable_isTimedout = 163 var isy_variable_outOfRange = 164 var isy_variable_tempState = 165 var isy_variable_moistureState = 166 var isy_variable_lightState = 167 var isy_variable_temperature = 168 var isy_variable_moisture = 169 var isy_variable_lux = 170 var isy_variable_lit = 171 var isy_variable_batteryVolt = 172 case "ALS09": var isy_variable_eventState = 181 var isy_variable_isDetected = 182 var isy_variable_isTimedout = 183 var isy_variable_outOfRange = 184 var isy_variable_tempState = 185 var isy_variable_moistureState = 186 var isy_variable_lightState = 187 var isy_variable_temperature = 188 var isy_variable_moisture = 189 var isy_variable_lux = 190 var isy_variable_lit = 191 var isy_variable_batteryVolt = 192 case "ALS10": var isy_variable_eventState = 201 var isy_variable_isDetected = 202 var isy_variable_isTimedout = 203 var isy_variable_outOfRange = 204 var isy_variable_tempState = 205 var isy_variable_moistureState = 206 var isy_variable_lightState = 207 var isy_variable_temperature = 208 var isy_variable_moisture = 209 var isy_variable_lux = 210 var isy_variable_lit = 211 var isy_variable_batteryVolt = 212 default: var valid_device = false } if(valid_device==true){ var tag_eventState = tag.eventState; KumoApp.Log("eventState "+cur_name+" ("+isy_variable_eventState+") updated to "+tag_eventState); KumoApp.httpCall(isy_RESTcall+isy_variable_eventState+"/"+tag_eventState, "Get"); var tag_isDetected = tag.isDetected; KumoApp.Log("isDetected "+cur_name+" ("+isy_variable_isDetected+") updated to "+tag_isDetected); KumoApp.httpCall(isy_RESTcall+isy_variable_isDetected+"/"+tag_isDetected, "Get"); var tag_isTimedout = tag.isTimedout; KumoApp.Log("isTimedout "+cur_name+" ("+isy_variable_isTimedout+") updated to "+tag_isTimedout); KumoApp.httpCall(isy_RESTcall+isy_variable_isTimedout+"/"+tag_isTimedout, "Get"); var tag_outOfRange = tag.outOfRange; KumoApp.Log("outOfRange "+cur_name+" ("+isy_variable_outOfRange+") updated to "+tag_outOfRange); KumoApp.httpCall(isy_RESTcall+isy_variable_outOfRange+"/"+tag_outOfRange, "Get"); var tag_tempState = tag.tempState; KumoApp.Log("tempState "+cur_name+" ("+isy_variable_tempState+") updated to "+tag_tempState); KumoApp.httpCall(isy_RESTcall+isy_variable_tempState+"/"+tag_tempState, "Get"); var tag_moistureState = tag.moistureState; KumoApp.Log("moistureState "+cur_name+" ("+isy_variable_moistureState+") updated to "+tag_moistureState); KumoApp.httpCall(isy_RESTcall+isy_variable_moistureState+"/"+tag_moistureState, "Get"); var tag_lightState = tag.lightState; KumoApp.Log("lightState "+cur_name+" ("+isy_variable_lightState+") updated to "+tag_lightState); KumoApp.httpCall(isy_RESTcall+isy_variable_lightState+"/"+tag_lightState, "Get"); var tag_temperature = Math.round((tag.temperature * 9/5 +32) * 10)/10; KumoApp.Log("temperature "+cur_name+" ("+isy_variable_temperature+") updated to "+tag_temperature); KumoApp.httpCall(isy_RESTcall+isy_variable_temperature+"/"+tag_temperature, "Get"); var tag_moisture = Math.round(tag.moisture); KumoApp.Log("Humidity for "+cur_name+" ("+isy_variable_moisture+") updated to "+tag_moisture); KumoApp.httpCall(isy_RESTcall+isy_variable_moisture+"/"+tag_moisture, "GET"); var tag_lux = Math.round(tag.lux); KumoApp.Log("Humidity for "+cur_name+" ("+isy_variable_lux+") updated to "+tag_lux); KumoApp.httpCall(isy_RESTcall+isy_variable_lux+"/"+tag_lux, "GET"); var tag_lit = Math.round(tag.lit); KumoApp.Log("Humidity for "+cur_name+" ("+isy_variable_lit+") updated to "+tag_lit); KumoApp.httpCall(isy_RESTcall+isy_variable_lit+"/"+tag_lit, "GET"); var tag_battVolt = Math.round(tag.batteryVolt * 1000)/1000; KumoApp.Log("BatteryV for "+cur_name+" ("+isy_variable_batteryVolt+") updated to "+tag_battVolt); KumoApp.httpCall(isy_RESTcall+isy_variable_batteryVolt+"/"+tag_battVolt, "GET"); } else { KumoApp.Log("Data from non-configured device: "+cur_name); } }; } );
  5. Okay everything seems to be working for the most part. I have rewickered the kumoapp code to read 12 parameters from my Motion Sensor Tag Pro ALS into 12 ISY state variables. The parameters I pull include the following items (all defined at the link in my post (post 61) above): eventState isDetected isTimedout outOfRange tempState moistureState lightState temperature moisture lux lit batteryVolt I opted not to monitor the following parameters (these too are defined at the link in my post (post 61) above): name slaveId uuid lowTh highTh rssi txpwr The problem is though that the batteryVolt parameter isn't updating in the ISY - it constantly reads 0 but does show a changing "Last Changed" time in the ISY variables page. Interestingly though the log for the Motion Sensor Tag Pro ALS shows the batteryVolt parameter changing (i.e. it isn't always 0 in the log - in fact it is never 0 in the log). Here is the snippet of code from my kumoapp that is supposed to update the ISY battery voltage state variable (ID = 32, name = s.ALS01.batteryVolt): var tag_battVolt = Math.round(tag.batteryVolt * 1000)/1000; KumoApp.Log("BatteryV for "+cur_name+" ("+isy_variable_batteryVolt+") updated to "+tag_battVolt); KumoApp.httpCall(isy_RESTcall+isy_variable_batteryVolt+"/"+tag_battVolt, "GET"); I have tried using the "Reset Tag States" feature of the WirelessTag app but it doesn't help - still no battery voltage level updates on the ISY variable. I have also rebooted the tag manager - no help. Anyone have any ideas why the batteryVolt parameter isn't updating to my ISY state variable (ID = 32, name = s.ALS01.batteryVolt)?
  6. Never mind. I figured it out. Actions, Events, and Properties for each device type are all described at this link: http://wirelesstag.net/kumoapp/17/tags-kumosensors-kumostats
  7. I have the Wireless Tag Pro ALS (26). How can I figure out what all data is available programatically from this device? From inspection of the code I borrowed from this thread, I see that following data is available: tag.temperature tag.moisture tag.hasMoved tag.angleX tag.angleY tag.batteryVolt tag.outOfRange There should be more data available as well - at least a parameter for ambient light level since the Wireless Tag Pro ALS is an ambient light sensor (ALS). Where can one find the list of data each of the different types of sensors produces and a description of the format of this data? I would seem that this information would be contained on this page: http://wirelesstag.net/kumoapp or at least be linked to from that page. I am not seeing it though... Anybody know?
  8. Thanks! Getting much closer. My variables are INTEGER. So I changed from a "2" to a "1" in the isy_RESTcall line of code you snipped in your last post. Now my ISY humidity (wt.ALS00.humi) and movement (wt.ALS00.moved) variables are updating on the ISY. However, my temperature (wt.ALS00.temp) and battery voltage (wt.ALS00.battV) variables are not updating. Perhaps I need to configure these parameters for monitoring in the wireless tag app or something... I'll continue to play around with it. Many thanks for your help this morning!!
  9. Thanks Bumbershoot. I am getting closer but still not fulling working. I can got the program running and the KumoApp log seems to be working as I see it updating. However, the variables in my ISY are not updating. Would you mind taking a look to see if you can see any errors in my code? I will also share a screen cap showing my ISY variables. Here is my code: var tags = <#tags_[26]_N#>; var isy_ip=<%ISY IP Address%>; var isy_user = <%ISY username%>; var isy_password=<%ISY password%>; var isy_RESTcall = "http://"+isy_user+":"+isy_password+"@"+isy_ip+"/rest/vars/set/2/" tags.forEach( function (tag) { tag.updated = function () { var cur_name = tag.name var valid_device = true switch(cur_name) { case "Light Sensor 0": var isy_variable_temp = 121 var isy_variable_humi = 122 var isy_variable_moved = 123 var isy_variable_battV = 124 var isy_variable_outOfRange = 125 break; default: var valid_device = false } if(valid_device==true){ var tag_temp = Math.round(tag.temperature * 10)/10; KumoApp.Log("Temp for "+cur_name+" ("+isy_variable_temp+") updated to "+tag_temp); KumoApp.httpCall(isy_RESTcall+isy_variable_temp+"/"+tag_temp, "GET"); var tag_moisture = Math.round(tag.moisture); KumoApp.Log("Humidity for "+cur_name+" ("+isy_variable_humi+") updated to "+tag_moisture); KumoApp.httpCall(isy_RESTcall+isy_variable_humi+"/"+tag_moisture, "GET"); var tag_moved = Math.round(tag.hasMoved); var tag_XYZ = (Math.round(tag.angleX)+5000)*100000 + Math.round(tag.angleY)+5000 KumoApp.Log("Moved for "+cur_name+" ("+isy_variable_moved+") updated to "+tag_XYZ); KumoApp.httpCall(isy_RESTcall+isy_variable_moved+"/"+tag_XYZ, "GET"); var tag_battV = Math.round(tag.batteryVolt * 1000)/1000; KumoApp.Log("BatteryV for "+cur_name+" ("+isy_variable_battV+") updated to "+tag_battV); KumoApp.httpCall(isy_RESTcall+isy_variable_battV+"/"+tag_battV, "GET"); var tag_outOfRange = Math.round(tag.outOfRange); KumoApp.Log("OutOfRange for "+cur_name+" ("+isy_variable_outOfRange+") updated to "+tag_outOfRange); KumoApp.httpCall(isy_RESTcall+isy_variable_outOfRange+"/"+tag_outOfRange, "GET"); } else { KumoApp.Log("Data from non-configured device: "+cur_name); } }; } );
  10. Thanks Bumbershoot. I'm quoting post # 169 including the code for easy reference: (I have a few questions at the bottom of this post.) joe's Questions: I assume that in line 2: var isy_ip=<%ISY IP Address%>, I would replace ISY IP Address with the local internal IP address of my ISY on my home network. In my case my ISY is at ip address 192.168.1.30 so my line 2 would look like: var isy_ip=<%192.168.1.30%>; Is this correct? What is the name of the high-level language in which this code is written? Where do I put this code?
  11. Where in the CAO sensors support thread is the Kumoapp script for ISY integration using variables?
  12. Bummer. I was afraid that might be the case. Thanks for the reply.
  13. Actually the ISY network "Resource Editor" allows me to enter multiple RS-232 commands in a single resource. This seems to work... usually. It would be nice if I could set a specific delay between individual RS-232 commands within a single resource. This would enable the ability to ensure compliance to rule 5 of the protocol which reads "Whenever queuing multiple commands to the E6D, the host program should pause for 50 milliseconds between commands to prevent buffer overruns." For instance, within a single network resource, I have the following commands: *Z02ON\r\n (turns zone 2 on) *Z02SRC2\r\n (sets zone 2's source to source 2) *Z02VOL50\r\n (sets zone 2's volume to 50 dB below maximum volume) This usually works but sometime source 2 doesn't get set/selected and/or the volume doesn't get set to 50 dB below maximum. I suspect that this may be because of timing - i.e. not always having at least 50 milliseconds between commands. The ISY's network resource editor doesn't appear to have a feature that allows setting a specified fixed duration pause between multiple commands within a single network resource. Does anyone know if it is possible to specify a fixed duration pause between multiple commands within a network resource?
  14. I'm getting somewhere now. Thanks for the tips guys. I have successfully turned a zone on and off using the "test" function on the Network Resources tab (Configuration / Networking / Network Resources) of the ISY. I successfully issued the following commands using the test function: *Z01ON *Z01OFF Within the resource editor I had to select tcp host: 192.168.1.32 (ip address of my IP2SL on my internal network) Port: 4,999 Timeout (ms): 250 Mode: C Escaped Also, in the "Body" box I had to add \r\n to my command (carriage return and newline?) to get it to work. It looks like I need to create 1 network resource per RS-232 command I wish to issue through the ISY. Does that sound right?
  15. Okay. I have the global cache setup on my internal network and connected via serial cable to my whole house audio amplifier. The global cache' IP2SL is at ip address 192.168.1.32 on my local network. I can ping it and have logged into its internal webserver and configured the serial port settings as follows: Multiple Ports: disabled (not sure what this is for but left it disabled) Baud Rate: 9600 Flow Control: None Stop Bits: 1 Parity: None Data Bits: 8 I have the network module installed on my ISY994i. The RS-232 settings and protocol for the whole house audio amplifier are defined on pages 26 through 30 of this pdf: Nuvo Essentia Manual. Now what? Any tips, primers or suggestions from folks with ISY994 / Global Cache IP2SL integration experience would be most appreciated. Kindest Regards, - joe
×
×
  • Create New...