someguy Posted March 29 Posted March 29 I'm trying to create a custom email notification for when I am on vacation that tells me what is going on at my house. here is what I have so far and I think the first line will work fine, but the rest needs work: Quote Vacation Daily Alert for ${sys.date}, ${sys.time}. On Vacation? ${sys.program.#.status} Thermostats: ${sys.node.#.addr} Garage doors? ${sys.node.#.addr}, ${sys.node.#.addr} Outdoor Temp: ${sys.node.#.addr} the problem is, I'm not sure what parts of these "variables" need to be changed and if so, to what. I guess I need a kindergartner level of explanation. for the "On Vacation", I have a program called "on vacation?" and I'd like to know if that is true or false. I presume I need to swap out the pound sign to something but I don't know what to swap it to. for the others, they're all nodes, some are insteon devices, specifically. Quote
Techman Posted March 29 Posted March 29 Her's the list of all the variables and their descriptions ISY-994i Series:EMail and Networking Substitution Variables - Universal Devices, Inc. Wiki Quote
Andy P Posted March 30 Posted March 30 When referring to a node, the # becomes the node identifier. Besides the insteon address, you can also use polyglot created devices like this Rain Tomorrow ${sys.node.n007_forecast_1.GV18} ${sys.node.n007_forecast_1.GV13} Accumulation ${sys.node.n007_forecast_1.GV8} When you use a program to trigger a notification, the # automatically gets replaced by the ID of the program that called it. ${sys.program.#.address} ${sys.program.#.name} ${sys.program.#.status} ${sys.date} ${sys.time} program[97] Garage Closed True 2025/03/30 06:10:00 AM Quote
someguy Posted April 7 Author Posted April 7 Quote On Vacation? - [ID 00D4][Parent 0066][Not Enabled] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then - No Actions - (To add one, press 'Action') Else - No Actions - (To add one, press 'Action') so, in my customized email, I tried this and it doesn't work: On Vacation? ${sys.node.00D4.status} ${sys.program.00D4.status} I appreciate help. Quote
Techman Posted April 7 Posted April 7 Post a copy of the program, with all the relevant fields populated, that doesn't work 00D4 isn't a system node, it's a program ID You'll probably need to have the program set a variable Substitution Variables Substitution variables are available inside custom email definitions in the form ${<variable name>}. Substitutions can be manually made in the body, URL or header of Network Resources from version 4.3.26. If you included them in the URL then you cannot use the 'Encode URL' option In most cases, these variables use the ID of the element being referenced For example ${sys.node.11 22 AA 1.name} would use the name of the device node whose address is 11 22 AA 1 Instead of specifying a fixed address, the special character # may be used to reference the element in the event that caused the program to run. (Does not work in network resources) For example, if a status event for node 11 22 AA 1 caused a program to run, then ${sys.node.#.name} would use 11 22 AA 1 as the address. Quote
someguy Posted April 19 Author Posted April 19 @Techman wow, is this a tough project. here is the "customized content" that i'm trying to get working: Quote Vacation Daily Alert for ${sys.date}, ${sys.time} On Vacation? ${On_Vacation} Thermostats: ${sys.node.n010_t421839927326.addr} Garage doors? ${sys.node.#.addr}, ${sys.node.#.addr} Outdoor Temp: ${sys.node.#.addr} i'm still working through them but the only thing that works is the first line. specifically, the "On_Vacation" is the name of a variable (and it doesnt work) and the "n010..." is the name of the nodeserver node for my ecobee thermostat. any suggestions? Quote
dbwarner5 Posted April 19 Posted April 19 (edited) @someguy The easiest way to get the variable you want from a node server into an email is to go to the PGX plugin and hit the copy symbol next to the variable you want and then past it into the program. For example if I want the barometric pressure of my weather flow plug in, I would click on the copy symbol and it will copy the correct string to paste into an email. I get notifications throughout the day when traveling.. I use pushover vs email. but here is an example of the program and the pushover message that gets sent. House Status when away - [ID 00E2][Parent 0203][Run At Startup] If $Away is 1 And ( Time is 8:30:00AM Or Time is 12:00:00PM Or Time is 5:00:00PM Or Time is 9:00:00PM ) Then Set 'Notification Controller / Service Pushover Other' Send Sys Custom With Params Priority=Normal Content 24 Notification ID (ID=24) Else - No Actions - (To add one, press 'Action') Notification in custom notifications looks like this: Security: ${sys.node.n014_area_1.ST}, ${sys.node.n014_area_1.GV0} Doors: -Front: ${sys.node.ZY010_1.ST} and ${sys.node.n014_zone_1.ST}. -Mud Room: ${sys.node.ZY011_1.ST} and ${sys.node.n014_zone_15.ST}. -Back Grg: ${sys.node.ZY012_1.ST} and ${sys.node.n014_zone_12.ST}. -Mstr Bedrm: ${sys.node.n014_zone_10.ST}. -Slider: ${sys.node.n014_zone_33.ST}. -Screen Porch Entry: ${sys.node.n014_zone_5.ST}. -Screen Porch North: ${sys.node.n014_zone_9.ST}. -Screen Porch South: ${sys.node.n014_zone_4.ST}. -S. Garage: ${sys.node.n014_zone_7.ST}. -M. Garage: ${sys.node.n014_zone_3.ST}. -N. Garage: ${sys.node.n014_zone_8.ST}. Main Thermostat: -Set: ${sys.node.ZY004_1.CLISPH} -Temp: ${sys.node.ZY004_1.ST} -Mode: ${sys.node.ZY004_1.CLIMD} -Status: ${sys.node.ZY004_1.CLIHCS}. Upstairs Thermostat: -Set: ${sys.node.ZY005_1.CLISPH} -Temp: ${sys.node.ZY005_1.ST} -Mode: ${sys.node.ZY005_1.CLIMD} -Status: ${sys.node.ZY005_1.CLIHCS}. Main Level: ${var.1.92} Minutes Upstairs: ${var.1.94} Minutes Day 1: ${var.1.98} Day 2: ${var.1.99} Day 3: ${var.1.100} Day 4: ${var.1.101} Day 5: ${var.1.102} Master Fireplace is: ${sys.node.1D 5A C0 1.ST} Water Pump is: ${sys.node.ZY013_1.ST} Temperatures: -Outside: ${var.1.28}ºF -Garage: ${sys.node.n019_ts5.ST} -Hot Tub: ${sys.node.n016_8b4c01000a1c2e.CLITEMP} -Mstr Bedrm: ${sys.node.n019_ts4.ST} -Family Room: ${sys.node.n019_ts1.ST} -Great Room: ${sys.node.n019_ts3.ST} -Office: ${sys.node.n019_ts2.ST} -Lake: ${sys.node.n016_8b4c0100079d9f.CLITEMP} -House Refrig: ${sys.node.n016_8b4c01000ba53e.CLITEMP} -House Freezer: ${sys.node.n016_8b4c01000ba56d.CLITEMP} -Garage Refrig: ${sys.node.n016_8b4c01000ba218.CLITEMP} -Garage Freezer: ${sys.node.n016_8b4c01000ba4d1.CLITEMP} Weather: Temp: ${var.1.28}ºF, High: ${var.1.38}ºF, Wind: ${var.1.11}mph, Gusts: ${var.1.31}, Wind Direction: ${sys.node.n001_285149.WINDDIR} Rain: ${var.1.34}%, Clouds: ${var.1.35}% ${alert.time} Output looks like this Hope seeing a real life example helps! Edited April 19 by dbwarner5 1 Quote
someguy Posted May 3 Author Posted May 3 @dbwarner5 WOW!!!!😁 Your post was so very helpful!!! (yes, I'm just getting around to working on this again.) It is interesting how the nodes all work. the only things I was not able to figure out are: 1) what is the syntax for the variable for the true/false status of a program? 2) currently, I'm using email. how can I get the email to have new lines. even with all of these data points on separate lines, the readout in an email is all run together: 1 Quote
Techman Posted Saturday at 09:59 PM Posted Saturday at 09:59 PM To get a line feed in the email add "<BR>" at the end of th line. I'm not aware of a variable that reflects the status of a program. You could use the status of a device in a program. 1 Quote
someguy Posted Sunday at 02:21 PM Author Posted Sunday at 02:21 PM @Techman adding <BR> to make an "enter" in the email did not do anything (other than put a "<BR>" into the translation email. any other suggestions? Quote
Techman Posted Sunday at 02:31 PM Posted Sunday at 02:31 PM Select HTML instead of TEXT for the message format, then the line feeds will work. Quote
dbwarner5 Posted Sunday at 06:29 PM Posted Sunday at 06:29 PM On 5/3/2025 at 7:08 AM, someguy said: @dbwarner5 WOW!!!!😁 Your post was so very helpful!!! (yes, I'm just getting around to working on this again.) It is interesting how the nodes all work. the only things I was not able to figure out are: 1) what is the syntax for the variable for the true/false status of a program I am not sure I understand the question. Are you looking to have in your email a statement that will tell you if a program is true or false? I am not sure of any syntax for that and unfortunately do not have access to my computer to research it a simple work around is to set a new variable to a 1 in the true part of the program and set it to 0 in the false part. then your email can report that variables value, knowing that 1 is true and 0 is false 1 Quote
dbwarner5 Posted Monday at 03:02 PM Posted Monday at 03:02 PM @someguy Another option depending on what you are trying to do you can have 2 versions of your email. One that is sent when the program is true and has a line in it that says " XY Program is True" And a second email that gets sent when the program is false and says "XY Program is False" 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.