Jump to content

Running Average ?


satwar

Recommended Posts

I have a device which toggles an output status between on-off.  The problem is that when the device is close to changing status it does so very noisily and the poor isy is beaten to death, not to mention downstream equipment that relies on this on-off signal.  This especially happens when the device is sending an "off" and approaching to switch to the "on" status.

I was hoping someone might be able know how slow down the chatter.  I think scanning for the status every 10 minutes would be adequate.

 

Thanks in advance.

Link to comment
2 minutes ago, satwar said:

I have a device which toggles an output status between on-off.  The problem is that when the device is close to changing status it does so very noisily and the poor isy is beaten to death, not to mention downstream equipment that relies on this on-off signal.  This especially happens when the device is sending an "off" and approaching to switch to the "on" status.

I was hoping someone might be able know how slow down the chatter.  I think scanning for the status every 10 minutes would be adequate.

 

Thanks in advance.

It would be easier to help if you'd provide more info. A switch could be anything from any company as could whatever it's attached to and other devices. The more detail you give the better the response.

Link to comment

Well the on-off signal is an alarm.  The "off" condition is no alarm, and the alarm condition is "on".  I physically connect the alarm signal to a EZIO 2x4, where it gets used in the isy as required.  The device that signals the alarm is proprietary 

Link to comment
40 minutes ago, satwar said:

Is SnowAlarm (I2) status is ON

THEN Wait 10 minutes

ELSE Wait 10 minutes

 

But see log file I attached @ 06:15, where some chatter gets through:

If that's all the code you have in a program, I can't see how it helps de-bounce other programs.

When discussing your programs it's always best to post the exact program(s) by right clicking the name in the tree selecting copy to clipboard then pasting it into a post.  Too many different possible interpretations of psuedocode.

Link to comment

The program has two folders:.  The first folder controls power "on" and "off":

Gutter Heater Control - [ID 0014][Parent 000D]

If
        (
             Time is  6:00:00AM
          Or Time is  6:15:00AM
          Or Time is  6:30:00AM
          Or Time is  6:45:00AM
          Or Time is  7:00:00AM
          Or Time is  7:15:00AM
          Or Time is  7:30:00AM
          Or Time is  7:45:00AM
          Or Time is  8:00:00AM
          Or Time is  8:15:00AM
          Or Time is  8:30:00AM
          Or Time is  8:45:00AM
          Or Time is  9:00:00AM
          Or Time is  9:15:00AM
          Or Time is  9:30:00AM
          Or Time is  9:45:00AM
          Or Time is 10:00:00AM
          Or Time is 10:15:00AM
          Or Time is 10:30:00AM
          Or Time is 10:45:00AM
          Or Time is 11:00:00AM
          Or Time is 11:15:00AM
          Or Time is 11:30:00AM
          Or Time is 11:45:00AM
          Or Time is 12:00:00PM
          Or Time is 12:15:00PM
          Or Time is 12:30:00PM
          Or Time is 12:45:00PM
          Or Time is  1:00:00PM
          Or Time is  1:15:00PM
          Or Time is  1:30:00PM
          Or Time is  1:45:00PM
          Or Time is  2:00:00PM
          Or Time is  2:15:00PM
          Or Time is  2:30:00PM
          Or Time is  2:45:00PM
          Or Time is  3:00:00PM
          Or Time is  3:15:00PM
          Or Time is  3:30:00PM
          Or Time is  3:45:00PM
          Or Time is  4:00:00PM
          Or Time is  4:15:00PM
          Or Time is  4:30:00PM
          Or Time is  4:45:00PM
          Or Time is  5:00:00PM
          Or Time is  5:15:00PM
          Or Time is  5:30:00PM
          Or Time is  5:45:00PM
          Or Time is  6:00:00PM
          Or Time is  6:15:00PM
          Or Time is  6:30:00PM
          Or Time is  6:45:00PM
          Or Time is  7:00:00PM
          Or Time is  7:15:00PM
          Or Time is  7:30:00PM
          Or Time is  7:45:00PM
          Or Time is  8:00:00PM
          Or Time is  8:15:00PM
          Or Time is  8:30:00PM
          Or Time is  8:45:00PM
          Or Time is  9:00:00PM
          Or Time is  9:15:00PM
          Or Time is  9:30:00PM
          Or Time is  9:45:00PM
          Or Time is 10:00:00PM
          Or Time is 10:15:00PM
          Or Time is 10:30:00PM
          Or Time is 10:45:00PM
          Or Time is 11:00:00PM
          Or Time is 11:15:00PM
          Or Time is 11:30:00PM
          Or Time is 11:45:00PM
          Or Time is 12:00:00AM
          Or Time is 12:15:00AM
          Or Time is 12:30:00AM
          Or Time is 12:45:00AM
          Or Time is  1:00:00AM
          Or Time is  1:15:00AM
          Or Time is  1:30:00AM
          Or Time is  1:45:00AM
          Or Time is  2:00:00AM
          Or Time is  2:15:00AM
          Or Time is  2:30:00AM
          Or Time is  2:45:00AM
          Or Time is  3:00:00AM
          Or Time is  3:15:00AM
          Or Time is  3:30:00AM
          Or Time is  3:45:00AM
          Or Time is  4:00:00AM
          Or Time is  4:15:00AM
          Or Time is  4:30:00AM
          Or Time is  4:45:00AM
          Or Time is  5:00:00AM
          Or Time is  5:15:00AM
          Or Time is  5:30:00AM
          Or Time is  5:45:00AM
        )
    And (
             'Weather - Snow Alarm (I2)' Status is On
        )
    And (
             'Weather - Temp Alarm (I1)' Status is Off
        )
 
Then
        Set 'Driveway / Gutter Driveway Power' On 100%
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' On 100%
        Wait  1 minute 
        Set 'Garage / Gutter Garage Power' On 100%
 
Else
        Set 'Driveway / Gutter Driveway Power' Off
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' Off
        Wait  1 minute 
        Set 'Garage / Gutter Garage Power' Off
 

and the second folder ry to decrease the Snow Alarm (I2) chatter

Reduce Noise on Snow Alarm - [ID 000E][Parent 000D]

If
        'Weather - Snow Alarm (I2)' Status is On
 
Then
        Wait  10 minutes 
 
Else
        Wait  10 minutes 
 

Link to comment

The second program does nothing.

 

The better approach is to use two programs: one for the off condition and one for the on condition.

Gutter Heater Control ON

If

       'Weather - Snow Alarm (I2)' Status is On

And 'Weather - Temp Alarm (I1)' Status is Off

then

        Set 'Driveway / Gutter Driveway Power' On 100%
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' On 100%
        Wait  1 minute 
        Set 'Garage / Gutter Garage Power' On 100%

        Run Program Gutter Heat Control OFF (if)

Gutter Heater Control OFF  (disabled)

If

       'Weather - Snow Alarm (I2)' Status is Off

or    'Weather - Temp Alarm (I1)' Status is On

then

        disable program gutter heat control ON

        Set 'Driveway / Gutter Driveway Power' Off
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' Off
        Wait  1 minute Dis
        Set 'Garage / Gutter Garage Power' Off

        wait 15 minutes

        Enable program gutter heat control ON

        Run Program gutter heat control ON (if)    (I'm not sure of you need this line or not but it won't hurt)

Else

        wait 15 minutes

        run Program Gutter Heat Control OFF (if)

-----

The on program watches for the conditions required to turn on the equipment.    The second program being disabled means that it will only run when we tell it to.  So the first program turns the equipment on and runs the off program, if its not time to turn it off yet this program drops to the else loop and waits 15 minutes before ending by running itself again.  Once we reach the then body we disable the on program, turn off the equipment, wait 15 minutes and re-enable the on program (which de-bounces)

I think that should take care of all conditions. without turning the equipment off many times which occurs often when using Status and else bodies.

 

What this doesn't do is stop excessive Insteon traffic from the EZ-IO, if the sensors are actually causing the problem by turning on/off repetitively.  You may need to add a Time delay relay into the circuit between the actual sensor and the EZ-IO.  I had that problem with another sensor and used this relay to debounce the circuit.  (FYI... it's hard to understand the programming buttons of that relay and the functions, the instruction sheet is not very good and made it a frustrating process, but stick with it once you have it set you never need to touch it again... mines been working since 2016 without being reprogrammed.)

 

 

 

Link to comment

My God, you figured out the solution and typed it, all within an hour.  Now that’s pretty scary, but thank you for your time anyway.  Using the run command is very powerful, but i’m afraid if the code ever breaks nobody will be able to fix it.

But again thank you, it will take a few days to type it in.

Link to comment
1 hour ago, satwar said:

My God, you figured out the solution and typed it, all within an hour.  Now that’s pretty scary, but thank you for your time anyway.  Using the run command is very powerful, but i’m afraid if the code ever breaks nobody will be able to fix it.

But again thank you, it will take a few days to type it in.

Don't destroy your original code to enter the new code.  You can enter it into a new version and disable the original and enable the new one when ready.

Or you can copy the original program (right click on the name) to a new one (or two) and then edit both new ones to look like what you want, then disable the old program, keeping it until you are sure you can dump it. You make save some entering if done that way.

The two programs could be combined into one program but it can get very complex for logic and will cause a lot of stress to understand the logic, if it should break.

Link to comment
2 hours ago, satwar said:

My God, you figured out the solution and typed it, all within an hour.  Now that’s pretty scary, but thank you for your time anyway.  Using the run command is very powerful, but i’m afraid if the code ever breaks nobody will be able to fix it.

But again thank you, it will take a few days to type it in.

I didn't type much, I cut and pasted more.  The keys are to use disable/enable and run program.  and as @larryllix points out you can use disable and copy to your advantage in setting up the new programs.

Link to comment

Okay, I've typed up the code.  It took considerable time finding the correct menu to get the needed code.   Hopefully you don't find any mistakes, but I would appreciate your review 

Now all I need is some snow.  There hasn’t been very much this year. 

************************************************
The first folder
************************************************

Gutter Heater Control ON - [ID 0015][Parent 000D]

If
        'Weather - Snow Alarm (I2)' Status is On
    And 'Weather - Temp Alarm (I1)' Status is Off
 
Then
        Set 'Driveway / Gutter Driveway Power' On
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' On
        Wait  1 minute 
        Set 'Garage / Gutter Garage Power' On
        Run Program 'Gutter Heater Control OFF (disabled)' (If)
 
Else
   - No Actions - (To add one, press 'Action')

**************************************************
and the second folder

**************************************************

Gutter Heater Control OFF (disabled) - [ID 0017][Parent 000D][Not Enabled]

If
        'Weather - Snow Alarm (I2)' Status is Off
     Or 'Weather - Temp Alarm (I1)' Status is On
 
Then
        Disable Program 'Gutter Heater Control ON'
        Set 'Driveway / Gutter Driveway Power' Off
        Wait  1 minute 
        Set 'Garage / Gutter Garage Power' Off
        Wait  1 minute 
        Set 'Driveway / Gutter Porch Power' Off
        Wait  15 minutes 
        Enable Program 'Gutter Heater Control ON'
        Run Program 'Gutter Heater Control ON' (If)
 
Else
        Wait  15 minutes 
        Run Program 'Gutter Heater Control OFF (disabled)' (If)

Link to comment
1 hour ago, satwar said:

Okay, I've typed up the code.  It took considerable time finding the correct menu to get the needed code.   Hopefully you don't find any mistakes, but I would appreciate your review 

Now all I need is some snow.  There hasn’t been very much this year.

Programs look as expected! 

If you right click the on program and 'run then' i would expect it to cycle the sensors on then immediately off.   I don't have any idea how your sensor works but perhaps crushed ice to test?

Link to comment

@satwarYou might add one more program, the condition it handles is what happens if the ISY reboots while the heat is on.

 

Gutter Heater Initialize   (run at startup)

If

  (nothing)

Then

        Wait 5 minutes

        Run Program 'Gutter Heater Control OFF (disabled)' (Then)

Else

        (nothing)

 

The 5 minutes give the ISY time to finish booting up and for the Insteon Query on startup to finish.  Then force runs the off program.

Hint: to enable run at startup, create the program and save it, then Switch to the Programs | Summary tab, click the name of the program there to hi-light it then right click and you will see "Enable Run At Startup" in the context menu.  

Link to comment

****************************************************

The code I get for the new program is.  Is this correct ?:

*****************************************************

Gutter Heater Initialize (run at startup) - [ID 0059][Parent 000D]

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Wait  5 minutes 
        Run Program 'Gutter Heater Control OFF (disabled)' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 

Link to comment
1 hour ago, satwar said:

But the last step to get "Enable Run At Startup" to show up in context menu did not work

 

Hmmm, I started to say Yes it did, but you must have typed the run at startup in the title.  the Actual automatically added tag would have been [Run At Startup]

Did you switch to the summary tab?  did you see the option?   I'm not sure what "did not work" means.  Did you select that and nothing happened?

image.png.1134f6431e7bb6db4b7923e0a754e4ee.png

Link to comment
1 hour ago, satwar said:

****************************************************

The code I get for the new program is.  Is this correct ?:

*****************************************************

Gutter Heater Initialize (run at startup) - [ID 0059][Parent 000D]

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Wait  5 minutes 
        Run Program 'Gutter Heater Control OFF (disabled)' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 

Well the first question I asked was whether or not my code was typed correctly.  The Run Program 'Gutter Heater Control OFF (disabled)' (Then Path) does not end with Then  shown in your code.

 

Yes I did get Enable Run at Startup in the context menu.  Sorry for the confusion, I just didn't know what I was looking for.

Link to comment
2 hours ago, satwar said:

Well the first question I asked was whether or not my code was typed correctly.  The Run Program 'Gutter Heater Control OFF (disabled)' (Then Path) does not end with Then  shown in your code.

 

Yes I did get Enable Run at Startup in the context menu.  Sorry for the confusion, I just didn't know what I was looking for.

Sorry, yes it's correct.   I would have called it out if it wasn't.   When I type these programs in the forum I'm doing it off the tips of my fingers and memory (and maybe cut and paste from a program posted above) and not using the admin console so their may be variations in the format, you correctly selected "then path" as opposed to my just labeling it (then)

 

1 hour ago, satwar said:

Sorry, but I forgot to ask whether or not the last program "Gutter Heater Initialize  (run at startup)" ) was enabled or disabled  ?

 

Also am I supposed to run the Enable Run at Startup in right hand context menu  after ISY starts up  ?

I'm confused where we are with [Run at Startup].   

On the Programs | Summary tag we want to see:

image.png.2f10caeae455b1ce177785c2b59857fc.png

Except with your Program name "Gutter Heat Initialize", but see how on my example it says "On" in the second column over?  this will also add square bracketed [Run at Startup] to the end of the first line when you page the program in the forum, like this:

Startup/UptimeCounter - [ID 008D][Parent 0001][Run At Startup]

What "Run at Startup" actually accomplishes is forcing this program to Run during the ISY boot process.  The Reason we want this little two line program to Run at Startup is this condition scenario:   You're away on vacation, A winter storm arrives, the Gutter Heat turns on, melting begins... then the power fails, everything stops.  When the power utility turns the power back on the Insteon modules will return in the ON state, but when the ISY boots up it won't initialize the programs correctly because the snow sensor and the temp alarm are likely already calling for melt.   So the solution is this two line program, being tagged to Run at Startup....  it will wait 5 minutes, then turn off the Gutter Heat, at the end of the off loop if it needs to be on, it will turn back on but it it no longer needs to be on it will stay off.   Edit to add:  it doesn't matter if this runs when the heat is off (summer) it just makes sure its off.  the real issue is that the OFF program is disabled, so we need to make sure it's running and the best way to do that is just force off state anytime we boot the ISY, so that if the gutter heat is turned on the ON program will have started the off program.

So to specifically answer the question "Also am I supposed to run the Enable Run at Startup in right hand context menu  after ISY starts up  ?"  No, you don't have to do anything after the ISY starts up, but we do want the "Run at Startup" program attribute turned on for this program. 

and to this question: "I forgot to ask whether or not the last program "Gutter Heater Initialize  (run at startup)" ) was enabled or disabled  ?"  Enabled is correct.

 

 

Link to comment

I still haven't understood the third program "Gutter Heater Initialized (run at startup)".  I see all 3 programs listed 2 enabled, and 1 not enabled.  But non of the programs in my entire system show Run At Startup.  I believe my last problem is how do I turn the "Run At Startup" attribute on for the third program.

Link to comment
6 minutes ago, satwar said:

I still haven't understood the third program "Gutter Heater Initialized (run at startup)".  I see all 3 programs listed 2 enabled, and 1 not enabled.  But non of the programs in my entire system show Run At Startup.  I believe my last problem is how do I turn the "Run At Startup" attribute on for the third program.

1 - Highlight the row in the Summary tab by clicking the name of the program.

image.png.11ed007885d98be057ba26cb675195ab.png

2. Right click and choose "Enable Run at Startup"  (with the cursor on "Enable Run at Startup" as shown you must left click to make the action occur)

image.png.f193397cdee942620d3054a1405751bf.png

3. View the Run at Startup column to ensure it now says ON.

image.png.eb6e87180d1fd80866632d5a370b22b1.png

4. Done.

Alternatively I just noticed (I've never used until now) you can also click the row to hi-light it, then use that dropdown above the table to choose "Enable Run at Startup" then click the Apply button to the enable the attribute.

 

If these steps are not working for you please check the Help > About menu and make certain that your "Firmware version" and "UI version" numbers match exactly.

 

Link to comment
  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.


  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      36.9k
    • Total Posts
      370.2k
×
×
  • Create New...