Я хочу создать сценарий php, который находится на моем сервере и выдает разбираемую информацию, которую я хочу, в формате JSON (своего рода создание собственного промежуточного API, так сказать) из информации, предоставленной из API Octopus Agile.
Таким образом, API Octopus Agile публикует цены на электроэнергию для каждого 30-минутного периода в течение следующих 24 часов - он обновляется около 16:00 каждый день.
У них есть Триггер IFTTT, который может вызвать веб-запрос / ловушку, когда новая цена будет опубликована на следующий день (я хотел бы t ie, чтобы запустить мой сценарий для запуска обработки)
API плюет код в JSON формате, подобном этому ...
{
"count": 57067,
"next": "https://api.octopus.energy/v1/products/AGILE-18-02-21/electricity-tariffs/E-1R-AGILE-18-02-21-D/standard-unit-rates/?page=2",
"previous": null,
"results": [
{
"value_exc_vat": 6.42,
"value_inc_vat": 6.741,
"valid_from": "2020-04-03T21:30:00Z",
"valid_to": "2020-04-03T22:00:00Z"
},
{
"value_exc_vat": 7.48,
"value_inc_vat": 7.854,
"valid_from": "2020-04-03T21:00:00Z",
"valid_to": "2020-04-03T21:30:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T20:30:00Z",
"valid_to": "2020-04-03T21:00:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-03T20:00:00Z",
"valid_to": "2020-04-03T20:30:00Z"
},
{
"value_exc_vat": 8.16,
"value_inc_vat": 8.568,
"valid_from": "2020-04-03T19:30:00Z",
"valid_to": "2020-04-03T20:00:00Z"
},
{
"value_exc_vat": 9.68,
"value_inc_vat": 10.164,
"valid_from": "2020-04-03T19:00:00Z",
"valid_to": "2020-04-03T19:30:00Z"
},
{
"value_exc_vat": 9.68,
"value_inc_vat": 10.164,
"valid_from": "2020-04-03T18:30:00Z",
"valid_to": "2020-04-03T19:00:00Z"
},
{
"value_exc_vat": 9.33,
"value_inc_vat": 9.7965,
"valid_from": "2020-04-03T18:00:00Z",
"valid_to": "2020-04-03T18:30:00Z"
},
{
"value_exc_vat": 22.86,
"value_inc_vat": 24.003,
"valid_from": "2020-04-03T17:30:00Z",
"valid_to": "2020-04-03T18:00:00Z"
},
{
"value_exc_vat": 21.8,
"value_inc_vat": 22.89,
"valid_from": "2020-04-03T17:00:00Z",
"valid_to": "2020-04-03T17:30:00Z"
},
{
"value_exc_vat": 22.0,
"value_inc_vat": 23.1,
"valid_from": "2020-04-03T16:30:00Z",
"valid_to": "2020-04-03T17:00:00Z"
},
{
"value_exc_vat": 20.04,
"value_inc_vat": 21.042,
"valid_from": "2020-04-03T16:00:00Z",
"valid_to": "2020-04-03T16:30:00Z"
},
{
"value_exc_vat": 18.96,
"value_inc_vat": 19.908,
"valid_from": "2020-04-03T15:30:00Z",
"valid_to": "2020-04-03T16:00:00Z"
},
{
"value_exc_vat": 16.92,
"value_inc_vat": 17.766,
"valid_from": "2020-04-03T15:00:00Z",
"valid_to": "2020-04-03T15:30:00Z"
},
{
"value_exc_vat": 4.4,
"value_inc_vat": 4.62,
"valid_from": "2020-04-03T14:30:00Z",
"valid_to": "2020-04-03T15:00:00Z"
},
{
"value_exc_vat": 3.96,
"value_inc_vat": 4.158,
"valid_from": "2020-04-03T14:00:00Z",
"valid_to": "2020-04-03T14:30:00Z"
},
{
"value_exc_vat": 4.4,
"value_inc_vat": 4.62,
"valid_from": "2020-04-03T13:30:00Z",
"valid_to": "2020-04-03T14:00:00Z"
},
{
"value_exc_vat": 5.61,
"value_inc_vat": 5.8905,
"valid_from": "2020-04-03T13:00:00Z",
"valid_to": "2020-04-03T13:30:00Z"
},
{
"value_exc_vat": 5.94,
"value_inc_vat": 6.237,
"valid_from": "2020-04-03T12:30:00Z",
"valid_to": "2020-04-03T13:00:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-03T12:00:00Z",
"valid_to": "2020-04-03T12:30:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-03T11:30:00Z",
"valid_to": "2020-04-03T12:00:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-03T11:00:00Z",
"valid_to": "2020-04-03T11:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-03T10:30:00Z",
"valid_to": "2020-04-03T11:00:00Z"
},
{
"value_exc_vat": 6.18,
"value_inc_vat": 6.489,
"valid_from": "2020-04-03T10:00:00Z",
"valid_to": "2020-04-03T10:30:00Z"
},
{
"value_exc_vat": 5.1,
"value_inc_vat": 5.355,
"valid_from": "2020-04-03T09:30:00Z",
"valid_to": "2020-04-03T10:00:00Z"
},
{
"value_exc_vat": 6.18,
"value_inc_vat": 6.489,
"valid_from": "2020-04-03T09:00:00Z",
"valid_to": "2020-04-03T09:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-03T08:30:00Z",
"valid_to": "2020-04-03T09:00:00Z"
},
{
"value_exc_vat": 6.95,
"value_inc_vat": 7.2975,
"valid_from": "2020-04-03T08:00:00Z",
"valid_to": "2020-04-03T08:30:00Z"
},
{
"value_exc_vat": 6.18,
"value_inc_vat": 6.489,
"valid_from": "2020-04-03T07:30:00Z",
"valid_to": "2020-04-03T08:00:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T07:00:00Z",
"valid_to": "2020-04-03T07:30:00Z"
},
{
"value_exc_vat": 6.05,
"value_inc_vat": 6.3525,
"valid_from": "2020-04-03T06:30:00Z",
"valid_to": "2020-04-03T07:00:00Z"
},
{
"value_exc_vat": 4.84,
"value_inc_vat": 5.082,
"valid_from": "2020-04-03T06:00:00Z",
"valid_to": "2020-04-03T06:30:00Z"
},
{
"value_exc_vat": 6.49,
"value_inc_vat": 6.8145,
"valid_from": "2020-04-03T05:30:00Z",
"valid_to": "2020-04-03T06:00:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T05:00:00Z",
"valid_to": "2020-04-03T05:30:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-03T04:30:00Z",
"valid_to": "2020-04-03T05:00:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T04:00:00Z",
"valid_to": "2020-04-03T04:30:00Z"
},
{
"value_exc_vat": 6.01,
"value_inc_vat": 6.3105,
"valid_from": "2020-04-03T03:30:00Z",
"valid_to": "2020-04-03T04:00:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T03:00:00Z",
"valid_to": "2020-04-03T03:30:00Z"
},
{
"value_exc_vat": 6.58,
"value_inc_vat": 6.909,
"valid_from": "2020-04-03T02:30:00Z",
"valid_to": "2020-04-03T03:00:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T02:00:00Z",
"valid_to": "2020-04-03T02:30:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T01:30:00Z",
"valid_to": "2020-04-03T02:00:00Z"
},
{
"value_exc_vat": 6.78,
"value_inc_vat": 7.119,
"valid_from": "2020-04-03T01:00:00Z",
"valid_to": "2020-04-03T01:30:00Z"
},
{
"value_exc_vat": 6.6,
"value_inc_vat": 6.93,
"valid_from": "2020-04-03T00:30:00Z",
"valid_to": "2020-04-03T01:00:00Z"
},
{
"value_exc_vat": 6.4,
"value_inc_vat": 6.72,
"valid_from": "2020-04-03T00:00:00Z",
"valid_to": "2020-04-03T00:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-02T23:30:00Z",
"valid_to": "2020-04-03T00:00:00Z"
},
{
"value_exc_vat": 6.18,
"value_inc_vat": 6.489,
"valid_from": "2020-04-02T23:00:00Z",
"valid_to": "2020-04-02T23:30:00Z"
},
{
"value_exc_vat": 6.31,
"value_inc_vat": 6.6255,
"valid_from": "2020-04-02T22:30:00Z",
"valid_to": "2020-04-02T23:00:00Z"
},
{
"value_exc_vat": 7.66,
"value_inc_vat": 8.043,
"valid_from": "2020-04-02T22:00:00Z",
"valid_to": "2020-04-02T22:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-02T21:30:00Z",
"valid_to": "2020-04-02T22:00:00Z"
},
{
"value_exc_vat": 7.26,
"value_inc_vat": 7.623,
"valid_from": "2020-04-02T21:00:00Z",
"valid_to": "2020-04-02T21:30:00Z"
},
{
"value_exc_vat": 6.84,
"value_inc_vat": 7.182,
"valid_from": "2020-04-02T20:30:00Z",
"valid_to": "2020-04-02T21:00:00Z"
},
{
"value_exc_vat": 8.38,
"value_inc_vat": 8.799,
"valid_from": "2020-04-02T20:00:00Z",
"valid_to": "2020-04-02T20:30:00Z"
},
{
"value_exc_vat": 7.7,
"value_inc_vat": 8.085,
"valid_from": "2020-04-02T19:30:00Z",
"valid_to": "2020-04-02T20:00:00Z"
},
{
"value_exc_vat": 8.8,
"value_inc_vat": 9.24,
"valid_from": "2020-04-02T19:00:00Z",
"valid_to": "2020-04-02T19:30:00Z"
},
{
"value_exc_vat": 8.27,
"value_inc_vat": 8.6835,
"valid_from": "2020-04-02T18:30:00Z",
"valid_to": "2020-04-02T19:00:00Z"
},
{
"value_exc_vat": 7.92,
"value_inc_vat": 8.316,
"valid_from": "2020-04-02T18:00:00Z",
"valid_to": "2020-04-02T18:30:00Z"
},
{
"value_exc_vat": 20.48,
"value_inc_vat": 21.504,
"valid_from": "2020-04-02T17:30:00Z",
"valid_to": "2020-04-02T18:00:00Z"
},
{
"value_exc_vat": 20.26,
"value_inc_vat": 21.273,
"valid_from": "2020-04-02T17:00:00Z",
"valid_to": "2020-04-02T17:30:00Z"
},
{
"value_exc_vat": 20.06,
"value_inc_vat": 21.063,
"valid_from": "2020-04-02T16:30:00Z",
"valid_to": "2020-04-02T17:00:00Z"
},
{
"value_exc_vat": 19.6,
"value_inc_vat": 20.58,
"valid_from": "2020-04-02T16:00:00Z",
"valid_to": "2020-04-02T16:30:00Z"
},
{
"value_exc_vat": 18.5,
"value_inc_vat": 19.425,
"valid_from": "2020-04-02T15:30:00Z",
"valid_to": "2020-04-02T16:00:00Z"
},
{
"value_exc_vat": 17.51,
"value_inc_vat": 18.3855,
"valid_from": "2020-04-02T15:00:00Z",
"valid_to": "2020-04-02T15:30:00Z"
},
{
"value_exc_vat": 3.08,
"value_inc_vat": 3.234,
"valid_from": "2020-04-02T14:30:00Z",
"valid_to": "2020-04-02T15:00:00Z"
},
{
"value_exc_vat": 2.42,
"value_inc_vat": 2.541,
"valid_from": "2020-04-02T14:00:00Z",
"valid_to": "2020-04-02T14:30:00Z"
},
{
"value_exc_vat": 3.08,
"value_inc_vat": 3.234,
"valid_from": "2020-04-02T13:30:00Z",
"valid_to": "2020-04-02T14:00:00Z"
},
{
"value_exc_vat": 3.17,
"value_inc_vat": 3.3285,
"valid_from": "2020-04-02T13:00:00Z",
"valid_to": "2020-04-02T13:30:00Z"
},
{
"value_exc_vat": 3.96,
"value_inc_vat": 4.158,
"valid_from": "2020-04-02T12:30:00Z",
"valid_to": "2020-04-02T13:00:00Z"
},
{
"value_exc_vat": 5.15,
"value_inc_vat": 5.4075,
"valid_from": "2020-04-02T12:00:00Z",
"valid_to": "2020-04-02T12:30:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T11:30:00Z",
"valid_to": "2020-04-02T12:00:00Z"
},
{
"value_exc_vat": 6.01,
"value_inc_vat": 6.3105,
"valid_from": "2020-04-02T11:00:00Z",
"valid_to": "2020-04-02T11:30:00Z"
},
{
"value_exc_vat": 5.17,
"value_inc_vat": 5.4285,
"valid_from": "2020-04-02T10:30:00Z",
"valid_to": "2020-04-02T11:00:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T10:00:00Z",
"valid_to": "2020-04-02T10:30:00Z"
},
{
"value_exc_vat": 5.17,
"value_inc_vat": 5.4285,
"valid_from": "2020-04-02T09:30:00Z",
"valid_to": "2020-04-02T10:00:00Z"
},
{
"value_exc_vat": 5.94,
"value_inc_vat": 6.237,
"valid_from": "2020-04-02T09:00:00Z",
"valid_to": "2020-04-02T09:30:00Z"
},
{
"value_exc_vat": 6.27,
"value_inc_vat": 6.5835,
"valid_from": "2020-04-02T08:30:00Z",
"valid_to": "2020-04-02T09:00:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-02T08:00:00Z",
"valid_to": "2020-04-02T08:30:00Z"
},
{
"value_exc_vat": 7.0,
"value_inc_vat": 7.35,
"valid_from": "2020-04-02T07:30:00Z",
"valid_to": "2020-04-02T08:00:00Z"
},
{
"value_exc_vat": 7.7,
"value_inc_vat": 8.085,
"valid_from": "2020-04-02T07:00:00Z",
"valid_to": "2020-04-02T07:30:00Z"
},
{
"value_exc_vat": 7.04,
"value_inc_vat": 7.392,
"valid_from": "2020-04-02T06:30:00Z",
"valid_to": "2020-04-02T07:00:00Z"
},
{
"value_exc_vat": 5.06,
"value_inc_vat": 5.313,
"valid_from": "2020-04-02T06:00:00Z",
"valid_to": "2020-04-02T06:30:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T05:30:00Z",
"valid_to": "2020-04-02T06:00:00Z"
},
{
"value_exc_vat": 4.62,
"value_inc_vat": 4.851,
"valid_from": "2020-04-02T05:00:00Z",
"valid_to": "2020-04-02T05:30:00Z"
},
{
"value_exc_vat": 5.06,
"value_inc_vat": 5.313,
"valid_from": "2020-04-02T04:30:00Z",
"valid_to": "2020-04-02T05:00:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T04:00:00Z",
"valid_to": "2020-04-02T04:30:00Z"
},
{
"value_exc_vat": 4.95,
"value_inc_vat": 5.1975,
"valid_from": "2020-04-02T03:30:00Z",
"valid_to": "2020-04-02T04:00:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T03:00:00Z",
"valid_to": "2020-04-02T03:30:00Z"
},
{
"value_exc_vat": 4.07,
"value_inc_vat": 4.2735,
"valid_from": "2020-04-02T02:30:00Z",
"valid_to": "2020-04-02T03:00:00Z"
},
{
"value_exc_vat": 4.6,
"value_inc_vat": 4.83,
"valid_from": "2020-04-02T02:00:00Z",
"valid_to": "2020-04-02T02:30:00Z"
},
{
"value_exc_vat": 5.28,
"value_inc_vat": 5.544,
"valid_from": "2020-04-02T01:30:00Z",
"valid_to": "2020-04-02T02:00:00Z"
},
{
"value_exc_vat": 5.5,
"value_inc_vat": 5.775,
"valid_from": "2020-04-02T01:00:00Z",
"valid_to": "2020-04-02T01:30:00Z"
},
{
"value_exc_vat": 5.57,
"value_inc_vat": 5.8485,
"valid_from": "2020-04-02T00:30:00Z",
"valid_to": "2020-04-02T01:00:00Z"
},
{
"value_exc_vat": 4.64,
"value_inc_vat": 4.872,
"valid_from": "2020-04-02T00:00:00Z",
"valid_to": "2020-04-02T00:30:00Z"
},
{
"value_exc_vat": 4.62,
"value_inc_vat": 4.851,
"valid_from": "2020-04-01T23:30:00Z",
"valid_to": "2020-04-02T00:00:00Z"
},
{
"value_exc_vat": 4.95,
"value_inc_vat": 5.1975,
"valid_from": "2020-04-01T23:00:00Z",
"valid_to": "2020-04-01T23:30:00Z"
},
{
"value_exc_vat": 5.72,
"value_inc_vat": 6.006,
"valid_from": "2020-04-01T22:30:00Z",
"valid_to": "2020-04-01T23:00:00Z"
},
{
"value_exc_vat": 7.48,
"value_inc_vat": 7.854,
"valid_from": "2020-04-01T22:00:00Z",
"valid_to": "2020-04-01T22:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-01T21:30:00Z",
"valid_to": "2020-04-01T22:00:00Z"
},
{
"value_exc_vat": 7.48,
"value_inc_vat": 7.854,
"valid_from": "2020-04-01T21:00:00Z",
"valid_to": "2020-04-01T21:30:00Z"
},
{
"value_exc_vat": 6.16,
"value_inc_vat": 6.468,
"valid_from": "2020-04-01T20:30:00Z",
"valid_to": "2020-04-01T21:00:00Z"
},
{
"value_exc_vat": 7.26,
"value_inc_vat": 7.623,
"valid_from": "2020-04-01T20:00:00Z",
"valid_to": "2020-04-01T20:30:00Z"
}
]
}
Что я хотел бы сделать, это взять эти JSON данные для даты, а затем отсортировать их по наименьшему числу (в данном случае наименее дорогой) от value_inc_vat к наивысшему. Затем я бы запросил, например, какой 12-й результат из самого низкого будет с модификатором URL.
Так, например, url.com/script.php?=12 даст мне 12-й самый дешевый результат в виде цифры (например, 6.741) Я мог бы заменить 12 на любой результат снизу вверх, который я хочу.
Чтобы объяснить, как это полезно, я использую WebCore для домашней автоматизации. Например, мне нужно, чтобы моя горячая вода работала 6 часов в день - каждый сегмент занимает 30 минут, поэтому 12-й результат - это 6-часовой сегмент и менее. Если я скажу WebCore включать горячую воду только тогда, когда она достигнет этой цены и ниже (у меня уже есть проверка текущей цены), то она будет включаться только на 6 часов в день в течение самых дешевых 12 периодов.
Я мог бы использовать модификатор, чтобы выяснить, какова эта цифра для любого количества периодов, и всегда знать, что я использовал самые дешевые суммы для этой 24-часовой сессии.
Я, к сожалению, понятия не имею, как построить это, мог бы кто-нибудь предлагает грубый пример? Чтобы получить исходные данные, вам нужно выполнить запрос GET по следующему URL-адресу
https://api.octopus.energy/v1/products/AGILE-18-02-21/electricity-tariffs/E-1R-AGILE-18-02-21-D/standard-unit-rates/
Документы по API Octopus Agile можно найти здесь - но важно, чтобы все, что нужно для запуска, было выполнено выше https://developer.octopus.energy/docs/api/