Jump to content

Custom Notifications


boser

Recommended Posts

Posted

Iv'e created the following custom notification:

 

sys.node.0E F5 1C.ST = ${sys.node.0E F5 1C.ST}
sys.node.0E F5 1C.OL = ${sys.node.0E F5 1C.OL}
sys.node.0E F5 1C.name = ${sys.node.0E F5 1C.name}
sys.node.0E F5 1C.addr = ${sys.node.0E F5 1C.addr}

 

where 0E F5 1C is a SwitchLinc Dimmer and use it in a program as follows:

 

If
  - No Conditions - (To add one, press 'Schedule' or 'Condition')

Then
       Send Notification to 'Boser' content 'Status5'

Else
  - No Actions - (To add one, press 'Action')

 

Run (Then) sends me an email:

sys.node.0E F5 1C.ST = node[0E F5 1C]
sys.node.0E F5 1C.OL = node[0E F5 1C]
sys.node.0E F5 1C.name = node[0E F5 1C]
sys.node.0E F5 1C.addr = node[0E F5 1C]

 

I'd have expected a report of the status and on level of the module, but apparently no such luck. How can I use custom notifications to get this type of information?

 

Thanks!

 

P.S. sys.node.ZW010_1.BATLVL = ${sys.node.ZW010_1.BATLVL} sends the battery level (e.g. 61%), as expected.

Posted
Drop the leading 0

 

sys.node.E F5 1C.ST

 

viewtopic.php?f=68&t=14346&p=112009

 

Unfortunately this does not fix the problem. Notification email without leading 0:

 

sys.node.E F5 1C.ST = node[E F5 1C]
sys.node.E F5 1C.OL = node[E F5 1C]
sys.node.E F5 1C.name = node[E F5 1C]
sys.node.E F5 1C.addr = node[E F5 1C]

Posted
Also missing the node number

 

sys.node.E F5 1C 1.ST

 

See this link for the correct format

 

viewtopic.php?f=68&t=14346&p=112009

 

Like this?

sys.node.E F5 1C 1.ST = ${sys.node.E F5 1C 1.ST}
sys.node.E F5 1C 1.OL = ${sys.node.E F5 1C 1.OL}
sys.node.E F5 1C 1.name = ${sys.node.E F5 1C 1.name}
sys.node.E F5 1C 1.addr = ${sys.node.E F5 1C 1.addr}

 

I'd tried this already: then I do not even get an email (nor error message). In the same program I also call another custom notification that just sends a hello. That message is sent, just the one above (which I care about) is silently ignored.

 

P.S. I'd seen viewtopic.php?f=68&t=14346&p=112009 before and tried all combinations (with and without leading zeros, with and without trailing 1) to no avail. I've also verified that 0E.5F.1C (apparently the ISY reports it in a different format than the one it expects it in when included in a message) is indeed the correct address. The name of the device is "Hall.Light.Hall Light" and it's in a folder called "Upstairs Hall" - perhaps the ISY does not like periods in the name or???

 

Thanks for your suggestions - unfortunately still not working.

Posted
Which one is correct?

 

0E.5F.1C

 

or

 

sys.node.E F5 1C 1.ST

 

F5. Sorry for the typo. Not the problem, unfortunately.

Posted

Can you post the Customizations tab with these messages?

 

Can also open a Ticket and someone from UDI will help code the lines. Using xx yy zz without the node number etc cannot work and those options are simply confusing the actual variable requirement

 

${sys.node.E F5 1C 1.ST}

Posted
Can you post the Customizations tab with these messages?

 

Can also open a Ticket and someone from UDI will help code the lines. Using xx yy zz without the node number etc cannot work and those options are simply confusing the actual variable requirement

 

${sys.node.E F5 1C 1.ST}

 

After trying a few more combinations I found that the "name" or "addr" requests do not work. The following custom notification behaves as expected (is this what you mean with "customization tab"?):

Battery Level
Upstairs   = ${sys.node.ZW010_1.BATLVL}
Downstairs = ${sys.node.ZW012_1.BATLVL}
Guesthouse = ${sys.node.ZW013_1.BATLVL}

Hall Light
Status (ST)   = ${sys.node.E F5 1C 1.ST}
ON Level (OL) = ${sys.node.E F5 1C 1.OL}

Staircase Light
Status (ST)   = ${sys.node.1B 8C E6 1.ST}
ON Level (OL) = ${sys.node.1B 8C E6 1.OL}

Guesthouse Ceiling Light
Status (ST)   = ${sys.node.1B 62 4F 1.ST}
ON Level (OL) = ${sys.node.1B 62 4F 1.OL}

Living Room Light
Status (ST)   = ${sys.node.1B DC 86 1.ST}
ON Level (OL) = ${sys.node.1B DC 86 1.OL}

Master Bedroom Light
Status (ST)   = ${sys.node.ZW008_1.ST}
ON Level (OL) = ${sys.node.ZW008_1.OL}

 

Email received:

Battery Level
Upstairs = 58%
Downstairs = 73%
Guesthouse = 70%

Hall Light
Status (ST) = Off
ON Level (OL) = 100%

Staircase Light
Status (ST) = Off
ON Level (OL) = 100%

Guesthouse Ceiling Light
Status (ST) = Off
ON Level (OL) = 100%

Living Room Light
Status (ST) = On
ON Level (OL) = 100%

Master Bedroom Light
Status (ST) = On
ON Level (OL) =

Posted
Hi LeeG,

 

Thanks so very much for all the help.

 

Hi boser,

 

What do you mean by name/address not working? What do you get?

 

With kind regards,

Michel

 

Hi Michel,

 

The Wiki instructions show expressions of the form ${sys.node.E F5 1C 1.addr}. Since I'm not sure what it's supposed to do (I also do not know what e.g. alert does and many of the other expressions generated by the gui and did not find the documentation), I put one of these expressions into a custom notification to try it out.

 

After many experiments, if I have found that if one of these expressions is in a notification, the notification is silently ignored, i.e. no email is sent and no error message issued (at least I could not find one). If I replace "addr" with "ST", I get the status of the module (on or off).

 

Bernhard

 

P.S. A success story ... I successfully transferred my z-wave network from a Vera to the ISY. Everything works fine, including status updates from Yale locks (contrary to what some are experiencing, judging from messages on the forum). Enrolling was much easier than with the Vera and I now even have access to one lock that was unreachable before. Now I have to finally learn how to "program" the ISY.

Posted

Hi boser,

 

The expression ${sys.node.ZW010_1.name} will give you the name of the device as displayed in the Admin Console. For instance if your ZW010_1 device is a Schlage lock, it should replace it in the email with ZW 010 Schlage Door Lock

 

~Mike

Posted
Hi boser,

 

The expression ${sys.node.ZW010_1.name} will give you the name of the device as displayed in the Admin Console. For instance if your ZW010_1 device is a Schlage lock, it should replace it in the email with ZW 010 Schlage Door Lock

 

~Mike

 

Hi MikeD,

 

I tried that an now does exactly this, even the addr. Puzzled what I did wrong before. (I am glad nobody can see my red face :oops:).

 

But with this success I have new ambitions. I've set up a few notifications that report lock issues.

Right now I am setting up an email sent when the deadbolt of a lock (Yale) is jammed. I have 3 locks. Presumably I can create 3 different custom notifications, one for each lock. Better - the instructions imply the possibility of using "wild cards" - will the following work?

 

ISY program

If
       Control 'Upstairs Hall / Lock Upstairs (ZW 10)' is switched Deadbolt Jammed
    Or Control 'Downstairs / Lock Downstairs (ZW 12)' is switched Deadbolt Jammed
    Or Control 'Guest House / Lock Guesthouse (ZW 13)' is switched Deadbolt Jammed
Then
       Send Notification to 'Boser' content 'Lock Jam'
Else
  - No Actions - (To add one, press 'Action')

 

and Notification "Lock Jam"

The deadbolt of lock ${sys.node.#.name} is jammed.

Its battery level is ${sys.node.#.BATLVL}.

 

The reason I am asking is that the locks are not jammed right now (fortunately) and it's not obvious to test.

 

Thanks,

Bernhard

Posted

I have never used the # wildcard in place of the fixed address. I would try one of the other Control selections such as Key/Manually Locked (if you have that as a selection) to test. Your initial post here perked my interest so I sat down and added a status notification for a few of my new Z-Wave devices, one of which is the Schlage BE469NX lock.

 

I also have just downloaded and configured ISYLogger to track the lock usage. viewforum.php?f=79

So far it looks promising. :)

 

~Mike

Posted
I have never used the # wildcard in place of the fixed address. I would try one of the other Control selections such as Key/Manually ...

 

Hi MikeD,

 

FYI: ${sys.node.#.name} works as expected for z-wave devices (also with ST or BATLVL instead of name).

 

I wonder are there other selectors (in addition to BATLVL) that can be used? E.g. the number of the user who operated the lock with the keypad would be useful.

Posted

Hi boser,

 

The user who unlocked with keypad would be ${sys.node.#.USRNUM}

 

~Mike

  • 3 months later...
Posted (edited)

MikeD,

 

I know this is an older thread, but where did you find that info?  So far, i know if ST, node, name, BATLVL, USERNUM.  Is there any way to browser the attributes?

 

Thanks,

Dave

I am sure there are other ways, but I go to

http://ISP.IP/rest/nodes/<NODE>

to figure them out.

 

 

For example, my Front Door lock is node ZW006_1, so the address http://192.168.1.53/rest/nodes/ZW006_1 returns

<nodeInfo>
  <node flag="128">
    <address>ZW006_1</address>
    <name>Front Door</name>
    <family>4</family>
    <parent type="3">39649</parent>
    <type>4.64.3.0</type>
    <enabled>true</enabled>
    <deviceClass>0</deviceClass>
    <wattage>0</wattage>
    <dcPeriod>0</dcPeriod>
    <pnode>ZW002_1</pnode>
    <sgid>1</sgid>
    <devtype>
      <gen>4.64.3</gen>
      <mfg>144.1.1</mfg>
      <cat>111</cat>
      <model>4</model>
    </devtype>
    <ELK_ID>L01</ELK_ID>
    <property id="ST" value="100" formatted="Locked" uom="11"/>
  </node>
  <properties>
    <property id="ALARM" value=" " formatted=" " uom="15"/>
    <property id="BATLVL" value="70" formatted="70%" uom="51"/>
    <property id="ST" value="100" formatted="Locked" uom="11"/>
    <property id="USRNUM" value=" " formatted=" " uom="70"/>
  </properties>
</nodeInfo>
Edited by PurdueGuy
Posted

Hi DaveF,

 

I just looked over the event viewer while operating the lock.

 

Great point PerdueGuy!

 

~Mike

  • 1 year later...
Posted

Greetings, all.

I have a network resource on an ISY 994i/IR PRO running v.5.0.2 that correctly sends Zwave lock status updates via Pushover.
The network resource includes the variable ${sys.node.ZW006_1.ST}
This correctly shows the lock status.

However, if I include ${sys.node.ZW006_1.BATLVL} in the network resource and perform a test, it returns:
TCP client request failed
[Net Module Rule: 207:500]

From the Wiki entry, ISY-99i/ISY-26 INSTEON:Errors And Error Messages:
500     Internal Error

What am I doing wrong?
Thanks

Posted

Greetings, all.

I have a network resource on an ISY 994i/IR PRO running v.5.0.2 that correctly sends Zwave lock status updates via Pushover.

The network resource includes the variable ${sys.node.ZW006_1.ST}

This correctly shows the lock status.

 

However, if I include ${sys.node.ZW006_1.BATLVL} in the network resource and perform a test, it returns:

TCP client request failed

[Net Module Rule: 207:500]

 

From the Wiki entry, ISY-99i/ISY-26 INSTEON:Errors And Error Messages:

500     Internal Error

 

What am I doing wrong?

Thanks

 

${sys.node.ZW006_1.BATLVL}  is probably being replaced with a number followed by a % sign. This will cause an error because it's not being URL encoded.

 

Instead, try ${sys.node.ZW006_1.BATLVL.raw} to get the raw value..

 

Michael.

Posted

@MWareman,

 

Many thanks.  That works like a champ.

 

Curiously, ${sys.node.ZW006_1.BATLVL} works fine in a custom email notification sent to the same Pushover user account.

But, with the same Pushover user account, I do indeed need to use ${sys.node.ZW006_1.BATLVL.raw} in the network resource to prevent the Net Module error .

 

Again, thank you for the suggestion.

Posted

The body of emails can have the full character sert in them - so nothing needs encoding to send special characters (like a % sign). When sending via the URL or body of a POST, there is a restricted characterset - and URL encoding must be used.

 

I actually encountered this when variable substitution first arrived for network resources - and worked with UDI to add the .raw suffix that's valid across all (I believe...) parameters that have a formatted value.

 

Michael.

Guest
This topic is now closed to further replies.

×
×
  • Create New...