Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gestión del DST #1

Closed
alvaro-octal opened this issue Sep 1, 2018 · 8 comments
Closed

Gestión del DST #1

alvaro-octal opened this issue Sep 1, 2018 · 8 comments
Assignees

Comments

@alvaro-octal
Copy link
Contributor

Buenas, y enhorabuena por la librería,

Hay un error al operar con días con el cambio de hora:

Para el día 2013-10-28 (Último domingo de Octubre, a las 3 son las 2), hay 25 mediciones, y al ejecutar _normalizeMeasurements(), al iterar sumando una hora no se tiene en cuenta, por lo que salta de día.

[
    {
        "date": "2013-10-27 00:00:00",
        "value": 119
    },
    {
        "date": "2013-10-27 01:00:00",
        "value": 281
    },
    {
        "date": "2013-10-27 02:00:00",
        "value": 149
    },
    {
        "date": "2013-10-27 03:00:00",
        "value": 149
    },
    {
        "date": "2013-10-27 04:00:00",
        "value": 148
    },
    {
        "date": "2013-10-27 05:00:00",
        "value": 156
    },
    {
        "date": "2013-10-27 06:00:00",
        "value": 150
    },
    {
        "date": "2013-10-27 07:00:00",
        "value": 146
    },
    {
        "date": "2013-10-27 08:00:00",
        "value": 147
    },
    {
        "date": "2013-10-27 09:00:00",
        "value": 161
    },
    {
        "date": "2013-10-27 10:00:00",
        "value": 196
    },
    {
        "date": "2013-10-27 11:00:00",
        "value": 114
    },
    {
        "date": "2013-10-27 12:00:00",
        "value": 132
    },
    {
        "date": "2013-10-27 13:00:00",
        "value": 112
    },
    {
        "date": "2013-10-27 14:00:00",
        "value": 119
    },
    {
        "date": "2013-10-27 15:00:00",
        "value": 129
    },
    {
        "date": "2013-10-27 16:00:00",
        "value": 114
    },
    {
        "date": "2013-10-27 17:00:00",
        "value": 126
    },
    {
        "date": "2013-10-27 18:00:00",
        "value": 120
    },
    {
        "date": "2013-10-27 19:00:00",
        "value": 120
    },
    {
        "date": "2013-10-27 20:00:00",
        "value": 364
    },
    {
        "date": "2013-10-27 21:00:00",
        "value": 297
    },
    {
        "date": "2013-10-27 22:00:00",
        "value": 115
    },
    {
        "date": "2013-10-27 23:00:00",
        "value": 127
    },
    {
        "date": "2013-10-28 00:00:00",
        "value": 447
    }
]

Y al obtener los consumos del día siguiente 2013-10-28 se devuelve:

[
    {
        "date": "2013-10-28 00:00:00",
        "value": 473
    },
    ...
]

Digamos, "duplicando" el registro de 2013-10-28 00:00:00, aunque en realidad se refieren a horas distintas.

De igual modo, para el 2018-03-25 (Último domingo de Marzo, a las 2 son las 3), se tienen únicamente 23 mediciones, pero tampoco corresponderían con la hora real.

[
    ...
    {
        "date": "2018-03-25 21:00:00",
        "value": 202
    },
    {
        "date": "2018-03-25 22:00:00",
        "value": 644
    }
]
@zoilomora
Copy link
Owner

Buenas @Alvaroctal, muchas gracias por el aporte! esta tarde le echo un vistazo y lo corrijo! :)

@zoilomora
Copy link
Owner

@Alvaroctal que propones para solucionar el problema?
lo estoy viendo ahora y solo se me ocurre unir la medición a la de las 2 de la madrugada?

@alvaro-octal
Copy link
Contributor Author

@zoilomora Pues... todo lo que se del tema lo he aprendido hoy, y le he dado bastantes vueltas...

Lo correcto imagino, si el objetivo es decir cuando se hizo la medición sería convertir la hora a UTC o un timestamp de unix directamente, ya que estos son ajenos al DST. Sumar las mediciones o quitar una tampoco sería, ya que realmente si que son horas distintas, y se cobran la 25 horas ese día.

Claro, que luego he empezado a trastear con la API de esios y he caído en que en realidad nunca ha sido el objetivo por como lo tienen montado. Al consultar el precio del PVPC para un día con "25 horas", directamente se inventan la franja de 24 a 25.

{
  "PVPC": [
    {
      "Dia": "29\/10\/2017",
      "Hora": "00-01",
      "GEN": "115,47",
      "NOC": "66,26",
      "VHC": "70,32",
      "COFGEN": "0,000083443141000000",
      ...
      "CCVVHC": "2,01"
    },
    {
      "Dia": "29\/10\/2017",
      "Hora": "01-02",
      "GEN": "114,83",
      "NOC": "65,53",
      "VHC": "62,22",
      "COFGEN": "0,000069376495000000",
      ...
      "CCVVHC": "1,85"
    },
    ...
    {
      "Dia": "29\/10\/2017",
      "Hora": "23-24",
      "GEN": "125,78",
      "NOC": "76,57",
      "VHC": "144,69",
      "COFGEN": "0,000113487498000000",
      ...
      "CCVVHC": "2,23"
    },
    {
      "Dia": "29\/10\/2017",
      "Hora": "24-25",
      "GEN": "115,63",
      "NOC": "67,18",
      "VHC": "70,61",
      "COFGEN": "0,000092604990000000",
      ...
      "CCVVHC": "1,97"
    }
  ]
}

Y... por lo menos a nivel de base de datos me hace el papel.

captura de pantalla 2018-09-01 a las 17 45 22

Lo suyo igual sería pasar a devolver para una medición un array del estilo:

{
    "date": 2018-09-01,
    "hour": 17,
    "value": 157,
    "timestamp": 1535816909 (??)
}

@zoilomora
Copy link
Owner

@Alvaroctal en realidad, Iberdrola no nos indica ninguna hora UTC ni nada.. se va incrementando la hora con cada medición.

Por ahora voy a unir las mediciones en el caso de Octubre y a dejar sin medición el caso de Marzo.

@alvaro-octal
Copy link
Contributor Author

alvaro-octal commented Sep 1, 2018

@zoilomora Ya me he fijado, y en realidad, mientras siempre devuelvan tantas medidas como horas tiene el día no hay problema.

Ya te digo, yo no uniría las medidas de ese día por no descuadrar, ya que el gobierno publica 25 precios para ese día. Es una liada devolver fechas duplicadas, pero suprimir mediciones casi es peor.

@zoilomora
Copy link
Owner

@Alvaroctal no sabia eso ultimo. Le dare una vuelta a tu idea y mañana seguire. ;)

@zoilomora zoilomora self-assigned this Sep 3, 2018
zoilomora added a commit that referenced this issue Sep 3, 2018
@zoilomora
Copy link
Owner

@Alvaroctal cuando puedas comprueba los nuevos cambios para cerrar el Issue! :)

@alvaro-octal
Copy link
Contributor Author

@zoilomora Buena solución, si, funciona de lujo 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants