Page 1 of 1


Posted: 19 Apr 2019 00:17
by mc_jla
Hi Folks,

some questions as a zuno-newbee but a little expirienced Arduino user ...
I want to program a combination device which is mainly a siren but also has one additional relais output.
I defined three items in ZUNO_SETUP_CHANNELS

Code: Select all

I also implement these three setters and three getters.

My intention was to have
* channel 1 - the siren - with enable-setter ( with arg-value to control different siren behaviour ) and status-getter.
* channel2 - the multifunc relais ( as an additional switching output like in one of the examples )
* channel 3 - the settings regarding the siren ( how long it should signal )

The surprise :?: is that after binding the zuno to I see

* a new device which does not identify itself as a siren but in contrast it has 5 channels ( two dimmers and three switches ) where at least one channel interaction ( e.g. inreasing some dimmer value ) ends in the same setter at the zuno side.

The listed command classes in are as follows:
Basic, SwitchBinary, SwitchMultilevel, AssociationGroupInformation, DEviceResetLocaly, ZWavePlusInfo, Multichannel, Configuration, ManufacturerSpecific, PowerLevel, FirmwareUpdate, Association, Version, MultichannelAssociation, SwitchBinary, SwitchBinary, SwitchMultilevel

The Device-mode at zuno side is ZUNO_SLEEPING_MODE_ALWAYS_AWAKE because I am still in debug stage and have not switched on the FLiR mode yet.


What I have done wrong?
What I have to implement for a device which should declare itself as an siren?
Why I get five channels/devices inside although I only have declared three in the zuno?
Why some of them targeting same setters in the zuno?
What do I have to code that the bounded zuno-device itself has some well-sounding names for its channels in



Re: Siren

Posted: 19 Apr 2019 10:45
by petergebruers
The fact that it shows more channels than you define has tripped up quite a few users, it is not specific to Z-Uno and it is perfectly normal. Very short answer: it has to do with backwards compatibility. Better,longer answer and more interesting Z-Wave stuff: I'd start by reading this:

They are not targeting the same getters or setters, you have to replace those all-caps symbols with function names and write functions. So that macro accepts "a function name as a parameter". Every function of your device is different so very likely needs different function body. For example RGB device:

Good luck!

Re: Siren

Posted: 23 Apr 2019 12:54
by mc_jla
Hi Peter,

thanks for your answer.
Reading the page you recommended me brought unfortunately no fundamental new insight for me.
I could not find the answer why does not lists me that types and amount of channels which I have declared and implemented in ZUNO.

But I could find one hint for my question that after inclusion I cannot find a device which identifies itself as a 'siren'altough I have used the ZUNO_SIREN macro:
The command class 'siren' is not listed in that reference. Maybe the implementation for this is not finished yet or lacks some certification.
Also the fact that not a single example regarding a 'siren' can be found points me in that direction.

I will switch away from my siren implementation towards some command classes which assumes to be easier to handle.



Re: Siren

Posted: 23 Apr 2019 13:15
by petergebruers
I understand why you didn't "see" it in that document, I must admit I've been doing Z-Wave for many years now and sometimes I fail to see stuff through newbie eyes. In this case, the devil is in the details... This sentence:

"You can also partially control Z-Uno without using channels: first channel of each type is mapped to the corresponding Command Class outside channels."

What it means is Z-Wave has to be compatible with older devices, and so it has stuff in channels, but also duplicates of that "outside" channels.

Long time ago, Z-Wave devices did not have channels. This meant you couldn't make a "double relay" because without channels you can define only one. Then Z-Wave added channels but now you have a new problem: if you define two relays, one in each channel, older devices see something which has no function( because they do not understand channels) - which is weird. So what they do is they add a "relay" outside that channels. Now you have a device which is a bit odd: it says it has 3 relays. One of them is the "outside the channels" relay and it is 100% duplicate of (probably) the first relay. They both report the same state. They both can turn on/or off (but they switch the same physical relay.

Like this:

- "no channel" relay == duplicate of first real relay
- Channel 1 relay = physical relay one == duplicate of "no channel relay"
- Channel 2 relay = physical relay two