Skip to content

Releases: GridProtectionAlliance/openHistorian

openHistorian v2.8.306 (POSIX) Beta

03 Jul 21:54
93c99f7
Compare
Choose a tag to compare
Pre-release

This is the initial beta release for openHistorian v2.8.306 for POSIX platforms

openHistorian POSIX Deployment Steps

Note: The following steps tested on Ubuntu 20.04

Prerequisites

  1. Make sure Mono is installed (this build tested with v6.12.0)

    https://www.mono-project.com/download/stable/#download-lin-ubuntu

  2. Make sure wget is installed, e.g.:

    sudo apt install wget

  3. Make sure unzip is installed, e.g.:

    sudo apt install unzip

  4. Make sure sqlite3 is installed, e.g.:

    sudo apt install sqlite3

  5. Make sure build-essential is installed, e.g.:

    sudo apt install build-essential

  6. Make sure PAM libraries, i.e., libpam0g-dev, are installed, e.g.:

    sudo apt install libpam0g-dev

Install Steps

# Download openHistorian POSIX release
wget https://github.com/GridProtectionAlliance/openHistorian/releases/download/v2.8.306-beta/openHistorian-POSIX.zip
# Unzip POSIX release
unzip openHistorian-POSIX.zip
# Find a suitable install location, e.g., /opt/
sudo mv openHistorian /opt
cd /opt/openHistorian
# Set Grafana executable file mode (works for x86_64 architecture only **)
sudo chmod u+x Grafana/bin/grafana
sudo chmod u+x Grafana/bin/grafana-server
# Generate a service certificate
mono MonoGenCert.exe openHistorian
# Enable local user auth for openHistorian (must run as root):
sudo bash enable-security.sh
# Add current user as initial openHistorian admin (must run as user):
bash add-user.sh
# Register openHistorian service to run as a daemon (must run as root):
sudo bash register-openHistorian.sh

** To run Grafana on other architectures, download appropriate Standalone Linux Binaries from here:
https://grafana.com/grafana/download/9.5.5?edition=oss&pg=get&plcmt=selfmanaged-box1-cta1&platform=arm

Uncompress .gz file, then replace binaries in opt/openHistorian/Grafana/bin with those from the uncompressed grafana-9.5.5/bin folder.
Set Grafana executable file mode as per steps above.

openHistorian Web Management Interface

http://localhost:8180/

Note: This includes a Grafana instance attached to the openHistorian, allow a couple of minutes for Grafana to start and synchronize user accounts.

Authenticate on openHistorian web login page

Note that user name is in the format of domain\username. If you are running as a local user you can use computer name as the domain name, or simply . for short. For example, if the openHistorian admin user is a local account called john, then enter user name as .\john

Once logged in you can navigate to Settings > Users on the main menu to add other users.

Available openHistorian Web Services

Run openHistorian Console

cd ~
mono /opt/openHistorian/openHistorianConsole.exe

Authenticate as requested.

To login as another user, enter login command into console.

Enter command exit to exit console application. openHistorian will continue to run.

Controlling openHistorian Daemon

Stop openHistorian Daemon

sudo /opt/openHistorian/openHistorian stop

Restart openHistorian Daemon

sudo /opt/openHistorian/openHistorian start

Uninstall Steps

# Unregister openHistorian as Daemon
cd /opt/openHistorian
sudo bash register-openHistorian.sh -u
# Remove openHistorian folder
cd /opt
sudo rm -rdf openHistorian
# Remove user cache
cd ~/.config/Grid\ Protection\ Alliance/
rm -rdf openHistorianConsole

Asset Filename SHA256 Hash
openHistorian-POSIX.zip 291DE85F0D400EB9FD879D614A63E6EF4E77542D8B2AD356D9A1B0A0228C98EF

openHistorian 2.8.157

21 Mar 16:25
74144e4
Compare
Choose a tag to compare

This is the official release for openHistorian v2.8.157

This is version 2.8.157 of the openHistorian, released on March 21, 2022

FYI - Windows installers for openHistorian v2.8.157 prior to 4/9/2024 were suspectable to CVE-2024-24810. The installer download below has been updated to compensate for this vulnerability. Note that since this only affected the installer, the openHistorian version remains the same. If you have an installer (i.e., the openHistorianSetup.msi file) cached on your system, it is recommended to replace the file from the updated download below.

This is an optional minor point release of openHistorian v2.8, see updates below for details.

NOTE: If you are upgrading from a prior version of the openHistorian, older than v2.8, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

Updates Since 2.8 version released in Nov 2021

  • Added UpdateExistingTagCompressionState parameter to PI Adapter to control if tag compression attribute should be updated on existing tags when UseCompression parameter is enabled
  • Added time reasonability parameters to PI Adapter
  • Added SkipDigitalAlternateTagSync operation with PI Adapter Tag Sync
  • Added Gzip export option to GEP data extractor tool
  • Updated DeviceStats adapter SQL
  • Added configuration timeout parameters to DeviceStats adapter
  • Improved phasor protocol adapter for manual measurement key lookups
  • Updated phasor protocol to better handle auto-repeats with spanned CFG3 frames
  • Fixed phasor protocol CFG3 Guid attribute display
  • Simplified IEEE C37.118 concentrator use of Device model (no local proxy settings required)
  • Fixed encoding issues with ValidateAssemblyBindings
  • Added screens for oscillation reporting that appear when oscillation adapter and reporting table is detected
Asset Filename SHA256 Hash
openHistorian.Binaries.zip 415F02E105D8F907B8D4CB0AB102D124F653A7DEB57EF2432A0A9FC0DA72029A
openHistorian.Installs.zip 6275B47B197A91D21A3D98C1DF8A3D4BF32912288153AF905FABE03B49250E68
openHistorian.Scripts.zip E15A0BCC1BA6D2A75755AA33DF36DB4FCA7BED17CFB462C85E6AD6037D5A2452

openHistorian v2.8

18 Nov 05:57
f44481b
Compare
Choose a tag to compare

This is the official release for openHistorian v2.8

This is version 2.8.132 of the openHistorian, released on November 17, 2021

NOTE: If you are upgrading from a prior version of the openHistorian, older than v2.8, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

Updates Since v2.8 (RC4) May Release

  • Improvements for parsing / generating spanned IEEE C37.118-2011 Configuration 3 Frames
  • Fixes for STTP Reverse Proxy subscribing server auto-reconnection
  • Optimizations to PDC initialization for non-historian associated devices
  • CSU updates to adjust default value of max thread pool values to reduce context switch issues on larger machines
  • Added option to allow disconnection event for file-based inputs when end-of-file is encountered
  • Improved Grafana metadata select operations for variable queries
  • Added slice-based expression Eval function to GSF Grafana functions
  • Improved access locking around legacy OH1.0 metadata files
  • Added option to OSI-PI output adapter to only synchronize the AlternateTag field
  • Fixed manager statistic overflow issues related to average latency calculations
  • Improved synchrophasor phase guessing to include high confidence options
  • Updated phasor measurement mapper data stream monitor to allow restarts for passive connections
  • Improved operation of the GEP Data Extraction tool
  • Added extra security to loading tag template files with calculation operations
  • Improved SynchronizeLocalClock adapter device time validation operations
  • Updated usages of CreatePointTag to apply analog and digital label parameters where applicable
  • Added SEL PDC Import tool to installation
  • Added APP DFR Import tool to installation
  • Updated included PMUConnectionTester installer to v4.6.7
  • Updated included StreamSplitter installer to v1.1.3
  • Improved default tag-naming expressions when applied from UpdateTagNames tool:

{CompanyAcronym}_{DeviceAcronym}[?{SignalType.Source}=Phasor[:eval{'{PhasorLabel}'.Trim().ToUpper().Replace(' ','_')}_eval{'{SignalType.Abbreviation}'.Substring(0,1)}eval{'{Phase}'=='+'?'1':('{Phase}'=='-'?'2':'{Phase}')}[?{BaseKV}>0[_{BaseKV}]][?{SignalType.Suffix}=PA[.ANG]][?{SignalType.Suffix}=PM[.MAG]]]][?{SignalType.Acronym}=ALOG[:eval{('{Label}'.Trim().Length>0?'{Label}'.Trim().ToUpper().Replace(' ','_'):'ALOG'+((int){SignalIndex}).ToString().PadLeft(2,(char)48))}]][?{SignalType.Source}!=Phasor[?{SignalType.Acronym}!=ALOG[:{SignalType.Acronym}[?{SignalIndex}!=-1[eval{((int){SignalIndex}).ToString().PadLeft(2,(char)48)}]]]]]

See latest updates since previous release candidate.

Security Updates:

This version of the openHistorian corrects two vulnerabilities, both related to the web interface in the version 2.7 release of the openHistorian – note that the main branch and nightly builds have been patched since September 2020. The vulnerabilities were (1) CVE-2020-11023, related to the version of the jQuery JavaScript library embedded with openHistorian, and (2) CVE-2019-10768, related to the version of the Angular JavaScript library embedded with openHistorian.

The jQuery JavaScript library is heavily used by the openHistorian web interface, including the login page. The Angular JavaScript library is only used on the “Real-time Measurements” screen and a user must be authenticated to access the screen. Both reported vulnerabilities require vulnerable JavaScript code to be exploited by an attacker and would require an authenticated user execute the modified code.

Note that none of the GPA web-based code actually used any of the affected functions identified in the JavaScript library vulnerabilities, as such, the noted vulnerabilities could only be exploited by manually modifying an existing or creating a new web page in the openHistorian. Updating a web page in openHistorian requires physical file access to the “wwwroot” folder in the openHistorian. Generally, GPA does not consider either of these vulnerabilities as exploitable within an unmodified openHistorian deployment.
FYI, also including the following note on the recently discovered Grafana vulnerability:

Grafana Vulnerability Notice

The version of Grafana distributed with the latest openHistorian is 7.3.4. Deployed standalone versions of Grafana prior to versions 8.3.2 and 7.5.12 are affected by the following vulnerability: CVE-2021-43813. This is a directory traversal vulnerability for fully lowercase or fully uppercase .md files which is limited in scope and allows access to files with the extension .md to authenticated users only.

Importantly, however, this vulnerability does not affect Grafana instances hosted by the openHistorian. The Grafana instance hosted by the openHistorian runs behind a reverse proxy in the openHistorian web interface. The openHistorian web interface normalizes the PATH requests going to Grafana which mitigates the vulnerability. The only access allowed to the openHistorian hosted Grafana instance is through the openHistorian web interface that requires user authentication.

New Tools / Features:

  • AdapterExplorer Tool - analyzes the configuration of a Time-Series Library system validating inputs, outputs and current values
  • BulkCalculationState Tool - allows bulk state management of action adapters by searching and filtering
  • SEL PDC Importer Tool - directly imports SEL 3373 or 3573 PDC configuration files
  • Bulk Sequence Calculator Adapter - creates and calculate sequence values (+/-/0), in bulk, based on current system configuration
  • openHistorian Python API - used for reading and writing openHistorian data using Python
  • Exports from the web UI now include a progress bar and estimated time remaining
  • Dyanmic Iaon Force Graph Web Display - visualizes Time-Series Library inputs, actions, outputs and measurements that bind them
  • New system level statistics in Manager application with global lead/lag time adjustment option

Major Updates:

  • Added full support for IEEE C37.118 Std2011 optional Configuration Frame 3
  • Added web option for COMTRADE CFF export support (ASCII, binary, binary32 and float32)
  • Added tag removal options for OSIsoft PI adapter metadata synchronizations
  • Improved phase guess operations for synchrophasor device wizard
  • Updated DNP3 adapters to latest OpenDNP3 code base with SSL support
  • Added "SystemName" for system level deployment level identification provided at install time
  • Added SNMP reporting for system statistics
  • Improved operation with PostgeSQL schema
  • Updated Grafana version to 7.3.4

Notable Updates to openHistorian for version 2.8

  • Added AdapterExplorer tool to setup package
  • Added auto-sync ability for service / manager database configuration mismatch. Also added system name to manager title
  • Added BaseKV to PhasorDetail model for export
  • Added batch file and instructions for initializing openhistorian-python submodule
  • Added better error handling for Grafana auth proxy controller during user synchronization steps
  • Added better exception handling and reporting to operation that attaches to existing archives.
  • Added bulk calculation state tool refresh to UpdateDependencies script.
  • Added Cancellation Token to Cancel Hadoop connection if Adapter is stopped
  • Added COMTRADE export support from Trend/Export web page
  • Added code to correct any non-unique SQL Server Device unique IDs before database migration.
  • Added command line switch "-NoMutex" to skip single instance mutex check and allow multiple instances to run on the same machine.
  • Added Command to ScheduledEmail to Send email immediately for testing
  • Added CreateOutputStream tool to installer.
  • Added default Javascript minification exclusion for force-graph.js
  • Added delete option for bulk calculation states
  • Added error page to default application configuration
  • Added extra logging and better status message to hadoop Adapter
  • Added extra logging to Scheduled Email
  • Added file ignores for Python and virtual environment configuration
  • Added flag for auto-removal of oldest files before full
  • Added full phasor export button (in addition to per-device functionality)
  • Added Iaon graph to main menu
  • Added initial implementation of a native Python API
  • Added initial implementation of Grafana ad-hoc filters feature.
  • Added initial ScheduledEmail Adapter
  • Added initial web-based Iaon force graph
  • Added initial version of Hadoop to openHistorian input Adapter
  • Added limit on number of rows affected by SQL statement in SNR summary and fixed SQL Syntax
  • Added minimum Signal threshold similar to Unbalance and improved handling of SQL Failures
  • Added Moving Window to standard deviation for improved data visibility
  • Added new dependent DLLs to installer for updated PostgreSQL database assembly
  • Added new tag templates.
  • Added Noise Threshold to unbalance Adapter
  • Added OnNewMeasurment call to Unbalanced Adapter
  • Added OpenHistorian.TrenDAPController.dll to wix script
  • Added option to save Daily SNR summaries to SQL DB
  • Added phasor CSV export to device details (CHNAM export)
  • Added PythonAPIModule as a submodule to new o...
Read more

openHistorian v2.8 (RC4)

12 Mar 09:42
71ed824
Compare
Choose a tag to compare

This is the fourth release candidate for openHistorian v2.8

This is version 2.8.45 of the openHistorian, released on May 7, 2021

NOTE: If you are upgrading from a prior version of the openHistorian, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

If you have any issues with this release candidate, you can check if the issue has been resolved in the nightly build:
https://gridprotectionalliance.org/NightlyBuilds/openHistorian/Beta/Synchrophasor.Installs.zip

Note: This release candidate includes new COMTRADE features

Security Updates:

This version of the openHistorian corrects two vulnerabilities, both related to the web interface in the version 2.7 release of the openHistorian – note that the main branch and nightly builds have been patched since September 2020. The vulnerabilities were (1) CVE-2020-11023, related to the version of the jQuery JavaScript library embedded with openHistorian, and (2) CVE-2019-10768, related to the version of the Angular JavaScript library embedded with openHistorian.

The jQuery JavaScript library is heavily used by the openHistorian web interface, including the login page. The Angular JavaScript library is only used on the “Real-time Measurements” screen and a user must be authenticated to access the screen. Both reported vulnerabilities require vulnerable JavaScript code to be exploited by an attacker and would require an authenticated user execute the modified code.

Note that none of the GPA web-based code actually used any of the affected functions identified in the JavaScript library vulnerabilities, as such, the noted vulnerabilities could only be exploited by manually modifying an existing or creating a new web page in the openHistorian. Updating a web page in openHistorian requires physical file access to the “wwwroot” folder in the openHistorian. Generally, GPA does not consider either of these vulnerabilities as exploitable within an unmodified openHistorian deployment.

New Tools / Features:

  • AdapterExplorer Tool - analyzes the configuration of a Time-Series Library system validating inputs, outputs and current values
  • BulkCalculationState Tool - allows bulk state management of action adapters by searching and filtering
  • SEL PDC Importer Tool - directly imports SEL 3373 or 3573 PDC configuration files
  • Bulk Sequence Calculator Adapter - creates and calculate sequence values (+/-/0), in bulk, based on current system configuration
  • openHistorian Python API - used for reading and writing openHistorian data using Python
  • Exports from the web UI now include a progress bar and estimated time remaining
  • Dyanmic Iaon Force Graph Web Display - visualizes Time-Series Library inputs, actions, outputs and measurements that bind them
  • New system level statistics in Manager application with global lead/lag time adjustment option

Major Updates:

  • Added full support for IEEE C37.118 Std2011 optional Configuration Frame 3
  • Added web option for COMTRADE CFF export support (ASCII, binary, binary32 and float32)
  • Added tag removal options for OSIsoft PI adapter metadata synchronizations
  • Improved phase guess operations for synchrophasor device wizard
  • Updated DNP3 adapters to latest OpenDNP3 code base with SSL support
  • Added "SystemName" for system level deployment level identification provided at install time
  • Added SNMP reporting for system statistics
  • Improved operation with PostgeSQL schema
  • Updated Grafana version to 7.3.4

Notable Updates to openHistorian for version 2.8

  • Added AdapterExplorer tool to setup package
  • Added auto-sync ability for service / manager database configuration mismatch. Also added system name to manager title
  • Added BaseKV to PhasorDetail model for export
  • Added batch file and instructions for initializing openhistorian-python submodule
  • Added better error handling for Grafana auth proxy controller during user synchronization steps
  • Added better exception handling and reporting to operation that attaches to existing archives.
  • Added bulk calculation state tool refresh to UpdateDependencies script.
  • Added Cancellation Token to Cancel Hadoop connection if Adapter is stopped
  • Added COMTRADE export support from Trend/Export web page
  • Added code to correct any non-unique SQL Server Device unique IDs before database migration.
  • Added command line switch "-NoMutex" to skip single instance mutex check and allow multiple instances to run on the same machine.
  • Added Command to ScheduledEmail to Send email immediately for testing
  • Added CreateOutputStream tool to installer.
  • Added default Javascript minification exclusion for force-graph.js
  • Added delete option for bulk calculation states
  • Added error page to default application configuration
  • Added extra logging and better status message to hadoop Adapter
  • Added extra logging to Scheduled Email
  • Added file ignores for Python and virtual environment configuration
  • Added flag for auto-removal of oldest files before full
  • Added full phasor export button (in addition to per-device functionality)
  • Added Iaon graph to main menu
  • Added initial implementation of a native Python API
  • Added initial implementation of Grafana ad-hoc filters feature.
  • Added initial ScheduledEmail Adapter
  • Added initial web-based Iaon force graph
  • Added initial version of Hadoop to openHistorian input Adapter
  • Added limit on number of rows affected by SQL statement in SNR summary and fixed SQL Syntax
  • Added minimum Signal threshold similar to Unbalance and improved handling of SQL Failures
  • Added Moving Window to standard deviation for improved data visibility
  • Added new dependent DLLs to installer for updated PostgreSQL database assembly
  • Added new tag templates.
  • Added Noise Threshold to unbalance Adapter
  • Added OnNewMeasurment call to Unbalanced Adapter
  • Added OpenHistorian.TrenDAPController.dll to wix script
  • Added option to save Daily SNR summaries to SQL DB
  • Added phasor CSV export to device details (CHNAM export)
  • Added PythonAPIModule as a submodule to new openhistorian-python repo
  • Added sample application animation
  • Added system name text box to company info screen in installer
  • Added system name to HTML page titles
  • Added SystemName to global settings
  • Adjusted default desired remaining space to 100GB
  • Adjusted Unbalance and SNR Report UI to only display Days for selection
  • Dropped check for CurrentAdapterIndex against Count – devices haven’t been added when this property gets called.
  • Fixed build issue with application of assembly bindings
  • Fixed CSU failure messages for SQL server
  • Fixed Cutoff in scheduled email SQL execution
  • Fixed default literals to use C# 7.0 syntax
  • Fixed Error in Alarm counting in SNR reports
  • Fixed Exception were parameter list does not match sql Query
  • Fixed installer deployment names for Npgsql dependencies
  • Fixed issue with measurement being overwritten on every new timestamp in Hadoop DataLoader to allow reading multiple Timestamps in one update
  • Fixed issues with parameter values updates
  • Fixed OH HistorianView installed shortcut on start menu
  • Fixed PostgreSQL operation for assigning existing database
  • Fixed security warning in SnapStreamClient Also simple code refresh
  • Improved error handling in Grafana auth proxy controller for admin synchronizations
  • Improved error page operation.
  • Improved Grafana API to handle graphing of min/max extremes over a publication interval and improved interval operations handling
  • Improved IaonGraph link labels, legend creation and positioning and window responsiveness to system messages.
  • Improved phasor input validation of example MAS adapters
  • Improved status display list of attached archive files in openHistorian output adapter.
  • Improved trend API to handle exposing min/max extremes over a publication interval
  • Improved update of error template name from CSU
  • Increased output buffer, reduced wait timeout and applied consistent lock to console output buffer for bulk calculation state tool.
  • Increased system name label length for setup dialog
  • Migrated Tools/SampleFunctions to SDK format
  • Moved client connected state check into critical region in bulk calculation state tool
  • Moved Reporting for SNR and Unbalance from OH to SQL DB
  • Moved SNR SQL Summary writes to synchronous operation
  • Performance improvements to SNRCalculation.PublishFrame().
  • Removed auto-addition of error template name setting from CSU (auto added by GSF now)
  • Removed BulkCalculationState tool from repo since it now lives in GSF
  • Removed positive sequence power calculations from custom tag template.
  • Removed unused DataHub and Model definitions
  • Renamed archive integrity checker tool and namespace to have no spaces.
  • Renamed folder path to ArchiveIntegrityChecker (spaces causing sign tool to fail)
  • Renamed full calculations tag template
  • Restart SQL Writer on Failure and quit aging summaries after 10 consecutive failures to avoid Queue building up
  • Separated phase guess logic into high and low confidence operations for improved quality of operation
  • Separated SNR and Unbalance Report into 3 pages for SNR, I Unbalance and V Unbalance to avoid confusion
  • Set bulk calculation state tool with an ngen priority of 1
  • Switched Hadoop DataLoader to use ODBCConnection instead of ADOdataConnection
  • Updated AdapterExplorer configuration
  • Updated Alarm logic in Unabalance adapter to work properly and obtain Percent in Alarm Values
  • Updated all database connection tests and failure messages to be consistent
  • Updated all openHistorian project files to support C# 8 language features
  • Updated assembly info in CSU
  • Updated attribute operation in ValidateErrorTemplateConfiguration
  • Updated both beta and ...
Read more

openHistorian 2.7

06 May 01:19
73619bb
Compare
Choose a tag to compare

Official stable release of version 2.7 of the openHistorian (v2.7.195).

NOTE: If you are upgrading from a prior version of the openHistorian, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

image

Security Fixes

Security scans of older releases of the openHistorian have identified two JavaScript library vulnerabilities included from the Grid Solutions Framework, specifically jQuery and knockout. Installation of version 2.7 of the openHistorian resolves these reported issues through library updates.

For jQuery the vulnerability was CVE-2019-11358:

jQuery before 3.4.0, as used in Drupal, Backdrop CMS, and other products, mishandles jQuery.extend(true, {}, ...) because of Object.prototype pollution. If an unsanitized source object contained an enumerable proto property, it could extend the native Object.prototype.

Because of the way GPA uses jQuery within the openHistorian, GPA deems the risk of this vulnerability to be low.

For knockout the vulnerability was WS-2019-0015:

Knockout, before 3.5.0-beta, has an XSS injection point in “attr” name binding for browser IE7 and older.

Exploitation of the knockout vulnerability required the use of IE7. Since the openHistorian requires IE11 or better to function, GPA deems the risk of this vulnerability to be low. However, GPA does suggest updating to a newer, more secure browser regardless.

New Updates and Improvements

  • Includes latest updates to STTP, including reverse connections
  • Added signal-to-noise ratio (SNR) calculation adapter with option to save SNR statistics separately to speed up reporting
  • Added unbalanced calculation adapter
  • Added Grafana openHistorian alarm panel
  • Added Grafana GPA phasor map panel
  • Added initial screen for adding device groups, e.g., a "region" or "best values group"
  • Added IPv6 support for SnapServer and ability for primary historian adapter (LocalOutputAdapter) to bind to a specific IP address.
  • Added NGEN based pre-compile at install time to boost overall performance and improve application start times.
  • Improved functionality of point tag naming convention.
  • Updated point tag naming convention to include phasor type and phase information.
  • Added ability to disable self-web hosting
  • Disabled checking for CAS publisher policy for all application config files to speed start time.
  • Updated to Grafana v6.6.2
  • Simplified GrafanaController target search functionality since base class now include SQL SELECT functionality.
  • Updated GrafanaController to allow template queries based on FILTER expressions that include the field name to return, e.g.: FILTER (Acronym) InputStreamDevices WHERE Name LIKE '%DFR%'
  • Updated GrafanaController template queries to use SELECT syntax, e.g.: SELECT Acronym FROM InputStreamDevices WHERE Name LIKE '%DFR%'
  • Improved GrafanaController template queries SELECT RegEx
  • Allow scripts in local Grafana panels for custom Home page.
  • Changed Grafana default directory to relative path
  • Added Grafana data download panel
  • Updated Grafana Scadavis Panel to newest version
  • Improved UI operations for "viewer" roles.
  • Updated default data operation for open historian outputs to automatically add a custom input reader to properly support data gap recovery operations through STTP and GEP.
  • Added option to download data at less than 1 frame per second resolution
  • Fixed time stamp alignment when exporting to csv
  • Fixed bug with frames per minute and frames per hour being changed to frames per second if they don't fit exactly within 1 day
  • Fixed data export with timestamp to make timestamp buckets optional
  • Fixed various issues with web-based synchrophasor wizard
  • Updated synchrophasor wizard to allow for either disabled or deleted phasors with better visual feedback on selected options.
  • Updated synchrophasor device wizard to update baseKV for simple phasor updates.
  • Improved phase guess operation in device wizard.
  • Updated delete device operations in DataHub to also remove children devices before parent device.
  • Updated dev wizard screen to allow export of config regardless of editor rights.
  • Added desired remaining disk space as a configuration parameter of LocalOutputAdapter.
  • Improved on-second window adapter sample operation
  • Updated multi action adapter collection base implementation to allow for customized derived class connection string parsing.
  • Updated independent adapter managers to support input, output and action adapter collection types.
  • Updated to independent adapter manager samples to accommodate and end-user API.
  • Updates to independent adapter manager classes to handle multiple inputs per adapter from collection manager base classes.
  • Updated independent adapter managers to support grouped multiple inputs.
  • Updated independent adapter manager collections functionality.
  • Improved eDNA Grafana meta-data derivation, especially for cases when a GSF host is the publishing source.
  • Added configuration settings to control if eDNA and OSI-PI Grafana controllers are automatically loaded.
  • Fixed dataset schema for eDNA Grafana Controller metadata
  • Added error handling to SQL Server role migration in Configuration Setup Utility.
  • Added configured desired remaining space to LocalOutputAdapter status details.
  • Added Grafana function to get Location Data for Map
  • Fixed issue with Grafana GetLocation when trying to get multiple locations at once
  • Updated imported labels in device page to remove underscores with imported phasor labels
  • Updated long/lat layout / operation on device wizard (dev page)
  • Added initial options for connection string building with synchrophasor wizard screen
  • Added serialized configuration section to device wizard
  • Added ability to import and export config
  • Updated location meta-data function signatures
  • Updated GrafanaController to use common LocationData class.
  • Cleared Sonar warnings and general code of newly added code.
  • Added GSF.Geo assembly to the installer
  • Fixed access keys to be unique in custom installer dialogs
  • Applied custom action to installer to load previous company information.
  • Added flag for enabling web hosting to systemSettings when missing
  • Condensed PhasorHub initialization to web Startup.
  • Updated GrafanaAuthProxyController to simplify referrer null check.
  • Fixed Grafana Datasource Error in TS production build
  • Added example adapters for managing self-configuration and on-second data windows.
  • Updated sample adapters to include additional parameters for automated output measurement creation.
  • Fixed Hostname Setting in Grafana configuration file
  • Fixed race condition for unauthorized Grafana users to properly initiate user synchronizations.
  • Updated MAS adapter example code to use GSF.TimeSeries base classes for independent adapter management.
  • Updated bulk MAS example adapters to override default point tag and signal reference tag templates.
  • Updated link on default device status page in Grafana to properly navigate back to openHistorian home page.
  • Synced synchrophasor dev page to GSF updates.
  • Updated knockout bindings in COMTRADE importer to target first body element.
  • Updated GrafanAuthProxy to better handle initial startup user synchronization,
  • Added sub-title feature to primary Layout.cshtml
  • Cleaned up code for trend measurements and export data handler
  • Updated buttons on select group devices page to read "export/import" instead of "save/load" to better serve context.
  • Updated synchrophasor screen to accommodate application of calculation tags against devices setup with Gateway style connections.
  • Added Grafana EndPoint to get all device alarm statuses
  • Added Grafana Endpoint to get Device Groups
  • Fixed naming of QueryAlarms issue in GrafanaController
  • Updated device queries to only filter out device groups when both protocol is virtual and access ID is set
  • Updated service host to inject DeviceGroupMeasurements selection table into data source updates
  • Added extra safety checks for database to runtime ID conversion in data source propagation override in ServiceHost implementation.
  • Updated metadata propagation handler for injection of DeviceGroupMeasurements table to better handle child devices of concentrator connections and to log error, but not fail, if there is an exception.
  • Added check to ignore disabled group devices when creating DeviceGroupMeasurements metadata
  • Improved comments and readability for propagation of DeviceGroupMeasurements
  • Updated DeviceGroup model to default Enabled field to true
  • Removed historian from device group setup, since it is not used.
  • Added dynamic acronym database uniqueness validation to device and device group editing screens.
  • Added code to dynamic selection tables to scroll to bottom after row is added.
  • Added name as well as acronym to device group selection list
  • Updated data operation for openHistorian adapters to automatically add metadata exclusions for device group records for all defined data publisher instances. This way device groups remain local.
  • Updated default point tag name expression to always include base kV level when provided.
  • Updated default point tag name expression in openHistorian manager application.
  • Updated openHistorian manager to auto-elevate when using SQLite for cases when database is stored into program files folder.
  • Fixed point tag nam...
Read more

openHistorian v2.6

23 Jul 21:15
345865f
Compare
Choose a tag to compare

Note: This is not the latest version.

Official stable release of version 2.6 of the openHistorian (v2.6.30).

NOTE: if you are upgrading from a prior version of the openHistorian, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

New Synchrophasor Input Wizard with Automated Device Calculations

This new version of the openHistorian includes a new web-based synchrophasor device wizard that provides the ability to create custom calculations from a template:
image
User defined calculations can be added to a .TagTemplate file and be applied to new or existing devices and can be reapplied if the template is updated. See included Full Checkout Calculations for an example.

New Cloud Data Push Adapter

As a new feature, this release includes an adapter (the first of many) to enable the openHistorian to push JSON-formatted data directly to the cloud. This first adapter, called AzureEventHubOutputAdapter, will push streaming time-series data (like synchrophasor data) to an Azure Event Hub.

Updated Grafana with Included SCADAvis Synoptic Panel

Also updated in version 2.6 of the openHistorian is the included instance of Grafana, now at version 6.2.5. The frequently used piechart and clock plugin panels are now automatically included as part of the openHistorian install. Additionally, the SCADAvis Synoptic Panel has been included to allow animated advanced Scalable Vector Graphics (svg) screens to be created in Grafana -- such as seen in the example below:
image
To create new screens for this panel, see the HTML5 Synoptic Toolkit. This tool can create new svg screens that can be integrated into Grafana with data queried from the openHistorian and other sources.

Deployments of the openHistorian with hosted Grafana integration include pre-configured data sources for the primary data and statistics archives named OHDATA and OHSTAT respectively. The latest versions of the openHistorian and OSIsoft-PI Grafana data source are included, as well as a default System Status dashboard.

Enhanced Point Tag Naming Convention

This version of the openHistorian includes an updated default tag naming convention for new measurements. If you are upgrading from a prior version, you can manually update your PointTagNameExpression in the systemSettings sections of the openHistorian.exe.config and openHistorianManager.exe.config files using the included XML Configuration Editor tool.

The new expression is as follows:

[?{CompanyAcronym}!=[{CompanyAcronym}_]]{DeviceAcronym}[?{SignalType.Source}=Phasor[-eval{'{PhasorLabel}'.ToUpper().Replace(' ','_')}[?{BaseKV}>0[_{BaseKV}]][?{SignalType.Suffix}=PA[:ANG]][?{SignalType.Suffix}=PM[:MAG]]]][?{SignalType.Source}!=Phasor[:{SignalType.Acronym}[?{SignalIndex}!=-1[{SignalIndex}]]]]

This new expression will create tag names like the following:

  • TESTDEVICE-500_KV_BUS1:ANG
  • TESTDEVICE-500_KV_BUS1:MAG
  • TESTDEVICE-LAGOON_CREEK:ANG
  • TESTDEVICE-LAGOON_CREEK:MAG
  • TESTDEVICE:FREQ

You can force all tag names to be updated using the new expression by setting the Arguments field of the PhasorDataSourceValidation record of the DataOperation table to renameAllPointTags=true and issuing a ReloadConfig command from the openHistorian console.

Note: PMU Connection Tester is installed separately:
https://github.com/GridProtectionAlliance/PMUConnectionTester/releases

Installation: The following YouTube video walks through the process of installing and configuring the openHistorian and covers the process of building custom displays from openHistorian data using Grafana visualizations.

New Updates and Improvements

  • This version includes the BETA version of STTP: https://github.com/sttp
  • Added Modbus Protocol to SQL scripts.
  • Fixed up protocols in initial data set scripts.
  • Fixed race condition between HandleConnectOnDemandAdapters and adapter initialization.
  • Fix DataPublisher subscribe requests to propagate input measurement changes to the routing tables.
  • Fixed event wiring in AllAdaptersCollection.
  • Fixed casing on protocol definition for DNP3.
  • Fixed protocol ID of the test device in the sample data set.
  • Fixed NULL comparisons in SQL trigger for tracking changes to Device records.
  • Updated the schema version of the databases to reflect the change to the device update trigger.
  • Modified order of operations in DataPublisher.HandleSubscribeRequest to fix the issue of subscribers not receiving cached measurements upon subscription.
  • Added ManageCertificate command to ServiceHostBase.
  • Updated SerializedSchema.bin using refactored Schema class.
  • Added code to detach from the StatisticsEngine.Calculated event in DataSubscriber.cs.
  • Fixed parameter parsing for PublishInterval in unsynchronized data subscriber
  • Added ping console command to servicehostbase.
  • Updated ping command to split server setting to remove the port.
  • Added code to handle connect on demand scenarios for DataSubscriber.
  • Fixed temporal support in DataSubscriber.
  • Updated gateway style statistics to fall-back on reflection in source object in case properties are available.
  • Modified the sentinel value of objects derived from the AnalogValueBase and DigitalValueBase classes.
  • Added validation to the routine that updates the connection string after the user updates a connection string parameter.
  • Fixed design-time errors in PagedViewModelBase.
  • Updated the status flag reference in the RealTimeMeasurementUserControl to match the status flag reference in InputStatusMonitorUserControl.
  • Added IEEE C37.118.2 tab to the status flag reference.
  • Fixed input wizard to apply the selected PDC vendor device ID to the concentrator on save.
  • Added validation for the chart refresh interval to ensure that the Manger doesn't crash when the value is misconfigured.
  • Fixed Latitude and Longitude fields so that trailing zeros don't cause validation errors on the Device page.
  • Added line-to-line option under Phase to the Manage Phasor page of the Manager.
  • Fixed up startup operation that fills in missing protocols.
  • Removed stats from device outputs - although statistics may be associated with device, it will not be the adapter producing them...
  • Added more messaging around ToogleBadData testing function and restricted command to admins and editors.
  • Updated automated output measurement creation for power calculations to use HistorianID from associated voltage.
  • Updated default lag-time of PowerMultiCalculatorAdapter to 5 seconds.
  • Fixed the metadata import adapter to use the parent acronym when using source prefix to name child devices.

See full release notes since last release.

openHistorian v2.5

01 Jun 15:03
Compare
Choose a tag to compare

Note: This is not the latest version.

Official stable release of version 2.5 of the openHistorian (v2.5.6).

NOTE: if you are upgrading from a prior version of the openHistorian older than 2.4, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

This version of the openHistorian allows Grafana to be seamlessly integrated such that the openHistorian primary web site can act as a reverse proxy to an instance of Grafana accessible from the main web URL, e.g.: http://localhost:8180/grafana/. When configured in this mode, the openHistorian will auto-launch the grafana-server executable and act as a front-end server for Grafana. Additionally, the openHistorian will maintain user security synchronization such that a user with an Administrator role in openHistorian will also have an Admin role in Grafana, or if a user has an Editor role in openHistorian they will have an Editor role in Grafana, and so on.

See the new YouTube video that walks users through the process of installing and configuring the openHistorian and covers the process of building custom displays from openHistorian data using Grafana visualizations.

Deployments of the openHistorian with hosted Grafana integration include pre-configured data sources for the primary data and statistics archives named OHDATA and OHSTAT respectively. The latest versions of the openHistorian and OSIsoft-PI Grafana data source are included, as well as a default System Status dashboard:

systemstatus

New Features and Improvements

  • Improved operations when storing archive data on remote Linux drives
  • Improved SignalR API for trend and export web screens by reducing user based caching
  • Improved configuration setup utility when migrating databases using local users in SQL Server
  • Improved web based security including better application of CORS and anti-forgery tokens within self-hosted web architecture
  • Updated external dependencies, both assemblies and Javascript libraries, to latest versions for improved security
  • Improved hosted Grafana user security synchronization
  • Improved included system statistics Grafana dashboard to display better total active devices
  • Release built with version 2.2 of GSF, see full release notes

Other New Features / Fixes (available since 2.4)

  • Improved web based authentication
  • Fully overhauled system security
  • Modbus device connections
  • COMTRADE data file importer
  • Improved sub-second time handling
  • Included GSF time-series Filter Adapter management
  • Added panning support for Trend Measurements screen
  • Added new Grafana functions and capabilities (see full list)
  • Better pre-compilation options of Razor web pages at service start
  • Provided CSV export options to daily quality reporting
  • Added "useSourcePrefixNames" boolean connection string parameter to DataSubscriber to allow override ability on subscription prefixes applied to devices names
  • Included new GSF adapter to allow selection of a "best" value based on configuration options
  • Updated POSIX based installations to default to Basic authentication
  • Modified the latest values cache in DynamicCalculator to be fed by the concentration engine to resolve usability issues
  • Updated Grafana annotation queries to always operate at full resolution so that no alarms will be missed
  • Fixed memory leak in MultiProtocolFrameParser when replay start time and stop time is specified
  • Fixed logic error in AverageFrequency calculator when reporting unreasonable results as NaN
  • Fixed SQL syntax for updated Phasor synchronization in DataSubscriber
  • Updated LDAP security provider to allow UserData.IsDefined to be assumed to be true if no cached user can be found to allow authentication to be attempted
  • Added a safety check around target cache acquisition for cases where cache may have been disposed
  • Handled edge case in SIDToAccountName to resolve errors with null input
  • Removed references and dependencies on to Thread.CurrentPrincipal throughout system as part of security overhaul
  • Corrected access control issues on shared Modbus configuration screen

Migrating to openHistorian 2.0 in other GPA Products

It is recommended to install a stand-alone instance of the openHistorian 2.0 and subscribe to other data sources, e.g., using GEP, to get data in the openHistorian. However, using the openHistorian.Binaries.zip download that can be found here, you can extract the needed openHistorian 2.0 assemblies needed to upgrade any openHistorian 1.0 instance running in a GPA product built using the GSF Time-Series Library, e.g., the common PPA openHistorian 1.0 instance running in an openPDC. You can also migrate existing openHistorian 1.0 .D data files into openHistorian 2.0 .D2 data files using the Archive Upgrade Utility that comes installed with the openHistorian.

To start using the openHistorian 2.0 within an existing GSF Time-Series Library based application, begin by following these steps.

openHistorian v2.4

01 Jan 17:30
Compare
Choose a tag to compare

Note: This is not the latest version.

Official stable release of version 2.4 of the openHistorian (v2.4.30).

NOTE: if you are upgrading from a prior version of the openHistorian, you must migrate your existing configuration to use the latest database schema when the Configuration Setup Utility is run after the installation completes - this version includes schema updates.

This version of the openHistorian allows Grafana to be seamlessly integrated such that the openHistorian primary web site can act as a reverse proxy to an instance of Grafana accessible from the main web URL, e.g.: http://localhost:8180/grafana/. When configured in this mode, the openHistorian will auto-launch the grafana-server executable and act as a front-end server for Grafana. Additionally, the openHistorian will maintain user security synchronization such that a user with an Administrator role in openHistorian will also have an Admin role in Grafana, or if a user has an Editor role in openHistorian they will have an Editor role in Grafana, and so on.

Deployments of the openHistorian with hosted Grafana integration include pre-configured data sources for the primary data and statistics archives named OHDATA and OHSTAT respectively. The latest versions of the openHistorian and OSIsoft-PI Grafana data source are included, as well as a default System Status dashboard

New Features and Improvements

  • Improved web based authentication
  • Fully overhauled system security
  • Modbus device connections
  • COMTRADE data file importer
  • Improved sub-second time handling
  • Included GSF time-series Filter Adapter management
  • Added panning support for Trend Measurements screen
  • Added new Grafana functions and capabilities (see full list)
  • Better pre-compilation options of Razor web pages at service start
  • Provided CSV export options to daily quality reporting
  • Added "useSourcePrefixNames" boolean connection string parameter to DataSubscriber to allow override ability on subscription prefixes applied to devices names
  • Included new GSF adapter to allow selection of a "best" value based on configuration options

Important Fixes

  • Updated POSIX based installations to default to Basic authentication
  • Modified the latest values cache in DynamicCalculator to be fed by the concentration engine to resolve usability issues
  • Updated Grafana annotation queries to always operate at full resolution so that no alarms will be missed
  • Fixed memory leak in MultiProtocolFrameParser when replay start time and stop time is specified
  • Fixed logic error in AverageFrequency calculator when reporting unreasonable results as NaN
  • Fixed SQL syntax for updated Phasor synchronization in DataSubscriber
  • Updated LDAP security provider to allow UserData.IsDefined to be assumed to be true if no cached user can be found to allow authentication to be attempted
  • Added a safety check around target cache acquisition for cases where cache may have been disposed
  • Handled edge case in SIDToAccountName to resolve errors with null input
  • Removed references and dependencies on to Thread.CurrentPrincipal throughout system as part of security overhaul
  • Corrected access control issues on shared Modbus configuration screen

Migrating to openHistorian 2.0 in other GPA Products

It is recommended to install a stand-alone instance of the openHistorian 2.0 and subscribe to other data sources, e.g., using GEP, to get data in the openHistorian. However, using the openHistorian.Binaries.zip download that can be found here, you can extract the needed openHistorian 2.0 assemblies needed to upgrade any openHistorian 1.0 instance running in a GPA product built using the GSF Time-Series Library, e.g., the common PPA openHistorian 1.0 instance running in an openPDC. You can also migrate existing openHistorian 1.0 .D data files into openHistorian 2.0 .D2 data files using the Archive Upgrade Utility that comes installed with the openHistorian.

To start using the openHistorian 2.0 within an existing GSF Time-Series Library based application, begin by following these steps.

Known Issues

The built-in System Status dashboard "Active Input Connections" single-stat panel reports an invalid value for system with multiple direct connections or GEP based inputs, change the metric query to the following to produce a correct count:

SliceCount(10, Exclude(0, 0, FILTER ActiveMeasurements WHERE PointTag LIKE '%!PMU:ST4'))

To change the query you may need to first make the page “editable”. To do so, click the “gear” icon at the top of the page and select “Make Editable”, save the dashboard, then refresh the page. Now when you click on the panel titled “Active Input Connections” you can click “Edit” and paste in the corrected metric query above.


This release has been updated, note the following changes since v2.4.22:

  • Fixed references for TrendMeasurements view to correct zoom out and pan
  • Updated Grafana deployment to 4.6.3
  • Reduced web file deployment footprint

openHistorian v2.3

12 Jul 16:01
Compare
Choose a tag to compare

Note: This is not the latest version.

Official stable release of version 2.3 of the openHistorian (v2.3.7).

See full GSF change log since last release.

New Features and Improvements

  • Simplified Datahub record operations with new modeled table functions.
  • Updated to Owin 3.1.0 and added Cors assembly to allow for cross-site scripting.
  • Added security mode indication, e.g., FIPS compliance, to primary web interface home page.
  • Added optional timestamp reasonability checking for incoming measurements to be archived.
  • Made status messages more resistant to possible exceptions.
  • Suppressed blank warnings and messages from flowing to the console.

Important Fixes

  • Start the Web UI on a separate thread when starting the service.
  • Fixed issue where html was using forbidden characters for ids.
  • Added more error handling to the Configuration Setup Utility SqlServer setup screen.
  • Configuration Setup Utility updates or creates AssemblyBindings node in .config file.
  • Fixed the status lights on the Graph Measurements page of the Web UI.
  • Add missing "System.Web.Cors.dll" to the installer.
  • Fixed TrenValueAPI static constructor.
  • Used FilePath.GetFiles() in ArchiveList2.AttachFileOrPath() so that permissions issues encountered during recursive search don't cause the openHistorian to fail to attach accessible archive files.
  • Updated SqlClr script to include GSF.Core.SqlClr.dll and added assembly to installation package.
  • Fixed issues when system is set to use FIPS security.
  • Corrected TableOperation models based on latest attribute namespace changes.
  • In the CSU, fixed database setup screens to retain the value of the Encrypted option on the connection string when using an existing database as-is.
  • Added invokable 'CurtailArchiveFiles' command so that daily file curtailment can be ran immediately.
  • Fixed spelling of 'EnableTimeReasonabilityCheck' setting.
  • Fixed errors in CSU when reading encrypted configuration file settings.

Migrating to openHistorian 2.0 in other GPA Products

Using the openHistorian.Binaries.zip download that can be found below, you can extract the needed openHistorian 2.0 assemblies needed to upgrade any openHistorian 1.0 instance running in a GPA product built using the GSF Time-Series Library, e.g., the common PPA openHistorian 1.0 instance running in an openPDC. You can also migrate existing openHistorian 1.0 .D data files into openHistorian 2.0 .D2 data files using the Archive Upgrade Utility that comes installed with the openHistorian.

To start using the openHistorian 2.0 within an existing GSF Time-Series Library based application, begin by following these steps.

openHistorian v2.2

17 Mar 20:59
Compare
Choose a tag to compare

Note: This is not the latest version.

Official stable release of version 2.2 of the openHistorian (v2.2.25).

See full change log since last release.

New Features and Improvements

  • GrafanaAdapters: Added full set of aggregation and operational functions that operate on a per-series or per-set for all data sources that implement Grafana interfaces. See documentation.
  • LogFileViewer: Added new enhanced general logging capabilities along with a new application, Log File Viewer, that is used to analyze logs.
  • Web UI: Updated home page to include time displays in both UTC and local time.
  • GSF.TimeSeries: Added up-time statistics for system, subscriber, publisher, input streams and output streams.
  • GSF.TimeSeries: Added a new enhanced version of the time-series special compression algorithm, automatically enabled for new connections, used with the Gateway Exchange Protocol that uses much less bandwidth. Add ; compression=true to connection string of existing GEP subscriptions to enable.
  • GSF.TimeSeries: Created a lookup cache for the main adapter meta-data using dictionary based lookups. This improved load times for input adapters on large systems (e.g., from 160 seconds to less than 1 second in some cases).
  • GSF.TimeSeries: Updated measurement definitions to carry meta-data as part of measurement key with an internal reference inside measurement implementations to reduce total memory footprint requirements for new measurements.
  • GSF.Core: Added a static timer class to allow many hundreds of scheduled events that run at the same interval to be associated with a single wait event instead of creating a new timer for each event (e.g., as hundreds of devices needing to check statistics every second) - this alleviates thread pool exhaustion that can occur when hundreds of timer events get executed at the same time.

Important Fixes

  • GSF.SortedTreeStore: Fixed bug in UnionTreeStreamSortHelper (found by @yuwenpeng) that could cause occasional data loss when duplicate records were being written to the openHistorian - in cases of encountered duplicates (i.e., by key of time and ID), there was a possibility that the duplicate record could cause a rollover operation to end prematurely.
  • DataSubscriber: Updated measurements received with GEP to apply any linear adjustments defined in the local configuration.
  • GSF.Core: Added code to ensure that log files won't become deadlocked if an error occurs during rollover.
  • GSF.TimeSeries: Updated DataSubscriber meta-data synchronization to exclude calculation and alarm signals from the device measurement removal processing such that if a local subscription creates new calculations associated with a subscribed device, the locally created measurements will not get automatically removed at the next synchronization.

Migrating to openHistorian 2.0 in other GPA Products

Using the openHistorian.Binaries.zip download that can be found below, you can extract the needed openHistorian 2.0 assemblies needed to upgrade any openHistorian 1.0 instance running in a GPA product built using the GSF Time-Series Library, e.g., the common PPA openHistorian 1.0 instance running in an openPDC. You can also migrate existing openHistorian 1.0 .D data files into openHistorian 2.0 .D2 data files using the Archive Upgrade Utility that comes installed with the openHistorian.

To start using the openHistorian 2.0 within an existing GSF Time-Series Library based application, begin by following these steps.