Public/Consumption/Get-OctopusEnergyHelperElectricityUsed.ps1
<# .Synopsis Retrieves the consumption for a smart electricity meter. .PARAMETER apikey The Octopus Energy API Key .PARAMETER mpan The mpan of the electricity meter .PARAMETER serial_number The electricity meter's serial number .PARAMETER period_from Show consumption from the given datetime (inclusive). This parameter can be provided on its own. .PARAMETER period_to Show consumption to the given datetime (exclusive). This parameter also requires providing the period_from parameter to create a range. .PARAMETER page_size Page size of returned results. Default is 100, maximum is 25,000 to give a full year of half-hourly consumption details. .PARAMETER order_by Ordering of results returned. Default is that results are returned in reverse order from latest available figure. Valid values: * ‘period’, to give results ordered forward. * ‘-period’, (default), to give results ordered from most recent backwards. .PARAMETER group_by Grouping of consumption. Default is that consumption is returned in half-hour periods. Possible alternatives are: * ‘hour’ * ‘day’ * ‘week’ * ‘month’ * ‘quarter’ .INPUTS None .OUTPUTS Returns a PSCustomObject with details of the consumption .EXAMPLE Get-OctopusEnergyHelperElectricityUsed -mpan 1234567890 -serial_number A1B2C3D4 .FUNCTIONALITY Returns the consumption for a smart electricity meter. No parameters required if configuration has been set. #> function Get-OctopusEnergyHelperElectricityUsed { [CmdletBinding(SupportsShouldProcess=$true)] Param( [ValidateNotNullOrEmpty()] [securestring]$ApiKey=(Get-OctopusEnergyHelperAPIAuth), [ValidateNotNullOrEmpty()] [string]$mpan=(Get-OctopusEnergyHelperConfig -property mpan), [ValidateNotNullOrEmpty()] [string]$serial_number=(Get-OctopusEnergyHelperConfig -property elec_serial_number), [Parameter(ParameterSetName='InclusiveDateRange')] [Parameter(Mandatory=$true,ParameterSetName='ExclusiveDateRange')] [datetime]$period_from, [Parameter(Mandatory=$true,ParameterSetName='ExclusiveDateRange')] [datetime]$period_to, [ValidateRange(1,25000)] [int]$page_size, [ValidateSet("period","-period")] [string]$order_by, [ValidateSet("hour","day","week","month","quarter")] [string]$group_by ) foreach($param in $MyInvocation.MyCommand.Parameters.GetEnumerator()) { $var = Get-Variable -Name $param.Key -ErrorAction SilentlyContinue if ( $var.value -and (! $PSBoundParameters.ContainsKey($var.Name))) { $PSBoundParameters.Add($param.Key,$var.value) } } if( $pscmdlet.ShouldProcess("Octopus Energy API", "Retrieve Electricity Consumption") ) { $response = Get-OctopusEnergyHelperConsumption @PSBoundParameters Return $response } } |