Logic Machine Forum
Minimum value + hour and maximum value + hour of PVPC rate - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: Minimum value + hour and maximum value + hour of PVPC rate (/showthread.php?tid=4205)



Minimum value + hour and maximum value + hour of PVPC rate - JRP - 27.08.2022

Hello

I obtain, through the Esios API, the hourly price of electricity in Spain.

A table like this is contained.

Code:
* table:
["indicator"]
  * table:
   ["composited"]
    * bool: false
   ["magnitud"]
    * table:
     [1]
      * table:
       ["name"]
        * string: Precio
       ["id"]
        * number: 23
   ["id"]
    * number: 1001
   ["tiempo"]
    * table:
     [1]
      * table:
       ["name"]
        * string: Hora
       ["id"]
        * number: 4
   ["step_type"]
    * string: linear
   ["short_name"]
    * string: PVPC T. 2.0TD
   ["values"]
    * table:
     [1]
      * table:
       ["datetime_utc"]
        * string: 2022-08-26T22:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 492.82
       ["tz_time"]
        * string: 2022-08-26T22:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T00:00:00.000+02:00
     [2]
      * table:
       ["datetime_utc"]
        * string: 2022-08-26T23:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 497.35
       ["tz_time"]
        * string: 2022-08-26T23:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T01:00:00.000+02:00
     [3]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T00:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 494.44
       ["tz_time"]
        * string: 2022-08-27T00:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T02:00:00.000+02:00
     [4]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T01:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 508.86
       ["tz_time"]
        * string: 2022-08-27T01:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T03:00:00.000+02:00
     [5]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T02:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 531.02
       ["tz_time"]
        * string: 2022-08-27T02:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T04:00:00.000+02:00
     [6]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T03:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 553.12
       ["tz_time"]
        * string: 2022-08-27T03:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T05:00:00.000+02:00
     [7]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T04:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 568.16
       ["tz_time"]
        * string: 2022-08-27T04:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T06:00:00.000+02:00
     [8]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T05:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 557.06
       ["tz_time"]
        * string: 2022-08-27T05:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T07:00:00.000+02:00
     [9]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T06:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 507.94
       ["tz_time"]
        * string: 2022-08-27T06:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T08:00:00.000+02:00
     [10]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T07:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 445.72
       ["tz_time"]
        * string: 2022-08-27T07:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T09:00:00.000+02:00
     [11]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T08:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 405.18
       ["tz_time"]
        * string: 2022-08-27T08:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T10:00:00.000+02:00
     [12]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T09:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 389.13
       ["tz_time"]
        * string: 2022-08-27T09:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T11:00:00.000+02:00
     [13]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T10:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 381.83
       ["tz_time"]
        * string: 2022-08-27T10:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T12:00:00.000+02:00
     [14]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T11:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 381.23
       ["tz_time"]
        * string: 2022-08-27T11:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T13:00:00.000+02:00
     [15]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T12:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 385.12
       ["tz_time"]
        * string: 2022-08-27T12:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T14:00:00.000+02:00
     [16]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T13:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 391.42
       ["tz_time"]
        * string: 2022-08-27T13:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T15:00:00.000+02:00
     [17]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T14:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 400.21
       ["tz_time"]
        * string: 2022-08-27T14:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T16:00:00.000+02:00
     [18]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T15:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 407.64
       ["tz_time"]
        * string: 2022-08-27T15:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T17:00:00.000+02:00
     [19]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T16:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 414.83
       ["tz_time"]
        * string: 2022-08-27T16:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T18:00:00.000+02:00
     [20]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T17:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 491.04
       ["tz_time"]
        * string: 2022-08-27T17:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T19:00:00.000+02:00
     [21]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T18:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 544.13
       ["tz_time"]
        * string: 2022-08-27T18:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T20:00:00.000+02:00
     [22]
      * table:
       ["datetime_utc"]
        * string: 2022-08-27T19:00:00Z
       ["geo_id"]
        * number: 8741
       ["value"]
        * number: 555.8
       ["tz_time"]
        * string: 2022-08-27T19:00:00.000Z
       ["geo_name"]
        * string: Península
       ["datetime"]
        * string: 2022-08-27T21:00:00.000+02:00
     [23]
      * table:
       ["date...


What I want is to save in virtual objects, the following:

The lowest price and the corresponding hour.
The highest price and the time to which it corresponds.

How could I do it?

I already have in virtual objects each price value.

In simpler tables I think I could do it with math.max or by sorting the table and keeping the first and last value. But in such a complex table and with the time, I don't know how to do it.

Greetings


RE: Minimum value + hour and maximum value + hour of PVPC rate - admin - 29.08.2022

Try this (data is decoded JSON response):
Code:
values = data.indicator.values

table.sort(values, function(a, b)
  return a.value < b.value
end)

min = values[1]
minvalue = min.value
minhour = min.datetime:match('T(%d+)')

log(minvalue, minhour)

max = values[#values]
maxvalue = max.value
maxhour = max.datetime:match('T(%d+)')

log(maxvalue, maxhour)



RE: Minimum value + hour and maximum value + hour of PVPC rate - JRP - 30.08.2022

thanks, i will try it
greeting


RE: Minimum value + hour and maximum value + hour of PVPC rate - JRP - 03.09.2022

It works perfectly, thanks

Greeting