Announcement

Collapse
No announcement yet.

Jon00 Database Charting Utility for Homeseer 3 & Homeseer 4

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

  • If as you say that your zones are only used occasionally, a few extra bytes is not going to make much difference to your database size!
    Jon

    Comment


    • Originally posted by jon00 View Post
      Maybe record the temperatures at shorter intervals?
      Jon00,
      I thought about that but was concerned about the number of data points on the graph. Right now I load the data base and plot at 15 minute interval, for 4 locations, for 24 hrs: Number of plot points=4 lines X 4/hr X 24 hr=384 data points.
      If I upped the sample rate to 20/hr(every 3 min) the Number of Data Points to plot is almost 2000. When do I have too many and the program will not plot?

      Thanks
      Bob

      Comment


      • Originally posted by jon00 View Post
        If as you say that your zones are only used occasionally, a few extra bytes is not going to make much difference to your database size!
        It should only be about 112 extra data points every few days and only during irrigation season which tends to be 3-4 months a year so likely not a large impact

        Cheers
        Al
        HS 3.0.0.548: 1990 Devices 1172 Events
        Z-Wave 3.0.1.262: 126 Nodes on one Z-Net

        Comment


        • Originally posted by BobSpen View Post
          Jon00,
          I thought about that but was concerned about the number of data points on the graph. Right now I load the data base and plot at 15 minute interval, for 4 locations, for 24 hrs: Number of plot points=4 lines X 4/hr X 24 hr=384 data points.
          If I upped the sample rate to 20/hr(every 3 min) the Number of Data Points to plot is almost 2000. When do I have too many and the program will not plot?

          Thanks
          Bob
          2000 is fine. There is a setting in the Jon00DBCharting.ini:

          [Settings]
          MaxDataPoints=6000

          Depending on the chart style, you should be able to go up to 8000 before it fails to plot.
          Jon

          Comment


          • This is a GREAT addition and so useful. I have one question though.

            I just started using the fitseer to track and plot my weight form the fitbit bathroom scales. I want to chart this but i only need a new chart point added each time the scales update. is there a way to only do a bar graph showing each time the weight changes or the scale is used ( shown my an update on the time on the virtual device. ?
            detail of setup in profile. Link to videos of my projects there as well. Over 300 scripts running every min and counting

            Comment


            • Probably best to manually update the database via an event and trigger how you wish.

              From the docs:

              Manual updating of a database is achieved via a standard HS3 event.
              Select "Control a Device"
              From the Drop down select "Utility Jon00 DBChart Database Update"
              Finally select "Update [DBTableX] where X is the database number you wish to update.
              If you leave the Timer entry blank under the [DBTableX], then the database can only be updated via a manual update.


              (The DBTable/timer entries are within Jon00DBCharting.ini)
              Jon

              Comment


              • Love, love, love this program! Donation is in your inbox!

                My RadioThermostat plugin devices update with bad values frequently. I'm using the Data1MinValue to filter those. Contrary to the documentation, the database is recording the specified Data1MinValue rather than the "previous in-range value".

                What I'd actually prefer, is to ignore and not log the value at all.

                Thanks for the great work!

                Comment


                • On the ASPX page, if I set the "to" time in the future, I get
                  Error: Chart could not be created - check the Homeseer log
                  with nothing actually in the log. Is this intentional? It took me quite a bit to figure it out.

                  Comment


                  • Documentation Request: It would be helpful if you had a sample of each chart type printed in the doc.

                    Comment


                    • Also as maverick reported, I do not get a popup when left or right clicking on the tray icon. The only way I can stop it is Task Manager, End Process.

                      Comment


                      • Originally posted by KurtLutterman View Post
                        Love, love, love this program! Donation is in your inbox!

                        My RadioThermostat plugin devices update with bad values frequently. I'm using the Data1MinValue to filter those. Contrary to the documentation, the database is recording the specified Data1MinValue rather than the "previous in-range value".

                        What I'd actually prefer, is to ignore and not log the value at all.

                        Thanks for the great work!
                        I was working with MWaite with this feature and it got changed after I wrote the docs. I'll get it updated.

                        If you are updating the database on a recurring basis, it has to record a value.

                        Originally posted by KurtLutterman View Post
                        On the ASPX page, if I set the "to" time in the future, I get
                        Error: Chart could not be created - check the Homeseer log
                        with nothing actually in the log. Is this intentional? It took me quite a bit to figure it out.
                        Again, I do know about this but have not put any time to correct the bug.

                        Originally posted by KurtLutterman View Post
                        Documentation Request: It would be helpful if you had a sample of each chart type printed in the doc.
                        Fair point.

                        Originally posted by KurtLutterman View Post
                        Also as maverick reported, I do not get a popup when left or right clicking on the tray icon. The only way I can stop it is Task Manager, End Process.
                        That bug has been corrected and will be available in the next release. I was assisting BobSpen with a feature request which has now been added. As update will be available soon.
                        Jon

                        Comment


                        • Originally posted by bartg View Post
                          It did had a challange adding device values into the database which keep adding (no todays per day). What I did for that is creating Virtual devices for a day, week and month. With a small script I calculate each day/week/month total and have Jon's graphing tool importing that into the database. So I have an event that runs at midnight to calculate the total for that day. In the devicevalue is the every increasing value and in the devicestring is the total for that day which the graphing utily writes in the database. If anybody is intrested in more details, please let me know.

                          Regards,
                          Bart
                          Hello Bart, if you could share the details/scripts that you are using for the day/week/month totals it would be greatly appreciated. I am trying to chart my hourly and daily water usage and am struggling with the best way to do this. I currently only have one device (Water Meter) that contains the meter reading (total liters) and I am able to chart this using Jon's utlity, but now I would like to calculate and chart hourly and daily usage.

                          Comment


                          • Here is a script which uses an ini file to store data and calculate the hourly and daily total. You need to change the 1234 to the device reference number of your water device.

                            Code:
                            Sub Main(ByVal Parm As Object)
                            
                                    Dim CurrentHour As Integer = DateTime.Now.ToString("HH")
                                    Dim CurrentValue As Double = hs.DeviceValueEx(1234)
                                    Dim HourlyValue As Double
                                    Dim DailyValue As Double
                                    Dim LastDailyValue As Double
                                    Dim LastHourlyValue As Double
                            
                                    'Setup ini file for first use to ensure numeric data
                                    If hs.GetINISetting("User", "Hourly", "", "Jon00DBChartingData.ini") = "" Then hs.SaveINISetting("User", "Hourly", "0", "Jon00DBChartingData.ini")
                                    If hs.GetINISetting("User", "Daily", "", "Jon00DBChartingData.ini") = "" Then hs.SaveINISetting("User", "Daily", "0", "Jon00DBChartingData.ini")
                            
                                    hs.Waitsecs(1)
                                    LastHourlyValue = hs.GetINISetting("User", "Hourly", "", "Jon00DBChartingData.ini")
                                    HourlyValue = CurrentValue - LastHourlyValue
                                    hs.SaveINISetting("User", "Hourly", CurrentValue.ToString, "Jon00DBChartingData.ini")
                            	hs.SaveINISetting("User", "LastHour", HourlyValue.ToString, "Jon00DBChartingData.ini")
                            	'hs.writelog("Hourly",HourlyValue.ToString)
                            
                                    If CurrentHour = 0 Then
                                        LastDailyValue = hs.GetINISetting("User", "Daily", "", "Jon00DBChartingData.ini")
                                        DailyValue = CurrentValue - LastDailyValue
                                        hs.SaveINISetting("User", "Daily", CurrentValue.ToString, "Jon00DBChartingData.ini")
                                        hs.SaveINISetting("User", "LastDay", DailyValue.ToString, "Jon00DBChartingData.ini")
                            	    'hs.writelog("Daily",DailyValue.ToString)
                                    End If
                                End Sub
                            Create an hourly recurring event referenced to the hour to run the script.

                            Finally define your data sources in the database settings as follows :

                            For the hourly rate:

                            PHP Code:
                            Data1=$ini:User,Lasthour,Jon00DBChartingData.ini 
                            For the daily rate:

                            PHP Code:
                            Data2=$ini:User,Lastday,Jon00DBChartingData.ini 

                            I've used Data1 and Data2 in this example - change as appropriate.

                            If using a line chart, you can then manually update the database after running this script with a short delay using the same hourly event.

                            Remember if manually updating, don't forget to disable the recurring timer by leaving the entry blank.

                            You may get strange readings for the first hour/day as the counter is set to 0 for calculation purposes.
                            Jon

                            Comment


                            • Jon, this is excellent info, thanks for this.

                              Comment


                              • Originally posted by dexterdom View Post
                                Jon, this is excellent info, thanks for this.
                                If you have issues getting it to work, please let me know.
                                Jon

                                Comment

                                Working...
                                X