| Title: | Interact with the 'Octopus Energy' API | 
| Version: | 1.0.1 | 
| Description: | A simple wrapper for the 'Octopus Energy' API https://developer.octopus.energy/docs/api/. It handles authentication, by storing a provided API key and meter details. Implemented endpoints include 'products' for viewing tariff details and 'consumption' for viewing meter consumption data. | 
| License: | MIT + file LICENSE | 
| URL: | https://github.com/Moohan/octopusR, https://moohan.github.io/octopusR/ | 
| BugReports: | https://github.com/Moohan/octopusR/issues | 
| Imports: | askpass, cli, glue, httr2, rlang, tibble | 
| Suggests: | covr, lubridate, spelling, testthat | 
| Config/testthat/edition: | 3 | 
| Encoding: | UTF-8 | 
| Language: | en-GB | 
| RoxygenNote: | 7.2.3 | 
| NeedsCompilation: | no | 
| Packaged: | 2023-06-09 14:38:49 UTC; James | 
| Author: | James McMahon  | 
| Maintainer: | James McMahon <jamesmcmahon0@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-06-09 15:10:07 UTC | 
Check a datetime argument is in a suitable format
Description
Check if a given argument is of a proper ISO 8601 format e.g.
2023-03-02T21:26:10Z. If not it will give an informative error message.
Usage
check_datetime_format(arg_date)
Arguments
arg_date | 
 The argument to check  | 
Check a logical argument is in a suitable format
Description
Check if a given argument is of a logical. If not it will give an informative error message.
Usage
check_logical(arg_lgl)
Arguments
arg_lgl | 
 The argument to check  | 
List consumption for a meter
Description
Return a list of consumption values for half-hour periods for a given meter-point and meter.
Unit of measurement:
Electricity meters: kWh
SMETS1 Secure gas meters: kWh
SMETS2 gas meters: m^3
Parsing dates
To return dates properly parsed lubridate is
required. Use the tz parameter to specify a time zone e.g. tz = "UTC",
the default (tz = NULL) will return the dates unparsed, as characters.
Usage
get_consumption(
  meter_type = c("electricity", "gas"),
  mpan_mprn = get_meter_details(meter_type)[["mpan_mprn"]],
  serial_number = get_meter_details(meter_type)[["serial_number"]],
  api_key = get_api_key(),
  period_from = NULL,
  period_to = NULL,
  tz = NULL,
  order_by = c("-period", "period"),
  group_by = c("hour", "day", "week", "month", "quarter")
)
Arguments
meter_type | 
 Type of meter-point, electricity or gas  | 
mpan_mprn | 
 The electricity meter-point's MPAN or gas meter-point’s MPRN.  | 
serial_number | 
 The meter's serial number.  | 
api_key | 
 Your API key. If you are an Octopus Energy customer, you can generate an API key on the developer dashboard.  | 
period_from | 
 Show consumption from the given datetime (inclusive). This parameter can be provided on its own.  | 
period_to | 
 Show consumption to the given datetime (exclusive).
This parameter also requires providing the   | 
tz | 
 a character string that specifies which time zone to parse the date with. The string must be a time zone that is recognized by the user's OS.  | 
order_by | 
 Ordering of results returned. Default is that results are returned in reverse order from latest available figure. Valid values: 
  | 
group_by | 
 Aggregates consumption over a specified time period. A day is considered to start and end at midnight in the server's time zone. The default is that consumption is returned in half-hour periods. Accepted values are: 
  | 
Value
a tibble of the requested consumption data.
Get the GSP of a meter-point.
Description
This endpoint can be used to get the GSP of a given meter-point.
Usage
get_meter_gsp(mpan = get_meter_details("electricity")[["mpan_mprn"]])
Arguments
mpan | 
 The electricity meter-point's MPAN  | 
Value
a character of the meter-points GSP.
Return a list of energy products
Description
By default, results will be public energy products but if authenticated organisations will also see products available to their organisation.
Usage
get_products(
  is_variable = NULL,
  is_green = NULL,
  is_tracker = NULL,
  is_prepay = NULL,
  is_business = FALSE,
  available_at = Sys.Date(),
  authenticate = FALSE,
  api_key = NULL
)
Arguments
is_variable | 
 (boolean, optional) Show only variable products.  | 
is_green | 
 (boolean, optional) Show only green products.  | 
is_tracker | 
 (boolean, optional) Show only tracker products.  | 
is_prepay | 
 (boolean, optional) Show only pre-pay products.  | 
is_business | 
 (boolean, default: FALSE) Show only business products.  | 
available_at | 
 Show products available for new agreements on the given datetime. Defaults to current datetime, effectively showing products that are currently available.  | 
authenticate | 
 (boolean, default: FALSE) Use an   | 
api_key | 
 Your API key. If you are an Octopus Energy customer, you can generate an API key on the developer dashboard.  | 
Value
a tibble
Examples
get_products(is_green = TRUE)
Set the Octopus API key
Description
Set the Octopus API key to use. This will be stored as an
environment variable. You should add OCTOPUSR_API_KEY = <api_key> to your
.Renviron otherwise you will have to call this function every session.
Usage
set_api_key(api_key = NULL)
Arguments
api_key | 
 Your API key. If you are an Octopus Energy customer, you can generate an API key on the developer dashboard.  | 
Value
No return value, called for side effects.
Set the details for your gas/electricity meter
Description
Set the details for your gas/electricity meter. These will be stored as environment variables. You should add:
-  
OCTOPUSR_MPAN = <electric MPAN> -  
OCTOPUSR_MPRN = <gas MPRN> -  
OCTOPUSR_ELEC_SERIAL_NUM = <electric serial number> -  
OCTOPUSR_GAS_SERIAL_NUM = <gas serial number>to your.Renvironotherwise you will have to call this function every session. You can find your meter details (MPAN/MPRN and serial number(s)) on the developer dashboard. 
Usage
set_meter_details(
  meter_type = c("electricity", "gas"),
  mpan_mprn = NULL,
  serial_number = NULL
)
Arguments
meter_type | 
 Type of meter-point, electricity or gas  | 
mpan_mprn | 
 The electricity meter-point's MPAN or gas meter-point’s MPRN.  | 
serial_number | 
 The meter's serial number.  | 
Value
No return value, called for side effects.