PHP code example of rogerthomas84 / php-octopus-mini-api

1. Go to this page and download the library: Download rogerthomas84/php-octopus-mini-api library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

rogerthomas84 / php-octopus-mini-api example snippets


$api = \Rt\OctopusAPI\OctopusApiSingleton::getInstance();
$apiInstance = $api->setEmail(
    getenv('OCTOPUS_EMAIL')
)->setPassword(
    getenv('OCTOPUS_PASSWORD')
)->setAccountNumber(
    getenv('OCTOPUS_ACCOUNT_NUMBER')
)->setApiKey(
    getenv('OCTOPUS_API_KEY')
)->setMpan(
    getenv('OCTOPUS_MPAN')
)->setSerialNumber(
    getenv('OCTOPUS_SERIAL_NUMBER')
);

$graphQl = $apiInstance->getOctopusGraphQL();

// $myToken = $graphQl->getToken();
// $meterDeviceId = $graphQl->getMeterDeviceId();
$consumption = $graphQl->getLiveConsumption();
// or you can pass the meterDeviceId directly:
// $consumption = $graphQl->getLiveConsumption($meterDeviceId);

echo 'Current consumption is ' . $consumption . 'W\n';

$myAccount = $apiInstance->getAccount();
echo 'You have ' . count($myAccount->getProperties()) . ' properties on your account\n';

$myProperty = $myAccount->getProperties()[0];
echo 'The first property on your account is ' . $myProperty->getAddressLine1() . "\n";

$myMeter = $myProperty->getElectricityMeterPoints()[0];
echo 'The first electricity meter point on your property is ' . $myMeter->getMpan() . "\n";

$myAgreement = $myMeter->getAgreements()[0];
$myTariffCode = $myAgreement->getTariffCode();
echo 'My tariff code is ' . $myAgreement->getTariffCode() . "\n";


$dateFrom = DateTime::createFromFormat('Y-m-d', '2021-01-01');
$dateTo = DateTime::createFromFormat('Y-m-d', '2021-01-02');

$consumptionData = $apiInstance->getElectricityService()->getHalfHourReadings(
    $dateFrom,
    $dateTo,
    25000, // limit per page
    '-period' // or 'period', used for sorting
);

$standingCharges = $apiInstance->getElectricityService()->getStandingCharges(
    $myTariffCode,
    $dateFrom,
    $dateTo,
    25000, // limit per page
);

$unitRates = $apiInstance->getElectricityService()->getStandardUnitRates(
    $myTariffCode,
    $dateFrom,
    $dateTo,
    25000, // limit per page
);

composer