rogerthomas84/php-octopus-mini-api 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rogerthomas84/php-octopus-mini-api

最新稳定版本:1.0.3

Composer 安装命令:

composer require rogerthomas84/php-octopus-mini-api

包简介

A working example of getting live consumption data from the Octopus API using PHP

README 文档

README

CI

Description...

This is a simple library, with a basic implementation of the Octopus API, as well as a small part of their GraphQL API. It's original purpose was primarily to serve as a documentation of how to retrieve the live consumption data from the Octopus Energy GraphQL API, but has since been expanded to include some other basic functionality, such as retrieval of half-hourly consumption data, as well as account information.

In order to retrieve the live consumption data, you must have an Octopus Mini device, and (obviously) you need to have an account with Octopus Energy. If you have an Octopus account, but don't have a Mini device, you can request a free one from Octopus Energy here.

Much of this library has been written using the documentation available from Octopus:

Usage...

composer require rogerthomas84/php-octopus-mini-api
$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
);

Testing...

To test this, you'll need to set the following environment variables:

  • OCTOPUS_EMAIL
  • OCTOPUS_PASSWORD
  • OCTOPUS_ACCOUNT_NUMBER
  • OCTOPUS_API_KEY
  • OCTOPUS_MPAN
  • OCTOPUS_SERIAL_NUMBER

Then run the following commands:

composer install
./vendor/bin/phpunit

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: mit
  • 更新时间: 2024-07-05