This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

NodOn wallplug - multiple event triggering on one trigger
#1
I'm trying to use NodOn flushmounted switch. I'm impressed with its range also through the walls and doors. I can switch it on/off via LM and I can receive some trigger when local button is clicked. I've prepared a script which calculates its state.

Code:
value = event.getvalue()
alias = grp.alias(event.dst)
zone, mode = alias:match('(.*)_(.*)')
log(mode, value)

statusAlias = zone .. '_status'
status = grp.getvalue(statusAlias)

if mode == 'toggle' and not value then
 grp.write(statusAlias, not status)
elseif mode == 'on/off' then
 grp.write(statusAlias, value)
end
But I noticed that this script is triggered 2 times every time i push the button. Without this issue all would be greatWink

Very nice thing is when there is a power lack and then return of power the wallplug starts in the last state.
Done is better than perfect
Reply
#2
Are you talking about standard EnOcean wall switch, single or double rockers?
Reply
#3
(12.07.2018, 10:16)admin Wrote: Are you talking about standard EnOcean wall switch, single or double rockers?

This one:
https://www.amazon.de/Nod-SIN-2-1-01-Eno...KAQMJ15DWH

One relay and 2 inputs, but I've connected only first input. It is a device which has profile not supported by LM but by using some other it works:
F6-04-01 as EnOcean->KNX
F6-01-03 as KNX->EnOcean

I've tried filter one value but unfortunately probably this 2 telegrams starts on the same time and filter telegram is inverted on same value:
Code:
value = event.getvalue()
alias = grp.alias(event.dst)
zone, mode = alias:match('(.*)_(.*)')
log(mode, value, event)

statusAlias = zone .. '_status'
status = grp.getvalue(statusAlias)

filterAlias = zone .. '_filter'
filter = grp.getvalue(filterAlias)

if mode == 'toggle' and not value then
 if filter then
   grp.write(statusAlias, not status)
 end
 grp.write(filterAlias, not filter)
elseif mode == 'on/off' then
 grp.write(statusAlias, value)
end

Attached Files Thumbnail(s)
   
Done is better than perfect
Reply
#4
If you do not need one input to control two separate objects you can use F6-01-01 profile instead. Right now F6-01-03 will update both objects when a button is pressed.
Reply
#5
Thanks for your advice. I've checked this now (and also before) and on profile F6-01-01 relay works strange e.g. something clicked but nothing change (multimeter is connected to relay in beep when there is connection between IN-O).

On profile F6-01-03 all is good with sending command from LM to wallplug.


I think that there is eventually a problem with this profile:
F6-04-01 as EnOcean->KNX

or maybe there is an issue with translating commands into KNX (maybe 2 are generated because filter should work and it isn't)
Done is better than perfect
Reply
#6
Which other profiles have you tried? For EnOcean > KNX you can try using raw profile and log frame data and status byte. This might help figuring out why it's not working correctly.
Reply
#7
For this module this is enough configuration:
EnOcean->KNX: F6-02-01 (first object S2, second S1)
KNX->EnOcean: F6-01-03 (connect on/off to only first object to control relay; select "Send telegram")

One device is controlled via such set of objects:
Zone 1_on/off - command object from LM true = on, false = off
Zone 1_toggle 1 - status of click (used for update the Zone 1_status)
Zone 1_toggle 2 - status of click (used for switching other object)
Zone 1_status - calculated relay status

These objects should have tag e.g. "enocean_st":
Zone 1_on/off
Zone 1_toggle 1

This script should be connected to above tag "enocean_st":

Code:
-- Updating relay state

value = event.getvalue()
alias = grp.alias(event.dst)
zone, mode = alias:match('(.*)_(.*)')

statusAlias = zone .. '_status'
status = grp.getvalue(statusAlias)

if mode == 'toggle 1' then
 grp.write(statusAlias, not status)
elseif mode == 'on/off' then
 grp.write(statusAlias, value)
end
Done is better than perfect
Reply
#8
(12.07.2018, 11:29)buuuudzik Wrote: For this module this is enough configuration:
EnOcean->KNX: F6-02-01 (first object S2, second S1)
KNX->EnOcean: F6-01-03 (connect on/off to only first object to control relay; select "Send telegram")

One device is controlled via such set of objects:
Zone 1_on/off - command object from LM true = on, false = off
Zone 1_trigger 1 - status of click (used for update the Zone 1_status)
Zone 1_trigger 2 - status of click (used for switching other object)
Zone 1_status - calculated relay status

These objects should have tag e.g. "enocean_st":
Zone 1_on/off
Zone 1_trigger 1

This script should be connected to above tag "enocean_st":

Code:
-- Updating relay state

value = event.getvalue()
alias = grp.alias(event.dst)
zone, mode = alias:match('(.*)_(.*)')

statusAlias = zone .. '_status'
status = grp.getvalue(statusAlias)

if mode == 'toggle 1' then
 grp.write(statusAlias, not status)
elseif mode == 'on/off' then
 grp.write(statusAlias, value)
end
Line 10
'toggle 1'  or should it be 'trigger 1' ?
------------------------------
Ctrl+F5
Reply
#9
Thanks for correctionWink I named this inputs as "toggle" because they send 0 and 1 but this is not a relay or input state so the value can be ommited. These are my first steps with EnOcean and I see that when LM has antenna it can reach through the walls (at this moment through concrete 2 walls and 7m and module was inside the plastic box, with WiFI in the air).

I remember that when I've used ZWAVE modules from fibaro(which I've appreciate for their functionality and look) the communication without any walls was very, very low and people which stands between module and the controller decrease the range significantly(most times totally). For me EnOcean is more stable and faster.
Done is better than perfect
Reply
#10
(12.07.2018, 11:55)buuuudzik Wrote: Thanks for correctionWink I named this inputs as "toggle" because they send 0 and 1 but this is not a relay or input state so the value can be ommited. These are my first steps with EnOcean and I see that when LM has antenna it can reach through the walls (at this moment through concrete 2 walls and 7m and module was inside the plastic box, with WiFI in the air).

I remember that when I've used ZWAVE modules from fibaro(which I've appreciate for their functionality and look) the communication without any walls was very, very low and people which stands between module and the controller decrease the range significantly(most times totally). For me EnOcean is more stable and faster.

I have similar experience.
------------------------------
Ctrl+F5
Reply
#11
Which devices did you use?

Maybe do you know how can I change these parameters:

Attached Files Thumbnail(s)
   
Done is better than perfect
Reply
#12
I'v been using enocean on various projects even commercials and nobody ever called me back. It has it's limited range but when it works it will keep working. Here I'm talking about PBs, Thermostats, or CO2 sensors.  On Zwave I just tried few devices like Fibaro smoke detector, RGB controller or Danfos valve thermostat.  Originally it worked but sometimes didn't.  For me wireless is always just add on as I will use it only when cable is not possible. My feelings about Zwave is more like a toy rather professional device.
------------------------------
Ctrl+F5
Reply
#13
I see that this was not only my experience. The worst thing was when I've unpacked and try to connect devices with controller and 50% of them had 'low battery' notification. And the most lack was the small reliability. And also latency.
Done is better than perfect
Reply


Forum Jump: