Makes working with AEMO data more pleasant.
% gem install aemo# Gemfile
gem 'aemo'Access to AEMO Market Information from www.nemweb.com.au/mms.GRAPHS/GRAPHS/GRAPH_5#NSW1.csv or www.nemweb.com.au/mms.GRAPHS/GRAPHS/GRAPH_30#NSW1.csv
AEMO::Market::REGIONSAEMO::Market.current_dispatch('NSW')AEMO::Market.current_trading('NSW')AEMO::Market::Interval(datetime, { 'REGION' => 'NSW', 'TOTALDEMAND' => 123.456, 'RRP' => 78.96, 'PERIODTYPE' => 'TRADING'})interval.datetimeinterval.interval_lengthinterval.interval_typeinterval.is_dispatch?interval.is_trading?The value of the interval in Australian Dollars
interval.valueAEMO Regions.
Hash of abbreviations to fullnames of AEMO regions.
AEMO::Region::REGIONSAEMO::Region.new('NSW')region.abbrregion.to_sregion.fullnameregion.current_dispatchregion.current_tradingAEMO::Region.allTODO: Update this to provide more information on these class constants.
RECORD_INDICATORS TRANSACTION_CODE_FLAGS UOM UOM_NON_SPEC_MAPPING QUALITY_FLAGS METHOD_FLAGS REASON_CODES DATA_STREAM_SUFFIX
AEMO::NEM12.new(nmi)nem12.flag_to_snem12.to_anem12.to_csvAEMO::NEM12.parse_nem12_file(path_to_file)AEMO::NEM12.parse_nem12(string)General support for a National Meter Identifier.
AEMO::NMI::REGIONSNMIs have been allocated to DNSPs by AEMO. Provides an easy lookup of the network for a given NMI.
AEMO::NMI::NMI_ALLOCATIONSDistribution Loss Factor Codes as a hash of the code to the various sets of data from AEMO.
AEMO::NMI::DLF_CODESTransmission Node Identifiers as a hash of the TNI to the various sets of data from AEMO including relevant Marginal Loss Factors.
AEMO::NMI::TNI_CODESnmi = AEMO::NMI.new("4001234567")nmi.valid_nmi?nmi.valid_checksum?(checksum_value)Returns the network information based on NMI allocation.
nmi.networkReturns the checksum for a NMI
nmi.checksumReturns MSATS NMI Detail data as opposed to mapping it into
nmi.raw_msats_nmi_detail(options)Requires MSATS authorization to work. Sets attributes from MSATS NMI Detail request data.
nmi = AEMO::NMI.new("4001234567")
nmi.update_from_msats!Helper method for friendly address for a NMI from AEMO's structured address.
nmi.friendly_addressReturns the meters for a provided status ("C(urrent)" or "R(etired)").
nmi.meters_by_status(status)Returns the data streams for a provided status ("A(ctive)" or "I(nactive)").
nmi.data_streams_by_status(status)Provides current daily load for the NMI instead of at a data stream level.
nmi.current_daily_loadReturns the TNI MLF value for a given datetime.
nmi.tni_value(datetime)Returns the DLF value for a given datetime.
nmi.dlfc_value(datetime)MSATS is the Market Settlements And Trading System. This gem currently only provides support for AEMO's MSATS Web Services and does not provide capabilities around the B2B Inbox or other services not exposed via the AEMO Web Service.
Further information available at AEMO's website
Authentication requires an MSATS username and password configured for your participant id.
AEMO::MSATS(PARTICIPANT_ID, USERNAME, PASSWORD)AEMO::MSATS.c4(nmi, from_date,to_date,as_at_date, options = {})AEMO::MSATS.msats_limitsAEMO::MSATS.nmi_discovery_by_delivery_point_identifier(jurisdiction_code,delivery_point_identifier)AEMO::MSATS.nmi_discovery_by_meter_serial_number(jurisdiction_code,meter_serial_number)AEMO::MSATS.nmi_discovery_by_address(jurisdiction_code,options = {})- :building_or_property_name
- :location_descriptor
- :lot_number
- :flat_or_unit_number
- :flat_or_unit_type
- :floor_or_level_number
- :floor_or_level_type
- :house_number
- :house_number_suffix
- :street_name
- :street_suffix
- :street_type
- :suburb_or_place_or_locality
- :postcode
- :state_or_territory
AEMO::MSATS.system_statusAEMO::MSATS.nmi_detail(nmi, options = {})- :type
- :reason