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.

cyclic time generator
#9
(24.08.2020, 16:40)Daniel. Wrote: I left you the log which shows the counting for on and off.  For testing change the script interval to 10.  It will then run tomerOn x 10s instead of 60s. Make sure you change 1/1/4 in both places.

Add to event script under else condition
storage.set('offCounter', 0)
storage.set('onCounter', 0)

so the counter is rested after disabling it.

Hi Daniel, I had to modify in the resident script to send the opposite value for it to work correctly.
if onCounter> = timerOn then
  grp.write ('1/1/4', false)
  storage.set ('onCounter', 0)

Anyway, I would like to thank you for your indications that have been of great help to me!  Smile

In the end it has remained like that, I share it in case someone is of help.

Code:
AddressOutput = '1/1/4'  -- 01. 1 bit (boolean) StatusCounterOn = '1/1/5' --05. 1 byte unsigned integer StatusCounterOff = '1/1/6' --05. 1 byte unsigned integer CounterOn = 'onCounter_Test' CounterOff = 'offCounter_Test' Script = 'Test' ---------------------------------------------------------------------------------- value = event.getvalue() if value then   script.enable(Script) else   script.disable(Script)   sleep(2)   grp.checkwrite(AddressOutput, false)   storage.set(CounterOn, 0)   storage.set(CounterOff, 0)   grp.checkwrite(StatusCounterOn, 0)   grp.checkwrite(StatusCounterOff, 0) --Opcional   sleep(2)   storage.delete(CounterOn)   storage.delete(CounterOff) end



Code:
--Script resident (60s) AddressInput= '1/1/1' -- 01. 1 bit (boolean) timerOn = '1/1/2' --05. 1 byte unsigned integer timerOff = '1/1/3' --05. 1 byte unsigned integer AddressOutput= '1/1/4' -- 01. 1 bit (boolean) StatusCounterOn = '1/1/5' --05. 1 byte unsigned integer StatusCounterOff = '1/1/6' --05. 1 byte unsigned integer ---------------------------------------------------------------------------- onCounter = storage.get('onCounter_' .. _SCRIPTNAME, 0) offCounter = storage.get('offCounter_' .. _SCRIPTNAME, 0) if grp.getvalue(AddressInput) and grp.getvalue(AddressOutput) then onCounter = onCounter +1 end if grp.getvalue(AddressInput) and not grp.getvalue(AddressOutput) then offCounter = offCounter +1 end log(onCounter,offCounter) if onCounter >= grp.getvalue(timerOn) then   grp.write(AddressOutput, false)   storage.set('onCounter_' .. _SCRIPTNAME, 0) else   storage.set('onCounter_' .. _SCRIPTNAME, onCounter) end if offCounter >= grp.getvalue(timerOff) then   grp.write(AddressOutput, true)   storage.set('offCounter_' .. _SCRIPTNAME, 0) else   storage.set('offCounter_' .. _SCRIPTNAME, offCounter) end   grp.checkwrite(StatusCounterOn, onCounter) grp.checkwrite(StatusCounterOff, offCounter)
Reply


Messages In This Thread
cyclic time generator - by davidchispas - 24.08.2020, 06:42
RE: cyclic time generator - by Daniel - 24.08.2020, 07:10
RE: cyclic time generator - by davidchispas - 24.08.2020, 10:48
RE: cyclic time generator - by Daniel - 24.08.2020, 10:50
RE: cyclic time generator - by davidchispas - 24.08.2020, 13:56
RE: cyclic time generator - by Daniel - 24.08.2020, 14:31
RE: cyclic time generator - by davidchispas - 24.08.2020, 16:25
RE: cyclic time generator - by Daniel - 24.08.2020, 16:40
RE: cyclic time generator - by davidchispas - 25.08.2020, 09:07

Forum Jump: