conseguir precio pvpc

Todo relacionado con node red
Post Reply
User avatar
Sigmundfreud
Posts:481
Joined:Tue Feb 12, 2019 8:23 pm
Location:Girona
conseguir precio pvpc

Post by Sigmundfreud » Sat Feb 27, 2021 9:39 pm

Buenas noches,

Adjunto los nodos para sacar el precio de la api de esios.
Primero hay que conseguir un token de esta pagina.

https://www.esios.ree.es/es/pagina/api

Después en el node de headers poner el token donde en la variable token.

En el nodoapi esios establecer que tarifa queremos obtener:

2.0.A – 10229
2.0.DHA – 10230
2.0.DHS – 10231

por último en la función obtenemos precio sacamos la media de los precios obtenidos. En mi caso este nodo esta programado para sacar el precio de 2.0DHA, en el caso que se quiera la 2.0A hay que ajustar un poco la programación, pero es poca cosa y creo que se entiende bien. Los horarios que he establecido es el periodo de invierno y hay que ajustar al de verano, sé que se puede establecer para que se haga automático de la misma forma que lo hace excontrol, pero me lie con otra cosa y asi se quedó.
Captura de pantalla (69).png

Code: Select all

[{"id":"2f52124a.ef4b2e","type":"inject","z":"9087aaec.5662e8","name":"consulta","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"10 00 * * *","once":false,"onceDelay":0.1,"x":100,"y":100,"wires":[["a663d56c.659338"]]},{"id":"a663d56c.659338","type":"function","z":"9087aaec.5662e8","name":"headers","func":"var token = \"poner token\"\nmsg.headers = {};\nmsg.headers['Accept'] = 'application/json; application/vnd.esios-api-v2+json';\nmsg.headers['Content-Type'] = 'application/json';\nmsg.headers['Host'] = 'api.esios.ree.es';\nmsg.headers['Authorization'] = 'Token token='+ token;\n\n//Cookie:' \n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":240,"y":100,"wires":[["6bb869c5.a81c38"]]},{"id":"6bb869c5.a81c38","type":"http request","z":"9087aaec.5662e8","name":"api esios","method":"GET","ret":"obj","paytoqs":false,"url":"https://api.esios.ree.es/indicators/10230","tls":"","persist":false,"proxy":"","authType":"","x":380,"y":100,"wires":[["51879139.670f3"]]},{"id":"51879139.670f3","type":"function","z":"9087aaec.5662e8","name":"obtenemos precio","func":"\nvar valle = [0,1,2,3,4,5,6,7,8,9,10,11,22,23];\nvar punta = [12,13,14,15,16,17,18,19,20,21];\n//var aux = new Array(14);  // para para ver que valores de la array se guardan  a las horas\nvar tamano = msg.payload['indicator']['values'].length;  // obtenemos valor del objeto values\nvar ContaValle = 0;\nvar ContaPunta = 0;\nvar precioValle = 0;\nvar precioPunta = 0;\n\n\nfor (var i = 0; i < tamano; i++){  //bucle burbuka para asignar precios a franjas \n    for (var c=0; c < valle.length; c++){\n    if (i == valle[c]){   // solo pasamos por los registros que contienen valores valle \n  precioValle += msg.payload['indicator']['values'][i]['value']\n  //aux[i] = ContaValle;  // para ver que valores de la array se guardan  a las horas\n  ContaValle++;\n    } \n    }\n}\n\nfor (var p = 0; p < tamano; p++){  //bucle burbuka para asignar precios a franjas \n    for (var q=0; q < valle.length; q++){\n    if (p == punta[q]){   // solo pasamos por los registros que contienen valores valle \n  precioPunta += msg.payload['indicator']['values'][p]['value']\n // aux[p] = ContaPunta;\n  ContaPunta++;\n    } \n    }\n}\nprecioValle = (precioValle/valle.length)/1000\nprecioValle = parseFloat(precioValle).toFixed(3);\n\nprecioPunta = (precioPunta/punta.length)/1000\nprecioPunta = parseFloat(precioPunta).toFixed(3);\n\nflow.set(\"precioPunta\", parseFloat(precioPunta)); \nflow.set(\"precioValle\", parseFloat(precioValle)); \n\n//msg.prueba = aux;\nmsg.precioValle = precioValle;\nmsg.precioPunta = precioPunta;\n//msg.contadorVa = ContaValle;\n//msg.contadorPu = ContaPunta;\nnode.status({fill:\"blue\",shape:\"ring\",text: \"valle \"+ precioValle + \" eur   punta \" + precioPunta +\" eur\"} );  \n \nreturn msg;","outputs":1,"noerr":0,"x":550,"y":100,"wires":[["8fddcb6c.347f68"]]},{"id":"8fddcb6c.347f68","type":"debug","z":"9087aaec.5662e8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":730,"y":100,"wires":[]}]
You do not have the required permissions to view the files attached to this post.
Una persona que nunca se ha equivocado es porque nunca ha probado nada nuevo
(Albert Einstein)

En mi lista ya hay 5 mkr, 1shield excontrol, 1 extensión, 1 nano iot33, multiples CI...... :lol: :lol: :lol:

User avatar
manuch
Posts:110
Joined:Tue Feb 12, 2019 8:49 pm

Re: conseguir precio pvpc

Post by manuch » Sun Feb 28, 2021 4:45 pm

Gracias Sigmundfreud !!

... desde luego que no entiendo como no viene una simple explicación en la propia web de ESIOS.

Mi idea es ponerle a mi señora una pantalla tft con un fondo (rojo o verde, según sea punta o valle) y poner el dato del consumo de la vivienda y el precio me mercado en ese momento (o la estimación en ese momento, claro)

Por lo que veo los datos que se obtienen, por lo que creo entender son de las 21:00h ¿sabes si hay manera de tener una actualización de datos no tan tardía?
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

User avatar
Sigmundfreud
Posts:481
Joined:Tue Feb 12, 2019 8:23 pm
Location:Girona

Re: conseguir precio pvpc

Post by Sigmundfreud » Sun Feb 28, 2021 8:31 pm

La consulta del precio la hace el primer nodo que yo lo tengo a las 00:10. Los datos que se obtienen son los de ese mismo día. Tu puedes hacerla a la hora que quieras y según el valor que reciba lo mismo tienes que ajustar un poco la función que hace la media.

Es verdad que en la página te vuelves loco para obtener información, és más, yo lo saque de otro blog que hacían la consulta a traves de un programa en python y me costo un huevo adaptarlo. "Me faltaban conocimientos, que le voy a hacer...."

Si ves que algo no te aclaras comentalo
Una persona que nunca se ha equivocado es porque nunca ha probado nada nuevo
(Albert Einstein)

En mi lista ya hay 5 mkr, 1shield excontrol, 1 extensión, 1 nano iot33, multiples CI...... :lol: :lol: :lol:

User avatar
manuch
Posts:110
Joined:Tue Feb 12, 2019 8:49 pm

Re: conseguir precio pvpc

Post by manuch » Mon Mar 01, 2021 11:26 am

Gracias Sigmundfreud !!

La verdad es que unicamente he necesitado sacar el precio de la luz en el momento de la consulta, una hora antes y una despues... me ha costado un poco porque la programación no es lo mio, pero al final pude. Esos datos los envio por MQTT.

Vamos a ver en que va a quedar la modificación del Gobierno, si no nos cambia lo que hay hecho

https://www.elindependiente.com/economi ... m=referral
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Post Reply

Return to “Node red”

Who is online

Users browsing this forum: No registered users and 1 guest