portfolio_manager 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 177b5b07384c5f9c24b5cb9ef69cb1517af02f1f76d9af1cc74eab9654dfe477
4
- data.tar.gz: 87ae59aa73df92530ae4c6ea1feb139a4e8b964c6a6ca3ad39fc6249cf3acd9f
3
+ metadata.gz: 3e54963fc5c067a77654a9f85987306461782751a7ec82fa155e3e01d2fed6bc
4
+ data.tar.gz: febc5bd8568aa7ace57bf2a4f2a93586312cbae8acdeb155ceae4065aa93e2c9
5
5
  SHA512:
6
- metadata.gz: a85026346412c4a627b41518f0b7967e113f7f6679738ff153e8953b3a1c5da587f499c4a5b635d867121d0f0fffc6e0fe9bcbdcf6f5700caf184234da16381d
7
- data.tar.gz: 4ccfa27318accc589869fe8676f749c64a8a59e02f29cf02cb7a5f5e77622c3decb5faf4d3b14721ded9013481a7003a44e2afa49204fdcf96da17f263b66634
6
+ metadata.gz: 00146adc34b5281c9b7eea69440425f7848626c9b2b5f3ada3ee9174202b4994b1e3d4c6f89ae9992e629ce8c0ea4a94ec2e6cb9dbdcafb23c5b7c1d49187476
7
+ data.tar.gz: aa096c71717824ea611aa6795fe7c71e7dbf851d37db6b547e89aa748f39612624246a652482d9691ea3c0d3b6674348708dfc7370a6b4accbdd6f7a9eaed06f
data/README.md CHANGED
@@ -62,11 +62,22 @@ GET | /property/(propertyId)/building/list | `building_list(property_id)` | Retu
62
62
  #### Meter Services
63
63
  http://portfoliomanager.energystar.gov/webservices/home/api/meter
64
64
 
65
+
65
66
  HTTP | Path | Method | Description
66
67
  ---- | ---- | ------ | -----------
68
+ GET | /customer/(customerId)/meter/whatChanged?date=(YYYY-MM-DD) | `what_changed_meter_list(customer_id, date, next_page_key: nil, previous_page_key: nil)` | Returns a list of meters that have been modified since a specified date.
67
69
  GET | /meter/(meterId) | `meter(meter_id)` | Returns information for a specified meter.
68
70
  GET | /property/(propertyId)/meter/list | `meter_list(property_id)` | Returns a list of meters for a specified property.
69
- GET | /meter/(meterId)/consumptionData?page=(page)&startDate=(YYYY-MM-DD)&endDate=(YYYY-MM-DD) | `metrics(property_id, year, month, measurement_system, metric)` | Returns the consumption data for a specified meter in sets of 20.
71
+ GET | /property/(propertyId)/meter/whatChanged?date=(YYYY-MM-DD) | `what_changed_meter_list_for_property(property_id, date, next_page_key: nil, previous_page_key: nil)` | Returns a list of meters that have been modified since a specified date, for a specified property.
72
+ GET | /customer/(customerId)/meter/consumptionData/whatChanged?date=(YYYY-MM-DD) | `what_changed_consumption_data_meter_list(customer_id, date, next_page_key: nil, previous_page_key: nil)` | Returns a list of meters for a specified customer that have had their consumption data modified since a specified date.
73
+ GET | /meter/(meterId)/consumptionData?page=(page)&startDate=(YYYY-MM-DD)&endDate=(YYYY-MM-DD) | `consumption_data(meter_id, page: nil, start_date: nil, end_date: nil)` | Returns the consumption data for a specified meter in sets of 120.
74
+
75
+ #### Reporting Services
76
+ https://portfoliomanager.energystar.gov/webservices/home/api/reporting
77
+
78
+ HTTP | Path | Method | Description
79
+ ---- | ---- | ------ | -----------
80
+ GET | /property/(propertyId)/metrics | `property_metrics(property_id, year, month, measurement_system, metric)` | Returns the values for a specified set of metrics and units for a specific property and period ending date. The property must already be shared with you.
70
81
 
71
82
  #### Connection/Share Services
72
83
  https://portfoliomanager.energystar.gov/webservices/home/api/connection
@@ -5,6 +5,7 @@ require 'portfolio_manager/rest/building'
5
5
  require 'portfolio_manager/rest/data_exchange_settings'
6
6
  require 'portfolio_manager/rest/meter'
7
7
  require 'portfolio_manager/rest/property'
8
+ require 'portfolio_manager/rest/reporting'
8
9
  require 'portfolio_manager/rest/customer'
9
10
  require 'portfolio_manager/rest/connection'
10
11
  require 'portfolio_manager/rest/share'
@@ -20,6 +21,7 @@ module PortfolioManager
20
21
  include PortfolioManager::REST::DataExchangeSettings
21
22
  include PortfolioManager::REST::Meter
22
23
  include PortfolioManager::REST::Property
24
+ include PortfolioManager::REST::Reporting
23
25
  include PortfolioManager::REST::Customer
24
26
  include PortfolioManager::REST::Connection
25
27
  include PortfolioManager::REST::Share
@@ -29,16 +29,69 @@ module PortfolioManager
29
29
  perform_get_request("/property/#{property_id}/meter/list")
30
30
  end
31
31
 
32
- def metrics(property_id, year, month, measurement_system, metric)
33
- perform_get_request(
34
- "/property/#{property_id}/metrics",
35
- query: {
36
- year: year, month: month, measurementSystem: measurement_system
37
- },
38
- header: {
39
- 'PM-Metrics' => metric
40
- }
41
- )
32
+ ##
33
+ # This web service returns a list of meters that changed since a user specified date. The list of meters returned are account specific.
34
+ # The returned list only shows meters that you have permission to view. Results are returned in increments of 1,000 per set.
35
+ #
36
+ # Dates must be formatted as YYYY-MM-DD
37
+ #
38
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/getWhatChanged/get
39
+ # pagination template:
40
+ # "/customer/#{customerId}/meter/whatChanged?nextPageKey=#{next_page_key}&date=#{date}"
41
+ def what_changed_meter_list(customer_id, date, next_page_key: nil, previous_page_key: nil)
42
+ query_string = URI.encode_www_form({ date: date, nextPageKey: next_page_key, previousPageKey: previous_page_key }.reject! {|k,v| v.nil?})
43
+ resource_path = "/customer/#{customer_id}/meter/whatChanged"
44
+ link = query_string.empty? ? resource_path : "#{resource_path}?#{query_string}"
45
+ perform_get_request(link)
46
+ end
47
+
48
+ ##
49
+ # This web service returns a list of meters within a specified property that changed since a user specified date. The list of meters returned are property specific.
50
+ # The returned list only shows meters that you have permission to view. Results are returned in increments of 1,000 per set.
51
+ #
52
+ # Dates must be formatted as YYYY-MM-DD
53
+ #
54
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/getWhatChanged/get
55
+ # pagination template:
56
+ # "/property/#{propertyId}/meter/whatChanged?nextPageKey=#{next_page_key}&date=#{date}"
57
+ def what_changed_meter_list_for_property(property_id, date, next_page_key: nil, previous_page_key: nil)
58
+ query_string = URI.encode_www_form({ date: date, nextPageKey: next_page_key, previousPageKey: previous_page_key }.reject! {|k,v| v.nil?})
59
+ resource_path = "/property/#{property_id}/meter/whatChanged"
60
+ link = query_string.empty? ? resource_path : "#{resource_path}?#{query_string}"
61
+ perform_get_request(link)
62
+ end
63
+
64
+ ##
65
+ # This web service retrieves a list of consumption data for a specific
66
+ # meter. The meter must already be shared with you.
67
+ #
68
+ # The consumption data is returned in sets of 120. An optional date range can specified to return a certain set of consumption records.
69
+ # Dates must be formatted as YYYY-MM-DD
70
+ #
71
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/get
72
+ # page_link template:
73
+ # "/meter/#{meter_id}/consumptionData/?page=#{page}&startDate=#{start_date}&endDate=#{end_date}"
74
+ def consumption_data(meter_id, page: nil, start_date: nil, end_date: nil)
75
+ query_string = URI.encode_www_form({ page: page, startDate: start_date, endDate: end_date }.reject! {|k,v| v.nil?})
76
+ resource_path = "/meter/#{meter_id}/consumptionData"
77
+ link = query_string.empty? ? resource_path : "#{resource_path}?#{query_string}"
78
+ perform_get_request(link)
79
+ end
80
+
81
+ ##
82
+ # This web service returns a list of meters that have had their consumption data changed since a user specified date. The list of meters returned are account specific.
83
+ # The returned list only shows meters that you have permission to view. Results are returned in increments of 1,000 per set.
84
+ #
85
+ # Dates must be formatted as YYYY-MM-DD
86
+ #
87
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionDataGetWhatChanged/get
88
+ # pagination template:
89
+ # "/customer/#{customerId}/meter/consumptionData/whatChanged?nextPageKey=#{next_page_key}&date=#{date}"
90
+ def what_changed_consumption_data_meter_list(customer_id, date, next_page_key: nil, previous_page_key: nil)
91
+ query_string = URI.encode_www_form({ date: date, nextPageKey: next_page_key, previousPageKey: previous_page_key }.reject! {|k,v| v.nil?})
92
+ resource_path = "/customer/#{customer_id}/meter/consumptionData/whatChanged"
93
+ link = query_string.empty? ? resource_path : "#{resource_path}?#{query_string}"
94
+ perform_get_request(link)
42
95
  end
43
96
  end
44
97
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'portfolio_manager/rest/utils'
4
+
5
+ module PortfolioManager
6
+ module REST
7
+ module Reporting
8
+ include PortfolioManager::REST::Utils
9
+
10
+ def property_metrics(property_id, year, month, measurement_system, metric)
11
+ perform_get_request(
12
+ "/property/#{property_id}/metrics",
13
+ query: {
14
+ year: year, month: month, measurementSystem: measurement_system
15
+ },
16
+ header: {
17
+ 'PM-Metrics' => metric
18
+ }
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'portfolio_manager/rest/request'
4
- require 'nokogiri'
5
4
 
6
5
  module PortfolioManager
7
6
  module REST
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PortfolioManager
4
- VERSION = '0.4.0'
4
+ VERSION = '0.6.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: portfolio_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Reed
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-14 00:00:00.000000000 Z
11
+ date: 2025-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -134,6 +134,7 @@ files:
134
134
  - lib/portfolio_manager/rest/data_exchange_settings.rb
135
135
  - lib/portfolio_manager/rest/meter.rb
136
136
  - lib/portfolio_manager/rest/property.rb
137
+ - lib/portfolio_manager/rest/reporting.rb
137
138
  - lib/portfolio_manager/rest/request.rb
138
139
  - lib/portfolio_manager/rest/share.rb
139
140
  - lib/portfolio_manager/rest/utils.rb
@@ -143,7 +144,7 @@ homepage: https://github.com/mejackreed/portfolio_manager
143
144
  licenses:
144
145
  - MIT
145
146
  metadata: {}
146
- post_install_message:
147
+ post_install_message:
147
148
  rdoc_options: []
148
149
  require_paths:
149
150
  - lib
@@ -158,8 +159,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
159
  - !ruby/object:Gem::Version
159
160
  version: '0'
160
161
  requirements: []
161
- rubygems_version: 3.4.6
162
- signing_key:
162
+ rubygems_version: 3.0.3.1
163
+ signing_key:
163
164
  specification_version: 4
164
165
  summary: A Ruby client for the EnergyStar Portfolio Manager web services.
165
166
  test_files: []