Announcement

Collapse
No announcement yet.

How are recurring events processed?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    How are recurring events processed?

    Say if I have a recurring events for every sec with a condition. Does homeseer evaluate this event every sec?

    Reason is I would skip this if it consumes CPU time by creating such silly event. So I am wondering what's happening under the hood? How does HomeSeer process these recurring events or probably all other events?

    What is you scale and limits test results? Eg, max number of events, max actions per event etc?

    Oh and I am looking to limit my HW to an Atom 1.6 netbook, so I am looking for test results around those threshold. I believe the Hometroller fits the same spec.

    #2
    I would say yes, a recurring event is going to be attempting to process that event every second. I have never tried setting it this low though, I would say depending on what sort of actions you have you could end up taking longer than a second for the actions to process and then it tries to re-trigger. What sort of circumstances are you using an event like this?

    I certainly have triggered timers in plugins down to intervals of 75ms which does have an increased load effect on HS (I also run a 1.6 Atom) but is not that problematic. I don't know what additional overhead might be happening in HS vs. a .net timer event doing the same things though.

    Conditional only events are evaluated in some sort of timer every minute by HS which calls into the ConditionCheck function of various plugins to establish whether the conditions are true or not before firing.

    For some plugin triggers it is the plugin itself that checks the triggers by the .CheckTrigger/.PreCheckTrigger callback, its then upto whoever wrote the plugin to set the appropriate interval for these.

    I think there are users on here with hundreds of events without issue, actions perhaps the only limiting thing is you don't want too much (that would end up taking a long time to process) but its difficult to put a number on them as it depends what you are doing - I have events with 20 odd actions on them and they have no problems.

    Comment


      #3
      Originally posted by mrhappy View Post
      I would say yes, a recurring event is going to be attempting to process that event every second. I have never tried setting it this low though, I would say depending on what sort of actions you have you could end up taking longer than a second for the actions to process and then it tries to re-trigger. What sort of circumstances are you using an event like this?

      I certainly have triggered timers in plugins down to intervals of 75ms which does have an increased load effect on HS (I also run a 1.6 Atom) but is not that problematic. I don't know what additional overhead might be happening in HS vs. a .net timer event doing the same things though.

      Conditional only events are evaluated in some sort of timer every minute by HS which calls into the ConditionCheck function of various plugins to establish whether the conditions are true or not before firing.

      For some plugin triggers it is the plugin itself that checks the triggers by the .CheckTrigger/.PreCheckTrigger callback, its then upto whoever wrote the plugin to set the appropriate interval for these.

      I think there are users on here with hundreds of events without issue, actions perhaps the only limiting thing is you don't want too much (that would end up taking a long time to process) but its difficult to put a number on them as it depends what you are doing - I have events with 20 odd actions on them and they have no problems.
      Thanks alot for those great info! Reason I asked was I was reading up some threads about creating a countdown timer, and many folks were really happy using the Recurring event to trigger every second, say when the alarm state is Pending....

      When "Recurring" event is in the picture, I just found that hard to believe that people were happily using that. I am quite particular with optimization and performance, so that's why I asked just in case my thoughts were wrong about this type of Event in HS.

      I also remember reading about the per minute evaluation of events condition, but I think after some trials, I believe those are the "Conditional" events. Per minute is not that bad compare to every second. I want my CPU to be doing something more useful than to evaluate a timer ever that is in use probably once a week.

      So far i haven't have any event with more than 10 actions but I can surely see that will start growing as I get used to this software.

      Comment


        #4
        Originally posted by bmxtreme View Post
        Thanks alot for those great info! Reason I asked was I was reading up some threads about creating a countdown timer, and many folks were really happy using the Recurring event to trigger every second, say when the alarm state is Pending....

        When "Recurring" event is in the picture, I just found that hard to believe that people were happily using that. I am quite particular with optimization and performance, so that's why I asked just in case my thoughts were wrong about this type of Event in HS.

        I also remember reading about the per minute evaluation of events condition, but I think after some trials, I believe those are the "Conditional" events. Per minute is not that bad compare to every second. I want my CPU to be doing something more useful than to evaluate a timer ever that is in use probably once a week.

        So far i haven't have any event with more than 10 actions but I can surely see that will start growing as I get used to this software.
        I'd consider do you really need absolute accuracy with a countdown timer, I have an alarm clock script that runs every minute and checks the time - I don't need it to wake me up at 10:00:00, anywhere between 10:00:00 and 10:00:59 will do just fine so I check the time once a minute rather than any faster. I would avoid a recurring script running every second but thats just me.



        .

        Comment


          #5
          Depending on the nature of the event actions, there is probably a limit to how many events you can run every second before your computer will have trouble keeping up.
          Mike____________________________________________________________ __________________
          HS3 Pro Edition 3.0.0.548, NUC i3

          HW: Stargate | NX8e | CAV6.6 | Squeezebox | PCS | WGL 800RF | RFXCOM | Vantage Pro | Green-Eye | Edgeport/8 | Way2Call | Ecobee3 | EtherRain | Ubiquiti

          Comment


            #6
            Originally posted by bmxtreme View Post

            Oh and I am looking to limit my HW to an Atom 1.6 netbook, so I am looking for test results around those threshold. I believe the Hometroller fits the same spec.
            I ran on a netbook for over a year with no problems. Be sure to set the power management functions so that it never sleeps/hibernates and that your physical devices do not turn off to conserve power.
            HS4Pro on a Raspberry Pi4
            54 Z-Wave Nodes / 21 Zigbee Devices / 108 Events / 767 Devices
            Plugins: Z-Wave / Zigbee Plus / EasyTrigger / AK Weather / OMNI

            HSTouch Clients: 1 Android

            Comment


              #7
              I'm running on an N270 Atom, 1.6 GHz. I'm seeing some delays from what appear to be the queuing of communication to plug-ins. It's as if HS sends messages to the plug-ins in blocks, and when it gets behind, the blocks start to back up.

              The N270 is single core. It has multi-threading capability, but in the Atom the threads are not handled as efficiently as in other CPUs, as I understand it. I would not recommend a single core Atom for HS at this point.
              Mike____________________________________________________________ __________________
              HS3 Pro Edition 3.0.0.548, NUC i3

              HW: Stargate | NX8e | CAV6.6 | Squeezebox | PCS | WGL 800RF | RFXCOM | Vantage Pro | Green-Eye | Edgeport/8 | Way2Call | Ecobee3 | EtherRain | Ubiquiti

              Comment

              Working...
              X