Announcement

Collapse
No announcement yet.

Counter

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

  • Counter

    Hello,
    I have a device corresponding to a meter (gaz) incrementing as there is gaz consumption.
    I would like to have the value difference of this counter between two times.
    I started a event where I have a timer that goes to 1mn but I am struggling to have the value between two times ( maybe a virtual device is the solution ?)
    Should I use a specific script or can I do it with the event engine ?

    Help would be greatly appreciated !

  • #2
    Not an expert with HS3 but AFAIK you would need something else to get this. I do similar with HS2 (no counters but done in devices) and I have to log the information to a database every minute and then later perform calculations to pick out counts between time periods.
    My Plugins:

    Pushover 3P | DoorBird 3P | Current Cost 3P | Velleman K8055 3P | LAMetric 3P | Garadget 3P | Hive 3P |
    Yeelight 3P | Nanoleaf 3P

    Comment


    • #3
      counters

      Is there no way to use only Events with Timers/counters
      Thanks

      Comment


      • #4
        I am using the timers and counters to monitor my HVAC system. We are monitoring start cycle (counter) for the current day, filter runtime and lifetime. I am also monitoring the runtime (timer) for the current day, filter runtime and lifetime. I am also using Jon00's Graphing Utility to graph the results. It works very well. For each unit, to make this work there are 4 events, then there are a few shared events such as the nightly reset and the graphing build. I attached a few screen shots of the counters, timers, graphing devices and events.

        If you need some screen shots of the events, let me know.

        I originally built it with counters and timer for every day and thought that was overkill. The Jon00 Graphing Utility allows me to see the daily info if I want. I originally thought that doing this through the event engine would be difficult, but once I got used to it, it actually worked out very well.

        I have more events setup based on the data that is collected, such as emails are sent when the filter has X number of hours on it, letting us to know it is time for a replacement or cleaning.
        Attached Files
        Billy Draper

        Comment


        • #5
          Billy , can you explain a little bit in how you did the counter for the run time on your air-conditioner in homeseer. I was trying use counters and timers but I don't understand then very well. Thank you
          Hector
          ____________________________________
          Win.2003 OS, HS3
          BLDSC,BLstat,BLRadar,BLRamdom,BLOccupied
          BLups,BLrain8,HSTouch,Ultrajones Weatherbug,
          MyTrigger,ACRF2,W800,Zwave
          AP800,Honeywell Stat

          Comment


          • #6
            Sure Hector, no problem. I am using the counters to count the number of times that my HVAC turns on. The timers display the runtime that the HVAC unit has been on.

            I have two units to heat and cool my home, so I track each one individually. Both units have their own Z-Wave thermostat. I have the Trane Z-Wave thermostats, they seem to work very well, see http://store.homeseer.com/store/Tran...-P1039C67.aspx

            I am using three timers and counters per HVAC unit. In the examples below, I am only showing the counters and timers for the Downstairs unit.

            Timers
            Uptime-Thermostat-Downstairs-CurrentRuntime: Current runtime for today
            Uptime-Thermostat-Downstairs-FilterRuntime: Current runtime on the filter
            Uptime-Thermostat-Downstairs-TotalRuntime: Current runtime on the unit

            Counters
            Uptime-Thermostat-Downstairs-CurrentCycles: Current on cycles for today
            Uptime-Thermostat-Downstairs-FilterCycles: Filter on cycles
            Uptime-Thermostat-Downstairs-TotalCycles: Total on cycles

            Events
            I have 4 events for each unit, some have stuff for both units that cleanup yesterday and the start of a new day. There are also events that send emails when the filters need changing or the when I change a filter to rest the filter counter and timer. There are other events by I am sure you get the idea. I tried to explain a few of the events below and include a screenshot.

            Uptime Thermostat Downstairs Start Normal: This event starts the clock ticking for the 3 timers when the HVAC unit Operating State changes to Cooling, Heating or Fan Only. It also increments the 3 counter by one.

            Uptime Thermostat Downstairs Stop: This event stops the clock ticking for the timers when the HVAC unit Operating State changes to Idle or if the time is 11:59pm

            Uptime Thermostat Downstairs Start Midnight: This event runs at 12:00:02am and checks to see if the HVAC unit Operating State is Cooling, Heating or Fan Only and if it is, the clock starts ticking for the 3 timers and increments the 3 counter by one.

            Uptime Thermostat Reset: This event runs at 12:00:01am and sets the current runtime timer to zero seconds and the counter to zero, for the start of a new day.

            Building the Graphs: I use Jon00 Graphing Utility and it runs every hour to build the graphs in the virtual devices. This is real easy to setup, let me know if you need details.

            I hope this helps.
            Attached Files
            Billy Draper

            Comment


            • #7
              Counters

              I would like to thank all of you for the advices.
              In my case, I think it is a bit different as I would like to monitor consumptions between two times but there is a need for doing some calculation ( value 1 minus value 2) and this is what I don't know how to do with the event engine.
              Would a simple script do the job ?
              Any help would be super as I am not a programmer !
              Thanks a lot
              Please help

              Comment


              • #8
                Hi Jhon,
                Is a my opinion but the timers are not well implemented in hs3... is it very hard to use in the event.
                I'm using a work around to control the position of my sunblinds...
                I think that this can help you.
                I have 2 event:
                1st event is triggered when device "motor blind" go to ON ---> action: start "blind timer".
                2nd event is triggered when the device "motor blind" go to OFF ---> action: start "blind script"
                (in the timer section you have to create a timer, in my example "blind timer")

                The script:
                Code:
                Sub Main(ByVal strDevRef As String)
                
                Dim zero_blind_time As String = 25 '''set the initial or previous value
                Dim ts_blind As TimeSpan = hs.TimerValue("blind timer")  '''read the blind timer
                Dim second_blind As String = ts_blind.ToString  '''convert the timespan to string
                Dim sec_blind As Double = Mid(second_blind, 7, 2)  '''I take only the seconds (not hours and minute)
                Dim time_difference as double
                time_difference = zero_blind - sec_blind  '''difference between first value and second value 
                ''' now I put this value into device value and device string
                hs.SetDeviceValueByName("test new blind position", time_difference)
                hs.SetDeviceStringByName("test new blind position", time_difference, True)
                Thins is only an example... don't ask me why I use string, double etc, but for me work :-)
                In other word I take the timer value, transform it into string, then i take only the seconds value and use it to have the new device value...

                Now, for a new project I need to use a value in milliseconds but I don't know who to do it...
                I'm trying with a VB counter:

                Code:
                Option Explicit On
                Private Declare Function GetTickCount64 Lib "kernel32" () As Long
                
                Dim lngStart As Long
                Dim lngFinish As Long
                Dim lngCounterOne As Long
                Dim lngCounterTwo As Long
                
                ' Record the start "time"
                    lngStart = GetTickCount64()
                
                ' Some process that you want to time
                    For lngCounterOne = 1 To 1000000
                        For lngCounterTwo = 1 To 5
                        Next lngCounterTwo
                    Next lngCounterOne
                
                ' Record the finish "time"
                
                    lngFinish = GetTickCount64()
                
                ' Display the difference
                    MsgBox(CStr(lngFinish - lngStart))
                GetTickCount64() return a value in milliseconds from the pc starting.

                If some expert can help me...

                EDIT: I'm working on milliseconds (but it's the same in seconds or minute format) format... I'm near to the solution :-)
                So I'm tray to converting the timespan from timer to totalmilliseconds or totalseconds... :-)

                EDIT2: Ok John, I have the solution (mmmhh, I think!), if you need help ask to me.
                Last edited by khriss75; August 12th, 2014, 05:49 AM.

                Comment


                • #9
                  Originally posted by bdraper View Post
                  Sure Hector, no problem. I am using the counters to count the number of times that my HVAC turns on. The timers display the runtime that the HVAC unit has been on.

                  I have two units to heat and cool my home, so I track each one individually. Both units have their own Z-Wave thermostat. I have the Trane Z-Wave thermostats, they seem to work very well, see http://store.homeseer.com/store/Tran...-P1039C67.aspx

                  I am using three timers and counters per HVAC unit. In the examples below, I am only showing the counters and timers for the Downstairs unit.

                  Timers
                  Uptime-Thermostat-Downstairs-CurrentRuntime: Current runtime for today
                  Uptime-Thermostat-Downstairs-FilterRuntime: Current runtime on the filter
                  Uptime-Thermostat-Downstairs-TotalRuntime: Current runtime on the unit

                  Counters
                  Uptime-Thermostat-Downstairs-CurrentCycles: Current on cycles for today
                  Uptime-Thermostat-Downstairs-FilterCycles: Filter on cycles
                  Uptime-Thermostat-Downstairs-TotalCycles: Total on cycles

                  Events
                  I have 4 events for each unit, some have stuff for both units that cleanup yesterday and the start of a new day. There are also events that send emails when the filters need changing or the when I change a filter to rest the filter counter and timer. There are other events by I am sure you get the idea. I tried to explain a few of the events below and include a screenshot.

                  Uptime Thermostat Downstairs Start Normal: This event starts the clock ticking for the 3 timers when the HVAC unit Operating State changes to Cooling, Heating or Fan Only. It also increments the 3 counter by one.

                  Uptime Thermostat Downstairs Stop: This event stops the clock ticking for the timers when the HVAC unit Operating State changes to Idle or if the time is 11:59pm

                  Uptime Thermostat Downstairs Start Midnight: This event runs at 12:00:02am and checks to see if the HVAC unit Operating State is Cooling, Heating or Fan Only and if it is, the clock starts ticking for the 3 timers and increments the 3 counter by one.

                  Uptime Thermostat Reset: This event runs at 12:00:01am and sets the current runtime timer to zero seconds and the counter to zero, for the start of a new day.

                  Building the Graphs: I use Jon00 Graphing Utility and it runs every hour to build the graphs in the virtual devices. This is real easy to setup, let me know if you need details.

                  I hope this helps.
                  Do you have any thoughts about how I might accomplish this with a zoned heating system? My I have 3 zones, but only 1 AC and Furnace. This is probably possible, but I can't seem to wrap my head around how I'd go about doing this.

                  Comment


                  • #10
                    Without having any data to look at, it is hard to wrap my arms around monitoring the system to provide a solution. Do you monitor each zone?

                    You could check out Jons excellent graphing program here http://board.homeseer.com/showthread.php?t=171875Click image for larger version

Name:	hvac1.jpg
Views:	1
Size:	84.3 KB
ID:	1188076

                    These are the events that we use to record and build the chart for one of the thermostats. Some of the events may include both thermostats, since you only have one, make any necessary adjustments.

                    This event is triggered when the thermostat signals to the unit that it is operating and resumes the timers and increments the counters.
                    Click image for larger version

Name:	hvac2.png
Views:	1
Size:	73.7 KB
ID:	1188077

                    This event is triggered when the thermostat signals to the unit that it is not operating and stops the timers.
                    Click image for larger version

Name:	hvac3.png
Views:	1
Size:	44.8 KB
ID:	1188078

                    This event is triggered a few seconds after midnight if the thermostat is operating and resumes the timers and increments the counters for the new day.
                    Click image for larger version

Name:	hvac4.png
Views:	1
Size:	81.3 KB
ID:	1188079

                    This event is triggered a few seconds after midnight and sets the timers to zero seconds and resets the counters for the new day.
                    Click image for larger version

Name:	hvac5.png
Views:	1
Size:	48.3 KB
ID:	1188080

                    This event is triggered a few seconds before midnight and updates the database table with the days accumulated values and builds the chart.
                    Click image for larger version

Name:	hvac6.png
Views:	1
Size:	38.7 KB
ID:	1188081
                    Billy Draper

                    Comment


                    • #11
                      Continued from last post...

                      HomeSeer sends weekly thermostat reports, we also have notifications sent once we reach a number of hours on the filters, the event below can be triggered from a HSTouch screen or a web page when we change the filters.
                      Click image for larger version

Name:	hvac7.png
Views:	1
Size:	40.3 KB
ID:	1188082

                      Included below are the settings that I use for building the attached “HVAC Runtime Information (last 14 days)” chart. The chart style 17 [ChartStyle17] is my own. When I downloaded the plugin from Jon, the last style was 15 (see page 19 in the document) , so I added 16 and 17 for my own use.

                      File = Jon00DBCharting.ini
                      Code:
                      [DBTable3]
                      Name=Thermostats
                      Delay=
                      Data1=$counter:Thermostat-Downstairs-Cycles-Today
                      Data1Label="Downstairs Cycles[nl]Max:[max][nl]Min:[min][nl]Avg:[avr]"
                      Data1Multiplier=
                      Data2=$counter:Thermostat-Upstairs-Cycles-Today
                      Data2Label="Upstairs Cycles[nl]Max:[max][nl]Min:[min][nl]Avg:[avr]"
                      Data2Multiplier=
                      Data3=$timerh:Thermostat-Downstairs-Runtime-Today
                      Data3Label="Downstairs Runtime[nl]Max:[max][nl]Min:[min][nl]Avg:[avr]"
                      Data3Multiplier=1|2
                      Data4=$timerh:Thermostat-Upstairs-Runtime-Today
                      Data4Label="Upstairs Runtime[nl]Max:[max][nl]Min:[min][nl]Avg:[avr]"
                      Data4Multiplier=1|2
                      Data5=
                      Data5Label=
                      Data5Multiplier=
                      Data6=
                      Data6Label=
                      Data6Multiplier=
                      Data7=
                      Data7Label=
                      Data7Multiplier=
                      Data8=
                      Data8Label=
                      Data8Multiplier=
                      Data9=
                      Data9Label=
                      Data9Multiplier=
                      Data10=
                      Data10Label=
                      Data10Multiplier=
                      Timer=
                      PurgeDays=180
                      File = Jon00DBChartingCreate.ini
                      Code:
                      [Create5]
                      Name=HVAC Runtime Information (last 14 days)
                      DBTable=3
                      ChartStyle=17
                      ChartPalette=12
                      TitleText=HVAC Runtime Information (last 14 days)
                      XAxisText=Month/Day Sunrise: [sunrise]   Sunset: [sunset]
                      YAxisText=Runtime Hours
                      YAxisTextSec=Cycles
                      AxisXFormat=MMM dd
                      AxisYFormat=
                      AxisYFormatSec=
                      AxisYMaximum=30
                      AxisYMaximumSec=140
                      UseData1=2
                      UseData2=2
                      UseData3=1
                      UseData4=1
                      UseData5=0
                      UseData6=0
                      UseData7=0
                      UseData8=0
                      UseData9=0
                      UseData10=0
                      ChartTimeStart=14
                      ChartTimeFinish=0
                      ChartTimeFormat=d
                      BaselineValue=0
                      BaselineValueSec=0
                      CreateTable=1
                      CreateVD=1
                      AutoUpdate=0
                      PreventImageCache=0
                      ShowAllValues=0
                      File = Jon00DBChartingStyle.ini
                      Code:
                      [ChartStyle17]
                      Width=1000
                      Height=520
                      ResizeXY=640,480
                      AxisYMaximum=Auto
                      AxisFontSize=12
                      AxisFontWeight=1
                      AxisTextFont=
                      AxisLabelFont=
                      AxisXColor=Thistle
                      AxisYColor=Thistle
                      AxisYColorSec=Thistle
                      AxisXDataColor=
                      AxisYDataColor=
                      AxisYDataColorSec=
                      AxisXInterval=1
                      AxisYInterval=5
                      AxisYIntervalSec=20
                      AxisXIntervalType=d
                      AxisXLabelColor=
                      AxisYLabelColor=
                      AxisYLabelColorSec=
                      AxisXLabelFontSize=
                      AxisYLabelFontSize=
                      AxisYLabelFontSizeSec=
                      AxisXLabelFontWeight=
                      AxisYLabelFontWeight=
                      AxisYLabelFontWeightSec=
                      AxisXTextFontWeight=
                      AxisYTextFontWeight=
                      AxisYTextFontWeightSec=
                      AxisXTextRotation=
                      AxisYTextRotation=
                      AxisYTextRotationSec=
                      AxisXTextSize=
                      AxisYTextSize=
                      AxisYTextSizeSec=
                      AxisXTickColor=Gray
                      AxisYTickColor=Gray
                      AxisYTickColorSec=Gray
                      BorderSkinStyle=16
                      BorderlineColor=Silver
                      BorderlineDashStyle=5
                      BorderlineWidth=6
                      ChartAreaBackgroundColor=FloralWhite
                      ChartAreaBackgroundGradientStyle=2
                      ChartBackgroundSecondaryColor=Gainsboro
                      ChartAreaPosition=1,5,80,98
                      ChartBackgroundColor=White
                      ChartBackgroundGradientStyle=7
                      ChartBorderlineColor=Black
                      ChartBorderlineDashStyle=6
                      ChartBorderlineWidth=0
                      DrawingStyle=2,2,2,2,2,2,2,2,2,2
                      Font=Sans Serif
                      GridColor=Thistle
                      GridColorMinor=MistyRose
                      GridColorSec=Purple
                      GridColorSecMinor=
                      GridXWidth=1
                      GridXWidthMinor=1
                      GridYWidth=1
                      GridYWidthMinor=1
                      GridYWidthSec=1
                      GridYWidthSecMinor=1
                      ShowLegend=1
                      LegendBackGroundColor=Transparent
                      LegendColor=
                      LegendFont=
                      LegendFontSize=
                      LegendFontWeight=
                      LegendPosition=2
                      MarkerColor=red,blue,red,blue,red,red,red,red,red,red
                      Markersize=4,4,4,4,4,4,4,4,4,4
                      Markerstep=1,1,1,1,1,1,1,1,1,1
                      MarkerType=4,4,4,4,4,4,4,4,4,4
                      PlotBorderWidth=2,2,2,2,2,2,2,2,2,2
                      PlotType=27,27,31,31,31,31,31,31,31,31
                      PlotColor=,,LightCoral,Green
                      ShowValues=0,0,1,1,0,0,0,0,0,0
                      TitleColor=
                      TitleFontSize=12
                      TitleFontWeight=1
                      3DEnable=0
                      3DInclination=30
                      3DRotation=20
                      3DWallWidth=10
                      Hope this helps.
                      Billy Draper

                      Comment


                      • #12
                        Thank you very much for this input, I was actually able to get some success with what I wanted using a single virtual device and then mimicking the events that you setup for your hvac system. See attached for how my rules look like that trigger the virtual device into different states:



                        I've had this running for a couple days now, and it appears to be functioning like I'd have hoped. I'll plan to further extend this functionality now that you've given me even more to work with! Can't thank you enough, this is awesome!

                        Comment


                        • #13
                          Funny, I just started doing the same thing as a project to interface directly to my ELK which controls all three t-stats. This is a side project as part of the effort to control the air exchanger such that it only turns on when the heater is actually active.

                          Now the big question. Has all of the logging, graphing, and such actually helped you decrease energy costs? My point being that I hope the investment in time to create the monitoring script actually produced something tangible and productive such as to decrease energy costs...

                          Cool. Thanks..
                          HomeSeer 2, HomeSeer 3, Allonis myServer, Amazon Alexa Dots, ELK M1G, ISY 994i, HomeKit, BlueIris, and 6 "4k" Cameras using NVR, and integration between all of these systems. Home Automation since 1980.

                          Comment


                          • #14
                            Originally posted by Krumpy View Post
                            Funny, I just started doing the same thing as a project to interface directly to my ELK which controls all three t-stats. This is a side project as part of the effort to control the air exchanger such that it only turns on when the heater is actually active.

                            Now the big question. Has all of the logging, graphing, and such actually helped you decrease energy costs? My point being that I hope the investment in time to create the monitoring script actually produced something tangible and productive such as to decrease energy costs...

                            Cool. Thanks..
                            Holy smokes, another person in MPLS with an ELK? This is unheard of! I know your question is not directed to me, but I'll give my input on it anyhow: you live in a wicked cold climate, your heating costs are going to suck regardless, haha.

                            Comment


                            • #15
                              Originally posted by Krumpy View Post
                              Funny, I just started doing the same thing as a project to interface directly to my ELK which controls all three t-stats. This is a side project as part of the effort to control the air exchanger such that it only turns on when the heater is actually active.

                              Now the big question. Has all of the logging, graphing, and such actually helped you decrease energy costs? My point being that I hope the investment in time to create the monitoring script actually produced something tangible and productive such as to decrease energy costs...

                              Cool. Thanks..
                              Good question. Actually my goal was not really to decrease energy cost from the HVAC units, if we did that was going to be an added bonus. I really wanted visibility into the units usage, run time and notification of events. We live in White House, TN and the cost of electricity is in my opinion very reasonable. Some would argue that it is high, however since I work for a local power company, I know what other companies charge in different regions. My real goal was to track run time of the units, tracking the actual usage was a added benefit. Tracking the run time allowed me to change filters on a individual unit run time basis, rather than just changing both every 2 months or whatever... My wife likes to buy those expensive filters and yea I know it slows the airflow, but hey its what she wants... HomeSeer actually sends a text to lets us know when a filter has reached its life expectancy, so we can pick up a new one. In the summer, the upstairs filter is replaced more frequently than the downstairs unit... has this saved money, I would say yes (a little), as we do not replace our filters as much. I am currently adding service run time. I want to track how long the units run between service and preventative maintenance and based on the setup, it will be fairly easy.
                              Billy Draper

                              Comment

                              Working...
                              X