Jump to content

Event Log


heitjer

Recommended Posts

All,

I want to capture certain events in a custom build log. I found that you can use @webpage and @append to build this log through the messages. I just can't figure out where this Webpage should reside. Kevin posted a few post on how to make a custom log exactly what I need. I am struggling though on how to achieve this. He mentioned "Configuration > Networking > Web Server" and I can't get there. Is this on the ISY, on your computer or where?

 

I am using Linux at home as a desktop and my machine is mostly off. I have a NAS server that runs Apache and I can use it to host this log (preferred method).

 

I assume I would have to use something like this:

 

@webpage:@append:192.168.x.x/ISYfolder/log.html

 

This does not seem to work. Can someone guide me through this please or point to a documentation?

Link to comment

Nope.... It sound like I need that. Another $50 to just create web pages on the go?

You can create web pages on the go with any number of devices......

 

For the ISY to perform certain functions (such as making API and other network calls), the optional module is needed that is not included in the base device, because not everyone has need for it. This is a way the initial cost of the device is kept down, and people that don't need it are not paying for it.

 

You can either buy the networking module, or subscribe to the ISY Portal (which includes use rights to the module, and so much more!).

 

IMO - it was the best $50 I ever spent. I do *so much* with it. Just look at the Network Resources page on the Wiki to get a taste of the possibilities.

Link to comment

I'll second the value of the Network Module. It allows me to control MiLight RGBWW LED strips as well as Hue bulbs in programs.

 

I use the logging contructs to track my HVAC systems and have found many bugs in my HVAC control system algorithms with MWaremans charting patches. This is all kept inside ISY with no other PC required except for the viewing of the charting.

Link to comment

I think one of the older io_guy programs supported subscribing to the ISY and logging locally (isy_logger ?). This needs an always on computer though (like a RaspberryPI) - and the newer versions are being built as a node server (requires PRO and the network module).

Link to comment

If you want examples of programs to record events I have ones that square off the chart lines generated also. Makes the output look more realistic.

 

I record every HVAC change as well as record every half hour without events. It has caught a lot of HVAC program logic errors for me.

Link to comment

First program is one that creates a new file each month and all recordings are to that file until another file is started. This is done by a variable that holds the number of the month as a suffix to the file name. A starting entry data line is also injected to start the CSV file off.

----------------------------------------------------

VenStat Log.newFile - [iD 010F][Parent 00F8]

 

If

. Time is 12:10:00AM

. And $sISY.DayOfMonth is 1

 

Then

. $Log.webfile.Month = [Current Month (Jan=1, Feb=2, etc.)]

. $Log.webfile.Month Init To $Log.webfile.Month

. Wait 2 seconds

. Send Notification to 'eMail Larry' content 'Logger - HVAC Header'

. Wait 5 seconds

. Run Program 'VenStat Log.cycle' (Then Path)

 

Else

. - No Actions - (To add one, press 'Action')

 

 

------------------------------------------------------------

 

 

All recordings of data lines are done through the same program (Then) call.

The purpose of this is consistency and to restart the timer that records every 30 minutes if there is no event action to record.

------------------------------------------------------------

VenStat Log.cycle - [iD 011E][Parent 00F8]

 

If

. Time is 12:00:15AM

 

Then

. Repeat Every 30 minutes

. Send Notification to 'eMail Larry' content 'Logger - HVAC Entry'

 

Else

. - No Actions - (To add one, press 'Action')

-----------------------------------------------------------------------

Link to comment

This is the simplest of triggered recording without any fancy tricks

----------------------------------------------

VenStat Log.tempChange - [iD 0050][Parent 00F8]

 

If

. 'Gathering Room / GathRm VenStat' Temperature >= -50.0°

 

Then

. Wait 1 second

. Run Program 'VenStat Log.cycle' (Then Path)

 

Else

. - No Actions - (To add one, press 'Action')

----------------------------------------------------------

 

 

 

To record data from events on my HVAC system, most parameters use a variable that gets written to the CSV data file.

 

This makes it easier to write your notifications just using variable numbers and not devices.

The big reason is to square off the presentation of the lines on the charting by recording the previous value, changing it and recording it again eliminating the long sloped line between points.

 

In this example I chose the values 25 and 25 for Off/On to put them on the graph close to the temperature charting line and let the If section decide which value to place.

 

Note the double call to the data writer to recordthe previous value one more time before updating.

---------------------------------------------------------

VenStat Log.HumidifierChange - [iD 00F4][Parent 00F8]

 

If

Status (Old) 'Foyer / Humidifier' is Off

 

Then

. Run Program 'VenStat Log.cycle' (Then Path)

. Wait 4 seconds

. $Log.webfile.HumFan = 25

. $Log.webfile.HumFan Init To $Log.webfile.HumFan

. Run Program 'VenStat Log.cycle' (Then Path)

 

Else

. Run Program 'VenStat Log.cycle' (Then Path)

. Wait 4 seconds

. $Log.webfile.HumFan = 26

. $Log.webfile.HumFan Init To $Log.webfile.HumFan

. Run Program 'VenStat Log.cycle' (Then Path)

---------------------------------------------------------------------

 

 

Here is the Heat/Cool/Off/Waiting mode logger.

Again I picked a value that would be in the way on the chart.

I started with the value of 25 and added the value from the stat resulting in an addition of 0-5. Some interpretation of values needs to be done on the graph to understand what mode the stat switched to. I was surprised to find the thermostat throws a lot of Waiting time out.

This program may need some cleanup s the trigger for the program is the same data s I am recording. IIRC I found some delays in updating and may have remnant of experimentation yet.

-----------------------------------------------------------------------

VenStat Log.heatPointChange - [iD 010E][Parent 00F8]

 

If

. 'Gathering Room / GathRm VenStat' Heat Setpoint >= 15.0°

 

Then

. Run Program 'VenStat Log.cycle' (Then Path)

. Wait 5 seconds

. Run Program 'VenStat Log.cycle' (Then Path)

 

Else

. - No Actions - (To add one, press 'Action')

------------------------------------------------------

Link to comment

Here is a simple fan status logger.
Again a variable is used to square off the graphic representation.

VenStat Log.fanChange - [iD 0111][Parent 00F8]

If
        'Gathering Room / GathRm VenStat' Fan State >= Off
 
Then
        Run Program 'VenStat Log.cycle' (Then Path)
        Wait  4 seconds
        $Log.webfile.VenFan  = 17
        $Log.webfile.VenFan += 'Gathering Room / GathRm VenStat' Fan State
        $Log.webfile.VenFan Init To $Log.webfile.VenFan
        Run Program 'VenStat Log.cycle' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 

Link to comment

How do you do this? Where does this go?

 

 

Also - is this a variable that you set or does it come from the system? I can't find it anywhere.

The first VenStat Log.newFile is the name of the ISY program that creates and writes the headers of the columns in the database file.

 

The variable is created by myself using a separate program to extract the date. This requires V5 to get the date from ISY. You could just use any filename to start out. Mine switches files every first of the month. The "$s" indicates it is a state variable and I use it all through my system.

 

See Next post

Link to comment

Here is my date extraction tool
Note: calculations are done in Integer variables and then copied to State variables to avoid multiple triggers.
----------------------------------
Set MM.DD - [iD 00B8][Parent 0006]

If
 .  . Time is 12:00:01AM
 . Or Time is 3:00:01AM
 . Or Time is 6:00:01AM

Then
 . $sISY.DayOfWeek Init To [Current Day of Week]
 . $sISY.DayOfWeek = [Current Day of Week]
 . $sISY.DayOfMonth Init To [Current Day of Month]
 . $sISY.DayOfMonth = [Current Day of Month]
 . $ISY_Date.scratchpad = [Current Day of Month]
 . $ISY_Date.scratchpad /= 100
 . $ISY_Date.scratchpad += [Current Month (Jan=1, Feb=2, etc.)]
 . $sISY.MM.DD Init To $ISY_Date.scratchpad
 . $sISY.MM.DD = $ISY_Date.scratchpad

Else
 . - No Actions - (To add one, press 'Action')
------------------------------------------------

Link to comment

Archived

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


  • Recently Browsing

    • No registered users viewing this page.
  • Who's Online (See full list)

    • There are no registered users currently online
  • Forum Statistics

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