Un video excelente una vez más. Estaba terminando el flow de los videos de separar los consumos de P1 y P2, pero ahora ya me paso a este directamente, gracias
@@domotica_solar Entre ayer y hoy, ya he dejado listo en Nodered el flujo y puedo ver los valores en Grafana. He tenido que hacer un pequeño cambio en la función, ya que en mi caso cuando importo es negativo y cuando exporto es positivo. Ahora imagino que lo siguiente será sacar las integrales de las gráficas y hacer los cálculos entre las fechas que coincidan con tus facturas. ¿tienes previsto sacar segunda parte de este video?
Luis, excelente vídeo, como siempre. Puedes añadirle una mejora capturando de ESIOS mediante API el precio de los excedentes, que ya si lo están publicando.
Al final conseguí crearlo y está genial, el control del consumo en nuestras manos, pero dado que el consumo solo representa el 20% de la factura, estaría genial poder crear uno que separé los periodos para poder aplicarles los términos de peaje y fijos, además los términos de potencia que también serán fijos y así poder tener el control total de nuestra facturación. Como te digo yo me imagino un das board donde con todos los datos solo nos muestre el dinero que pagaremos y así de esa manera poder decidir si consumir más, o inyectar algo más, etc
Lo tienes muy facil...tienes el video de como separar los periodos por tramos cuando eran dos tramos. solo es aplicarlo para tres. Lo del precio lo tienes justo dos videos antes.... un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Has pensado que en tú código, si se reinicia node-red entre las 20:30h y las 23:59h no tendrías los datos del precio de la energía?. No es mejor guardar los precios en un archivo .json, y conectarte una sola vez al día a ree, y leer los precios cada hora del archivo guardado?
Si, es una mejora....yo de hecho lo que tengo es un script que va haciendo copia de seguridad a un fichero cada hora de las variables globales que no quiero perder...y cada vez que reinicia el nodered lee de ese fichero. un saludo y apoya al canal para que podamos seguir haciendo videos como este
Buenas tardes me encantan los vídeos que nos pones, siempre se saca algo en claro. Quiero hacerte una pregunta. Estoy controlando con mi home assistant la puesta en marcha y parada de mi calefacción. Para ello tengo una sonda de temperatura, que la tengo en mi salón,y con un ayudante he hecho una consigna de temperatura. Hasta ahora lo había hecho con automatizaciones y me va genial, ahora quiero dar un paso más y quiero hacerlo con node-red pero no veo como hacer comparaciones con las dos variables que tengo, ¿me puedes dar un consejo sobre qué elementos usar para mi pequeño gran proyecto? Comentar, vía node-red, consigo activar una salida (para encender una lámpara, en función de por ejemplo el sunset Muchas gracias adelantadas
Hola, me parece que he encontrado un pequeño fallo en tu código. Como el precio del PVPC se recoge en string y con coma en lugar de punto (por ejemplo "108,34"), cuando lo pasas a float y divides por 1000 te pierdes los últimos decimales (0,108 en lugar de 0,10834). Para resolverlo, podemos aplicar lo siguiente: precio_actual=parseFloat(pvpc[fecha_final].PVPC[hora].PCB.replace(/,/g, '.'))/1000;
Genial el video y la idea, yo llevaba mi control de gastos en hoja de cálculo importando los ficheros del Shelly y de la página Web de REE. Tengo conocimiento iniciales de informática y he intentado aplicar el sistema propuesto en el vídeo de influxdb y node red pero sacando los datos de consumo de consultar al shelly. Mi problema es con la fecha que me devuelve la función de Javascrip new Date() y el horario de verano sumado a la zona horaria. Actualmente en la peninsula , tenemos 2 horas más que la UTC. Estoy con el tema de meter en node red la api de ree. Me vienen las horas en UTC y si le meto los datos de consumo están con dos horas de diferencia. no casan unos datos con otros. No comentaste eso en el video de "Nueva tarifa eléctrica tres tramos. Calcula tu factura con Nodered e influxDB y REE". Por lo demás el video está genial pero yo no se resolver que fecha = new Date(); considere zona horaria y horario de verano.
nos ayudas un monton , pero dada mi torpeza, ando atascado en un mensaje de error que se repite "TypeError: Cannot read property 'PVPC' of undefined" tal vez se haya cambiado algo en los datos de la API desde que hiciste este video. me autorespondo , en cuanto se generó la lectura del día siguiente, quedo resuelto. MIL GRACIAS
Tengo un problemilla de un día a otro deja de enviar los datos de precio y consumo, deja de enviar a las 0:00 horas, y probando he descubierto que dándole al inject una vez, vuelve a enviar datos, funcionando correctamente.
@@domotica_solar Lo tengo igual de como sale en el video, y soy muy novato con esto. Por cierto muchas gracias por todos tus videos, estoy aprendiendo mucho.
Gracias por tus enseñanzas, tu video es genial. Echo en falta una cosa: en un video anterior (Calcula el consumo.... parte 2....) nos enseñaste a separar el consumo en los dos tramos horarios P1 y P2, ¿Cómo se hace para separar en los tres tramos horarios actuales (valle, llano y punta)?
buenas Jose Luis, juraria que ya me has preguntado eso..pero ya no tiene sentido ninguno hacerlo, ya que en la base de datos estás guardando el precio pvpc directo, con lo que te da igual el periodo...te basas en precios..no en períodos. independientemente hay un video de cómo sacar los períodos por las horas, seria lo mismo pero haciendo 3 en ve de uno. un saludo y ayuda al canal para que podamos seguir haciendo videos.
Gracias por tu rápida respuesta. El caso es que yo tengo tarifa no regulada y mi precio es fijo para horas valle, otro para llano y otro para punta. Por eso quiero saber los Kwh importados en cada tramo. He intentado seguir el video de cómo sacar los períodos por las horas, pero no consigo que funcione. El tema se complica al ser más períodos y que los fines de semana y festivos son siempre valle. Seguiré probando. Gracias.
@@joseluistobar Por si te sirve, ahí llevas como dividir la energía en cada periodo: var fecha = new Date(); var horas = fecha.getHours(); var numerodiasemana = fecha.getDay(); var numerodiames = fecha.getDate(); var mes = fecha.getMonth(); var hora_inicio_punta1=10; var hora_inicio_punta2=18; var hora_inicio_llano1=8; var hora_inicio_llano2=14; var hora_inicio_llano3=22; var hora_inicio_valle=0; var laborable; var findesemana; if(numerodiasemana!=0 && numerodiasemana!=6){ laborable=1; findesemana=0; } else{ laborable=0; findesemana=1; } if(horas=hora_inicio_punta1 && laborable==1){ horario_punta=parseInt(msg.payload); horario_llano=0; horario_valle=0; } if(horas=hora_inicio_punta2 && laborable==1){ horario_punta=parseInt(msg.payload); horario_llano=0; horario_valle=0; } if(horas=hora_inicio_llano1 && laborable==1){ horario_punta=0; horario_llano=parseInt(msg.payload); horario_valle=0; } if(horas=hora_inicio_llano2 && laborable==1){ horario_punta=0; horario_llano=parseInt(msg.payload); horario_valle=0; } if(horas >=hora_inicio_llano3 && laborable==1){ horario_punta=0; horario_llano=parseInt(msg.payload); horario_valle=0; } if(horas
Genial, como nos tienes acostumbrados. dos dudas: cuando te pregunte lo de que por las nuevas tarifas nos fastidian el trabajo que ya nos hiciste en el video "Calcula el consumo de tu casa. Parte 2.", te lo comento por que no se porque nunca puedo terminar el trabajo al completo como tu lo haces, dado que me sale un error en grafana cuando le pongo que se trata de un campo medido en 1h pero eso si solo me da el error de data influxdb cuando hay dos campos en el mismo panel y les pongo que se tratan de 1h
me vas a disculpar miguel pero no entiendo tu problema...si me lo puedes explicar de otra manera a ver si te entiendo mejor. un saludo y apoya al canal para que podamos seguir haciendo videos como este
@@domotica_solar buenos días para empezar yo uso el shelly para coger las medias, no se si tendrá algo que ver pero la entrada de datos a la influxdb viene de ahí. te pongo ejemplos donde da error y otro que no. aqui un solo campo sin la (1h) no da error: SELECT integral("exportado") as kw_exportados FROM "energia_y_precios" WHERE $timeFilter aqui un solo campo con la (1h) no da error:SELECT integral("exportado", 1h) as kh_exportados FROM "energia_y_precios" WHERE $timeFilter aqui dos campos sin la (1h) no da error: SELECT integral("exportado") as kw_exportados , integral("importados") as kw_importados FROM "energia_y_precios" WHERE $timeFilter aqui dos campos con la (1h) y el group by time (1h) da error: SELECT integral("exportado", 1h) as kw_exportados , integral("importados", 1h) as kw_importados FROM "energia_y_precios" WHERE $timeFilter group by time (1h) error: mensaje: "Error de InfluxDB: consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194" datos: Objeto error: "consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194" mensaje: "consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194" config: Objeto método: "GET" url: "api / datasources / proxy / 1 / query" params: Objeto datos: nulo precisión: "ms" inspeccionar: Objeto paramSerializer: función (e) {…} encabezados: Objeto reintentar: 0 hideFromInspector: falso como digo siempre me da error cuando introduzco dos o mas campos y les digo que sean tomados en 1h. gracias
@@domotica_solar esa consulta es de grafana cuando calculamos la factura de electricidad, pero ya te digo que el problema lo tengo cuando en el mismo panel meto dos medidas y les pongo 1h
Muchas gracias de nuevo por tus videos, son de gran ayuda. Pero hay algo que no tengo claro, que datos de energía tengo que usar. Tengo un shelly EM y los datos que puedo llegar a obtener son lo de energia total (acumulada), o bien de energía sin más (kWh) que se trata de energía no acumulada. Otra duda es que parece que tu nodo MQTT te devuelve datos cada segundo, en mi caso es cada minuto, se puede cambiar?, afecta esto a los cálculos. Muchas gracias.
del shelly em los puedes leer mas rapido si los lo haces por su API. Independientemente no afecta a la hora de luego hacer los calculos( salvo que a mayor resolucion en la lectura mayor precision de los datos). Los datos que tienes que usar del shelly EM son lo de potencia en tiempo real. saludos
@@domotica_solar Muchísimas gracias por tu respuesta. Según lo que comentas nunca he de utilizar los valores de energia ("1_energy"] de mqtt ni de valor toal de la API, sino que ambos casos he de tomar como referencia la potencia instantánea en watios. Cual es el motivo de ello sino es preguntar demasiado?. Gracias
Obtengo este error constantemente, como puedo solucionarlo? 20/6/2021 21:26:02node: guardar energia a base de datos function : (error) "TypeError: Cannot read property 'PVPC' of undefined"
revisar la obtencion de pvpc..os esta diciendo que pvpc no esta definido....un saludo y ayuda al canal para que podamos seguir haciendo videos como este.
Una duda, ¿En el timestamp del flow, el que hace que se dispare el HTTP REQUEST, para coger los precios de REE, no faltaría que se repitiera cada día a las 00:00? En el flow que está publicado en la página de DOMOTICA SOLAR, o lo disparas a mano, o no se cogen los datos. GRacias
Muy buen video. Me he fijado que el objeto que me crea node red, en el precio del pvpc tengo un desfase de 2 horas, es como si me mostrara la hora UTC en lugar de la hora local. ¿Cómo hago para cambiarlo? Gracias
revisa la configuración del localtime de la raspberry, y despues si lo tienes instalado como u contenedor tienes que compartir /etc/localtime dentro del contenedeor para uqe coja la hora local. un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Como siempre otro vídeo genial :) Por lo que veo, esta vez no guardas los distintos periodos, ahora son 3. También creo que estaría bien guardar el precio de inyectar a red que para las tarifas PVPC si no me equivoco es un precio variable cada hora. En tu caso supongo que estás con una comercializadora con precios de PVPC y decidieron compensar el vertido a un precio fijo. Ya por último, si todo va sobre influxdb2 ya sería le leche :P, yo voy a ponerme a adaptar cosillas. En todos los vídeos se aprende algo, mil gracias :)
esta mejor influx2...lo que pasa que cambia mucho el lenguaje flux......y ya que fui capaz de hacer la misma consulta anidando consultas me da pena cambiar ahora ajajajja un saludo y apoya al canal para que podamos seguir haciendo videos como este
@@domotica_solar Por lo visto se pueden coger esos datos usando un token, ya tengo el token, pero a ver como se hace eso jaja y supuestamente la compensación es el coste menos el coste de distrubución o algo así. Por cierto, hace un rato cambié cosas en Nodered para detectar los fines de semana como 24h en periodo P1. Ahora me faltaría detectar los días festivos también, que se podrán poner a mano en un array, pero seguramente haya mejores formas de hacerlo cogiendo datos de un calendario o algo xD
Excelente, eres un crack y me encanta como explicas las cosas, pero yo a la hora le tengo que sumar 2 para que me de la hora real, al igual que tube que hacer con el anterior video, no se si tu lo tienes solucionado de otra forma. Gracias
tienes mal el localtime de la raspberry o del docker de nodered. comprueba primero si la fecha y hora de la raspberry son correctas y comprubea que en el docker hayas compartido /etc/localtime como un volumen dentro del docker.un saludo y ayuda al canal para que podamos seguir haciendo videos.
@@shaulolandia Hola Shaulo, tengo el mismo problema con la hora que me salen 2 horas menos al aplicar la función new Date(). He comprobado la hora de la raspberry y es correcta, me podrías explicar un poco como has reinstalado el docker con el sistema de stack? gracias
Un video genial! yo he adaptado tu código anterior porque no tengo paneles y con lo que he aprendido de tus videos poder hacer gauges que muestren los euros en total, en valle, llano y punta del periodo que consulto. Seria posible en nodered enviar un telegram en caso de que ese día hayamos gastado mucho consumo en punta?
deja de controlar a la parienta!!! :-)))))))))))) Si claro...al final es un valor numerico qe estas enviando por nodered.....ya de ahi lo mandas al telegram...o bien por home assistant desde nodered (de eso hay video) o ya hay que impementarlo en nodered directo (no hay video todavia). un saludo y apoya al canal para uqe podamos seguir haciendo videos.
@@domotica_solar Controlar no... que tengo un servidor en casa y voy optimizando consumos para que la parienta no se enfade con la factura :-)). He hecho un pequeño aporte porque reconozco que has resuelto varios conceptos que tenía a medias y la solución con nodered me simpatiza mucho mas que con Home Assistant.
En el minuto 23 del vídeo al aplicar la función new Date() el sistema responde con una fecha y hora completa y la hora la expresa en GMT +0200 (Central European Summer Time). ¿a alguno más como a mi les responde con UTC, 2 horas por detrás de la real?
Muchas Gracias, fantastico el video como todos!!, mi node red empieza a dar miedo ya con tanto dato!!! Una duda, cuando hacemos un aporte, donde pierdes menos? por paypal o por megachats?
Mejorando lo bueno. Me encanta. Por cierto, una pregunta. Sabes como obtener mediante un http request el precio de la energía excedentaria? Imagino que muchas comercializadoras la pagarán según su cotización.
no, de la api de ree no viene....y luego cada comrcializadora hace un poco lo que le da la gana...pero ponen todas problemas. un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Yo también quería preguntar sobre los excedentes, he descubierto que se puede hacer peticiones a la API directamente, pero hay que pedir tokens, he mirado en la web de Esios y puedes bajarte los datos y grabar en formato csv y json, pero no sé con automatizar eso para que lo haga nodered Pongo el acceso para la petición de excedentes y PVPC, si alguien encuentra algo que lo exponga aquí: www.esios.ree.es/es/analisis/1739?vis=1&start_date=24-08-2021T00%3A00&end_date=24-08-2021T23%3A00&compare_start_date=23-08-2021T00%3A00&groupby=hour&compare_indicators=10391#JSON
@@raforo2000 Estaría bien sacar el precio horario de la energía inyectada. En un directo, alguien (no recuerdo su nombre) le dijo a Luis que había conseguido sacar los precios de la energía excedentaria de la web de esios, y que le ofrecía como lo había conseguido.
Se me ha reiniciado node-red entre las 20:30h y las 23:59h y he perdido los datos del precio de la energía?. Dices que tienes un script que va haciendo copia de seguridad a un fichero cada hora de las variables globales que no quiero perder...y cada vez que reinicia el nodered lee de ese fichero. Podrías explicar cómo podría hacerlo (un vídeo estaría bien :))
Disculpa, pero no encuentro nada al respecto.¿Entonces como hago un insert en influxdb con una fecha atrasada? . Me gustar intruducir por ejemplo pvpc desde enero 2021 hasta ahora, para despues poder consultar en grafana.
Estupendo tutorial, como todos, muchas gracias. He pensado que grabar el mismo precio horario cada segundo es un poco inútil, ¿no sería suficiente grabar en Influxdb el precio horario solo una vez, por ejemplo justo en el cambio de hora?
Esta nueva versión creo no tiene en cuenta el horario de verano y invierno que hiciste en el anterior. La nueva tarifa no variara según si es verano o invierno?
De nuevo otro fabuloso video y explicación. Una cuestión, cuando lanzo el inject sobre el http request el debug me devuelve el siguiente mensaje: Error: getaddrinfo EAI_AGAIN api.esios.ree.es api.esios.ree.es:443 ¿Sabes el motivo? Muchas gracias.
no tienes internet dentro de tu raspberry, no esta siendo capaz de resolver las dns de api.esios...... . un saludo y apoya al canal para que podamos seguir haciendo videos como este
@@domotica_solar Pues la verdad es que algo raro pasa porque desde esa raspberry si que tengo conexión a internet. Me conecto desde el escritorio de raspbian y puedo navegar por internet. Desde putty también hago distintos ping y me devuelve los paquetes correctamente.
Algo debía tener en la configuración de la stack que no funcionaba correctamente. La he eliminado y he vuelto a ejecutar la imagen como un contenedor sin crearla como stack y ahora si funciona correctamente. Un saludo.
excelente trabajo, gracias. me ha surgido un problema, al crear el contenedor de node-red y seguir este tutorial el contenedor no tiene acceso a Internet por lo que lo logra acceder a la información, http request nunca devuelve nada. Gracias
Como la pregunta no procede, te escribo en el comentario de este video. Estaría bien un proceso automático para limpiar datos antiguos de la base de datos de InfluxDB. Si nos dedicamos a recoger datos y no mantenemos...podríamos tener gigas y gigas de datos. Que en el caso que hagas una copia de Home Assistant, los backups empiezan a ocupar una animalada. Tienes algo pensado/implementado?
se lo estas preguntando a una persona con sincdrome de diógenes digital...... ahí lo dejo.... :'''-) yo llevo tres años de meter datos como un loco y voy por 3 gb....(y que conste que tengo como unas 80 señales por segundo) realmente estos datos no pesan tanto como pudiera parecer.
@@domotica_solar Pues yo ya tengo una imagen completa de HA de 1 giga. Y es un entorno de "desarrollo". Solo registro datos del clima de mi localidad, datos de la integración de Glances. Como tienes montado el HA?. Sobre una Rpi4 o sobre un NUC?. Yo sobre un nuc monté la imagen con 30 gigas. Y tengo que estar borrando imágenes porque me salta el aviso de falta de espacio...
@@charlie663 pero eso es otro tema, es cosa de Home Assistant que usa SQLite para la base de datos y si tienes muchos gráficos en Home Assistant y estos guardan un histórico, la BDD de HA crece una burrada ;)
@@charlie663 a ver...los contenedoresocupan bastante...pero no crecen...crecen los datos..y cuando me refiero a los 3 gb de influx es a los datos de influx.... las imagenes que tenemos en la tienda simplemente con el software instalado andan por los 9 0 10 gb....saludos
Todo el día empapándome de JavaScript para saber cómo pasarle una cadena hexadecimal a mi inversor y perdiéndome en los formatos de fecha y slice, y vas tú y me pegas un repaso. A ver si mañana averiguo algo y puedo inyectar la producción en el influxdb. A propósito, había una función para añadir ceros antes o después de un número pero mi memoria funciona almacenando lo que se puede hacer y no cómo. Hasta que no lo uso 5 veces....
que te crees que yome acuerdo de las cosasa...jajajaja me pasa como a tí..que o la utilizo todos los dias o tengo que buscarlo en el momento. un saludo y apoya al canal para que podamos seguir haciendo videos como este
He visto que la variable global se llena de objetos ["dia"] según van pasando los días. ¿Lo suyo sería ir borrando de la variable global el valor de 2 días antes al actual o estoy equivocado? De esta forma tendremos hasta que se publiquen los datos del día siguiente dos fechas, hoy y ayer. Cuando salgan las nuevas durante el día de hoy, tendremos tres días, mañana, hoy y ayer. Cuando cambiemos de día, se borraría el objeto del día que ya ayer era ayer y ya hoy es hace 2 días, con lo que quedaría de nuevo el valor de ayer y el de hoy. Así, no se carga de días ya innecesarios la variable global.
@@AndresPerez-ux2qk En el nodo función de arriba, se calcula la fecha a borrar, que será la actual, tal cual lo calcula Luis en el nodo función de abajo, pero con esta modificación: fecha = new Date(Date.now() - (2 * 24) * 3600 * 1000); Así le restamos (2 días*24h/día)*3600seg/día*1000miliseg/seg A continuación se genera la fecha a borrar tal cual lo hace Luis, concatenando dia, mes y año y con esta instrucción se elimina ese día pasado: delete temporal[fecha_a_borrar];
Un video excelente una vez más. Estaba terminando el flow de los videos de separar los consumos de P1 y P2, pero ahora ya me paso a este directamente, gracias
es lo que tiene esto..que cada día salen cosas nuevas... :-) un saludo y apoya al canal para que podamos seguir haciendo videos como este.
@@domotica_solar Entre ayer y hoy, ya he dejado listo en Nodered el flujo y puedo ver los valores en Grafana. He tenido que hacer un pequeño cambio en la función, ya que en mi caso cuando importo es negativo y cuando exporto es positivo. Ahora imagino que lo siguiente será sacar las integrales de las gráficas y hacer los cálculos entre las fechas que coincidan con tus facturas. ¿tienes previsto sacar segunda parte de este video?
@@rubenc.m.508 Ese ya existe... Hay un video de como sacar las gráficas de consumo. Si lo hago sería repetir.
Buenísimo el video, y como siempre muy bien explicado. Muchas gracias
Gracias a ti!
Como diría Rosario, eres un MONSTRUO, salu2
gracias David.un saludo y ayuda al canal para que podamos seguir haciendo videos.
Luis, excelente vídeo, como siempre. Puedes añadirle una mejora capturando de ESIOS mediante API el precio de los excedentes, que ya si lo están publicando.
pues bueno es saberlo.gracias!
Excelente, como siempre. Gracias
gracias y un saludo
Al final conseguí crearlo y está genial, el control del consumo en nuestras manos, pero dado que el consumo solo representa el 20% de la factura, estaría genial poder crear uno que separé los periodos para poder aplicarles los términos de peaje y fijos, además los términos de potencia que también serán fijos y así poder tener el control total de nuestra facturación. Como te digo yo me imagino un das board donde con todos los datos solo nos muestre el dinero que pagaremos y así de esa manera poder decidir si consumir más, o inyectar algo más, etc
Lo tienes muy facil...tienes el video de como separar los periodos por tramos cuando eran dos tramos. solo es aplicarlo para tres. Lo del precio lo tienes justo dos videos antes.... un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Has pensado que en tú código, si se reinicia node-red entre las 20:30h y las 23:59h no tendrías los datos del precio de la energía?. No es mejor guardar los precios en un archivo .json, y conectarte una sola vez al día a ree, y leer los precios cada hora del archivo guardado?
Si, es una mejora....yo de hecho lo que tengo es un script que va haciendo copia de seguridad a un fichero cada hora de las variables globales que no quiero perder...y cada vez que reinicia el nodered lee de ese fichero. un saludo y apoya al canal para que podamos seguir haciendo videos como este
Buenas tardes
me encantan los vídeos que nos pones, siempre se saca algo en claro.
Quiero hacerte una pregunta. Estoy controlando con mi home assistant la puesta en marcha y parada de mi calefacción. Para ello tengo una sonda de temperatura, que la tengo en mi salón,y con un ayudante he hecho una consigna de temperatura. Hasta ahora lo había hecho con automatizaciones y me va genial, ahora quiero dar un paso más y quiero hacerlo con node-red pero no veo como hacer comparaciones con las dos variables que tengo, ¿me puedes dar un consejo sobre qué elementos usar para mi pequeño gran proyecto?
Comentar, vía node-red, consigo activar una salida (para encender una lámpara, en función de por ejemplo el sunset
Muchas gracias adelantadas
Muy buen contenido. Gracias por compartir.
a ti..un saludo
Genial. Estaba esperándolo 👏👏
me alegro, un saludo y apoya al canal para que podamos seguir haciendo videos como este
Hola, me parece que he encontrado un pequeño fallo en tu código. Como el precio del PVPC se recoge en string y con coma en lugar de punto (por ejemplo "108,34"), cuando lo pasas a float y divides por 1000 te pierdes los últimos decimales (0,108 en lugar de 0,10834). Para resolverlo, podemos aplicar lo siguiente: precio_actual=parseFloat(pvpc[fecha_final].PVPC[hora].PCB.replace(/,/g, '.'))/1000;
Genial el video y la idea, yo llevaba mi control de gastos en hoja de cálculo importando los ficheros del Shelly y de la página Web de REE. Tengo conocimiento iniciales de informática y he intentado aplicar el sistema propuesto en el vídeo de influxdb y node red pero sacando los datos de consumo de consultar al shelly. Mi problema es con la fecha que me devuelve la función de Javascrip new Date() y el horario de verano sumado a la zona horaria.
Actualmente en la peninsula , tenemos 2 horas más que la UTC. Estoy con el tema de meter en node red la api de ree. Me vienen las horas en UTC y si le meto los datos de consumo están con dos horas de diferencia. no casan unos datos con otros. No comentaste eso en el video de "Nueva tarifa eléctrica tres tramos. Calcula tu factura con Nodered e influxDB y REE".
Por lo demás el video está genial pero yo no se resolver que fecha = new Date(); considere zona horaria y horario de verano.
lo mismo que te he puesto en el otro video..revisa tu /etc/localtime
Que buen video explicativo
Eres un crack
gracias!un saludo y apoya al canal para que podamos seguir haciendo videos como este
nos ayudas un monton , pero dada mi torpeza, ando atascado en un mensaje de error que se repite "TypeError: Cannot read property 'PVPC' of undefined" tal vez se haya cambiado algo en los datos de la API desde que hiciste este video. me autorespondo , en cuanto se generó la lectura del día siguiente, quedo resuelto. MIL GRACIAS
Que fácil parece 👏🏼👏🏼👏🏼👏🏼
lo es david.....ponte a ello que en cuanto te pongas verás como no te asusta tanto :-)
Tengo un problemilla de un día a otro deja de enviar los datos de precio y consumo, deja de enviar a las 0:00 horas, y probando he descubierto que dándole al inject una vez, vuelve a enviar datos, funcionando correctamente.
ese inject tiene que se vuelva a jecutar cada x tiempo? un saludo y ayuda al canal para que podamos seguir haciendo videos como este.
@@domotica_solar Lo tengo igual de como sale en el video, y soy muy novato con esto. Por cierto muchas gracias por todos tus videos, estoy aprendiendo mucho.
Gracias por tus enseñanzas, tu video es genial. Echo en falta una cosa: en un video anterior (Calcula el consumo.... parte 2....) nos enseñaste a separar el consumo en los dos tramos horarios P1 y P2, ¿Cómo se hace para separar en los tres tramos horarios actuales (valle, llano y punta)?
buenas Jose Luis, juraria que ya me has preguntado eso..pero ya no tiene sentido ninguno hacerlo, ya que en la base de datos estás guardando el precio pvpc directo, con lo que te da igual el periodo...te basas en precios..no en períodos. independientemente hay un video de cómo sacar los períodos por las horas, seria lo mismo pero haciendo 3 en ve de uno. un saludo y ayuda al canal para que podamos seguir haciendo videos.
Gracias por tu rápida respuesta. El caso es que yo tengo tarifa no regulada y mi precio es fijo para horas valle, otro para llano y otro para punta. Por eso quiero saber los Kwh importados en cada tramo. He intentado seguir el video de cómo sacar los períodos por las horas, pero no consigo que funcione. El tema se complica al ser más períodos y que los fines de semana y festivos son siempre valle. Seguiré probando. Gracias.
@@joseluistobar Por si te sirve, ahí llevas como dividir la energía en cada periodo: var fecha = new Date();
var horas = fecha.getHours();
var numerodiasemana = fecha.getDay();
var numerodiames = fecha.getDate();
var mes = fecha.getMonth();
var hora_inicio_punta1=10;
var hora_inicio_punta2=18;
var hora_inicio_llano1=8;
var hora_inicio_llano2=14;
var hora_inicio_llano3=22;
var hora_inicio_valle=0;
var laborable;
var findesemana;
if(numerodiasemana!=0 && numerodiasemana!=6){
laborable=1;
findesemana=0;
}
else{
laborable=0;
findesemana=1;
}
if(horas=hora_inicio_punta1 && laborable==1){
horario_punta=parseInt(msg.payload);
horario_llano=0;
horario_valle=0;
}
if(horas=hora_inicio_punta2 && laborable==1){
horario_punta=parseInt(msg.payload);
horario_llano=0;
horario_valle=0;
}
if(horas=hora_inicio_llano1 && laborable==1){
horario_punta=0;
horario_llano=parseInt(msg.payload);
horario_valle=0;
}
if(horas=hora_inicio_llano2 && laborable==1){
horario_punta=0;
horario_llano=parseInt(msg.payload);
horario_valle=0;
}
if(horas >=hora_inicio_llano3 && laborable==1){
horario_punta=0;
horario_llano=parseInt(msg.payload);
horario_valle=0;
}
if(horas
Muchas gracias Francisco.
Genial, como nos tienes acostumbrados. dos dudas: cuando te pregunte lo de que por las nuevas tarifas nos fastidian el trabajo que ya nos hiciste en el video "Calcula el consumo de tu casa. Parte 2.", te lo comento por que no se porque nunca puedo terminar el trabajo al completo como tu lo haces, dado que me sale un error en grafana cuando le pongo que se trata de un campo medido en 1h pero eso si solo me da el error de data influxdb cuando hay dos campos en el mismo panel y les pongo que se tratan de 1h
me vas a disculpar miguel pero no entiendo tu problema...si me lo puedes explicar de otra manera a ver si te entiendo mejor. un saludo y apoya al canal para que podamos seguir haciendo videos como este
@@domotica_solar buenos días para empezar yo uso el shelly para coger las medias, no se si tendrá algo que ver pero la entrada de datos a la influxdb viene de ahí. te pongo ejemplos donde da error y otro que no.
aqui un solo campo sin la (1h) no da error: SELECT integral("exportado") as kw_exportados FROM "energia_y_precios" WHERE $timeFilter
aqui un solo campo con la (1h) no da error:SELECT integral("exportado", 1h) as kh_exportados FROM "energia_y_precios" WHERE $timeFilter
aqui dos campos sin la (1h) no da error: SELECT integral("exportado") as kw_exportados , integral("importados") as kw_importados FROM "energia_y_precios" WHERE $timeFilter
aqui dos campos con la (1h) y el group by time (1h) da error: SELECT integral("exportado", 1h) as kw_exportados , integral("importados", 1h) as kw_importados FROM "energia_y_precios" WHERE $timeFilter group by time (1h)
error: mensaje: "Error de InfluxDB: consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194"
datos: Objeto
error: "consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194"
mensaje: "consulta de análisis de error: encontrado (, esperado; en la línea 1, char 194"
config: Objeto
método: "GET"
url: "api / datasources / proxy / 1 / query"
params: Objeto
datos: nulo
precisión: "ms"
inspeccionar: Objeto
paramSerializer: función (e) {…}
encabezados: Objeto
reintentar: 0
hideFromInspector: falso
como digo siempre me da error cuando introduzco dos o mas campos y les digo que sean tomados en 1h.
gracias
@@miguelmoreno5993 esa consulta de que video la has sacado? porque esa consulta no me suena a mi de ningun video.
@@domotica_solar esa consulta es de grafana cuando calculamos la factura de electricidad, pero ya te digo que el problema lo tengo cuando en el mismo panel meto dos medidas y les pongo 1h
@@miguelmoreno5993 en que video y minuto?
Muchas gracias de nuevo por tus videos, son de gran ayuda. Pero hay algo que no tengo claro, que datos de energía tengo que usar. Tengo un shelly EM y los datos que puedo llegar a obtener son lo de energia total (acumulada), o bien de energía sin más (kWh) que se trata de energía no acumulada. Otra duda es que parece que tu nodo MQTT te devuelve datos cada segundo, en mi caso es cada minuto, se puede cambiar?, afecta esto a los cálculos. Muchas gracias.
del shelly em los puedes leer mas rapido si los lo haces por su API. Independientemente no afecta a la hora de luego hacer los calculos( salvo que a mayor resolucion en la lectura mayor precision de los datos). Los datos que tienes que usar del shelly EM son lo de potencia en tiempo real. saludos
@@domotica_solar Muchísimas gracias por tu respuesta. Según lo que comentas nunca he de utilizar los valores de energia ("1_energy"] de mqtt ni de valor toal de la API, sino que ambos casos he de tomar como referencia la potencia instantánea en watios. Cual es el motivo de ello sino es preguntar demasiado?. Gracias
@@josemanuelsuarezroman6201 porque eso te da la energía en ese momento...luego,integrando sacas el valor acumulado. Saludos
Excelente trabajo!
gracias. un saludo y ayuda al canal para que podamos seguir haciendo videos.
Obtengo este error constantemente, como puedo solucionarlo?
20/6/2021 21:26:02node: guardar energia a base de datos
function : (error)
"TypeError: Cannot read property 'PVPC' of undefined"
revisar la obtencion de pvpc..os esta diciendo que pvpc no esta definido....un saludo y ayuda al canal para que podamos seguir haciendo videos como este.
@@domotica_solar De donde debería obtener el valor pvpc? De node red?
Una duda, ¿En el timestamp del flow, el que hace que se dispare el HTTP REQUEST, para coger los precios de REE, no faltaría que se repitiera cada día a las 00:00?
En el flow que está publicado en la página de DOMOTICA SOLAR, o lo disparas a mano, o no se cogen los datos.
GRacias
Pues si no tiene repeticion mal vamos.... :-) si, deberia de dispararse repetidamente para automatizarse. saludos
Muy buen video. Me he fijado que el objeto que me crea node red, en el precio del pvpc tengo un desfase de 2 horas, es como si me mostrara la hora UTC en lugar de la hora local. ¿Cómo hago para cambiarlo? Gracias
revisa la configuración del localtime de la raspberry, y despues si lo tienes instalado como u contenedor tienes que compartir /etc/localtime dentro del contenedeor para uqe coja la hora local. un saludo y apoya al canal para que podamos seguir haciendo videos como este.
@@domotica_solar OK, el problema lo tenía en el contenedor, ya está solucionado. Muchas gracias por la ayuda.
Como siempre otro vídeo genial :)
Por lo que veo, esta vez no guardas los distintos periodos, ahora son 3. También creo que estaría bien guardar el precio de inyectar a red que para las tarifas PVPC si no me equivoco es un precio variable cada hora. En tu caso supongo que estás con una comercializadora con precios de PVPC y decidieron compensar el vertido a un precio fijo.
Ya por último, si todo va sobre influxdb2 ya sería le leche :P, yo voy a ponerme a adaptar cosillas. En todos los vídeos se aprende algo, mil gracias :)
Veo que en Influxdb2 funciona perfecto, veo los campos del objeto de nodered :)))
esta mejor influx2...lo que pasa que cambia mucho el lenguaje flux......y ya que fui capaz de hacer la misma consulta anidando consultas me da pena cambiar ahora ajajajja un saludo y apoya al canal para que podamos seguir haciendo videos como este
que yo sepa en la api no te dan los pecios de exportacion.....corregirme si me equivoco.
@@domotica_solar No los veo no :( y en cambio en la web tienen una sección dedicada a la compensación :/
@@domotica_solar Por lo visto se pueden coger esos datos usando un token, ya tengo el token, pero a ver como se hace eso jaja y supuestamente la compensación es el coste menos el coste de distrubución o algo así.
Por cierto, hace un rato cambié cosas en Nodered para detectar los fines de semana como 24h en periodo P1. Ahora me faltaría detectar los días festivos también, que se podrán poner a mano en un array, pero seguramente haya mejores formas de hacerlo cogiendo datos de un calendario o algo xD
Maravilloso !!!!
gracias soko.un saludo y ayuda al canal para que podamos seguir haciendo videos.
Excelente, eres un crack y me encanta como explicas las cosas, pero yo a la hora le tengo que sumar 2 para que me de la hora real, al igual que tube que hacer con el anterior video, no se si tu lo tienes solucionado de otra forma. Gracias
tienes mal el localtime de la raspberry o del docker de nodered. comprueba primero si la fecha y hora de la raspberry son correctas y comprubea que en el docker hayas compartido /etc/localtime como un volumen dentro del docker.un saludo y ayuda al canal para que podamos seguir haciendo videos.
Eso se debe al timezone de tu pi o si usas docker, el timezone del docker de nodered ;)
Ok gracias ya lo e solucionado reinstalando el docker ya aprovechando el sistema de stack
@@shaulolandia Hola Shaulo, tengo el mismo problema con la hora que me salen 2 horas menos al aplicar la función new Date().
He comprobado la hora de la raspberry y es correcta, me podrías explicar un poco como has reinstalado el docker con el sistema de stack? gracias
Solucionado añadiendo en el stack de NodeRed:
environment:
- TZ=Europe/Madrid
Un video genial! yo he adaptado tu código anterior porque no tengo paneles y con lo que he aprendido de tus videos poder hacer gauges que muestren los euros en total, en valle, llano y punta del periodo que consulto. Seria posible en nodered enviar un telegram en caso de que ese día hayamos gastado mucho consumo en punta?
deja de controlar a la parienta!!! :-)))))))))))) Si claro...al final es un valor numerico qe estas enviando por nodered.....ya de ahi lo mandas al telegram...o bien por home assistant desde nodered (de eso hay video) o ya hay que impementarlo en nodered directo (no hay video todavia). un saludo y apoya al canal para uqe podamos seguir haciendo videos.
@@domotica_solar Controlar no... que tengo un servidor en casa y voy optimizando consumos para que la parienta no se enfade con la factura :-)). He hecho un pequeño aporte porque reconozco que has resuelto varios conceptos que tenía a medias y la solución con nodered me simpatiza mucho mas que con Home Assistant.
hay un nodo en node-red para enviar mensajes a telegram, si quieres te paso ejemplo. ¿Podrías pasar tu flow, me interesaría justo lo que tu has hecho?
En el minuto 23 del vídeo al aplicar la función new Date() el sistema responde con una fecha y hora completa y la hora la expresa en GMT +0200 (Central European Summer Time). ¿a alguno más como a mi les responde con UTC, 2 horas por detrás de la real?
tienes nodered instalado compartiendo el /etc/localtime?
Muchas Gracias, fantastico el video como todos!!, mi node red empieza a dar miedo ya con tanto dato!!! Una duda, cuando hacemos un aporte, donde pierdes menos? por paypal o por megachats?
Gracias por el apoyo que ya vi el PayPal...lo que más cómodo te sea.muchas gracias y estás cosas nos ayudan a poder seguir haciendo vídeos
Genial como siempre, q fácil parece 😂😂, sigue asi maestro
es facil hombre..y mas que os lo doy todo muy mascadito.... :-) un saludo y ayuda al canal para que podamos seguir haciendo videos.
Mejorando lo bueno. Me encanta. Por cierto, una pregunta. Sabes como obtener mediante un http request el precio de la energía excedentaria? Imagino que muchas comercializadoras la pagarán según su cotización.
no, de la api de ree no viene....y luego cada comrcializadora hace un poco lo que le da la gana...pero ponen todas problemas. un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Yo también quería preguntar sobre los excedentes, he descubierto que se puede hacer peticiones a la API directamente, pero hay que pedir tokens, he mirado en la web de Esios y puedes bajarte los datos y grabar en formato csv y json, pero no sé con automatizar eso para que lo haga nodered Pongo el acceso para la petición de excedentes y PVPC, si alguien encuentra algo que lo exponga aquí:
www.esios.ree.es/es/analisis/1739?vis=1&start_date=24-08-2021T00%3A00&end_date=24-08-2021T23%3A00&compare_start_date=23-08-2021T00%3A00&groupby=hour&compare_indicators=10391#JSON
@@raforo2000 Estaría bien sacar el precio horario de la energía inyectada. En un directo, alguien (no recuerdo su nombre) le dijo a Luis que había conseguido sacar los precios de la energía excedentaria de la web de esios, y que le ofrecía como lo había conseguido.
Se me ha reiniciado node-red entre las 20:30h y las 23:59h y he perdido los datos del precio de la energía?. Dices que tienes un script que va haciendo copia de seguridad a un fichero cada hora de las variables globales que no quiero perder...y cada vez que reinicia el nodered lee de ese fichero. Podrías explicar cómo podría hacerlo (un vídeo estaría bien :))
te toca esperar :-) un saludo!
Casi perfecto. Enhorabuena. ¿No tendrias que haber metido la fecha y hora de cada precio tambien en influxdb?
Todo registro en influx lleva de por sí fecha y hora ..es una base de datos temporal.salufow
Disculpa, pero no encuentro nada al respecto.¿Entonces como hago un insert en influxdb con una fecha atrasada? . Me gustar intruducir por ejemplo pvpc desde enero 2021 hasta ahora, para despues poder consultar en grafana.
Estupendo tutorial, como todos, muchas gracias.
He pensado que grabar el mismo precio horario cada segundo es un poco inútil, ¿no sería suficiente grabar en Influxdb el precio horario solo una vez, por ejemplo justo en el cambio de hora?
correcto..no haría falta...lo único es como asegurarte que nunca escribas un precio en una hora que no corresponda....hay que mirarlo bien. saludos
Esta nueva versión creo no tiene en cuenta el horario de verano y invierno que hiciste en el anterior. La nueva tarifa no variara según si es verano o invierno?
En principio no han dicho nada... Va con la hora del día. Un saludo y ayuda al canal para que podamos seguir haciendo vídeos
De nuevo otro fabuloso video y explicación. Una cuestión, cuando lanzo el inject sobre el http request el debug me devuelve el siguiente mensaje: Error: getaddrinfo EAI_AGAIN api.esios.ree.es api.esios.ree.es:443 ¿Sabes el motivo? Muchas gracias.
no tienes internet dentro de tu raspberry, no esta siendo capaz de resolver las dns de api.esios...... . un saludo y apoya al canal para que podamos seguir haciendo videos como este
@@domotica_solar Pues la verdad es que algo raro pasa porque desde esa raspberry si que tengo conexión a internet. Me conecto desde el escritorio de raspbian y puedo navegar por internet. Desde putty también hago distintos ping y me devuelve los paquetes correctamente.
@@areacid8361 pero has probado desde dentro del contenedor? Una cosa es la raspberry otra el contenedor
@@domotica_solar Justo ahora he caído en este tema que comentas. Tengo Node Red creado como una stack, ¿cómo podría verificarlo?
Algo debía tener en la configuración de la stack que no funcionaba correctamente. La he eliminado y he vuelto a ejecutar la imagen como un contenedor sin crearla como stack y ahora si funciona correctamente. Un saludo.
excelente trabajo, gracias.
me ha surgido un problema, al crear el contenedor de node-red y seguir este tutorial el contenedor no tiene acceso a Internet por lo que lo logra acceder a la información, http request nunca devuelve nada.
Gracias
si el contenedor no tiene acceso a internet seguramente sean las dns..que las tienes mal. un saludo!
Como la pregunta no procede, te escribo en el comentario de este video. Estaría bien un proceso automático para limpiar datos antiguos de la base de datos de InfluxDB. Si nos dedicamos a recoger datos y no mantenemos...podríamos tener gigas y gigas de datos. Que en el caso que hagas una copia de Home Assistant, los backups empiezan a ocupar una animalada. Tienes algo pensado/implementado?
se lo estas preguntando a una persona con sincdrome de diógenes digital...... ahí lo dejo.... :'''-) yo llevo tres años de meter datos como un loco y voy por 3 gb....(y que conste que tengo como unas 80 señales por segundo) realmente estos datos no pesan tanto como pudiera parecer.
@@domotica_solar Pues yo ya tengo una imagen completa de HA de 1 giga. Y es un entorno de "desarrollo". Solo registro datos del clima de mi localidad, datos de la integración de Glances. Como tienes montado el HA?. Sobre una Rpi4 o sobre un NUC?. Yo sobre un nuc monté la imagen con 30 gigas. Y tengo que estar borrando imágenes porque me salta el aviso de falta de espacio...
@@charlie663 pero eso es otro tema, es cosa de Home Assistant que usa SQLite para la base de datos y si tienes muchos gráficos en Home Assistant y estos guardan un histórico, la BDD de HA crece una burrada ;)
@@MarSanm Ok, gracias. Ideas para limpiarla?. A ver si consigo limpiarla en algo·
@@charlie663 a ver...los contenedoresocupan bastante...pero no crecen...crecen los datos..y cuando me refiero a los 3 gb de influx es a los datos de influx....
las imagenes que tenemos en la tienda simplemente con el software instalado andan por los 9 0 10 gb....saludos
Todo el día empapándome de JavaScript para saber cómo pasarle una cadena hexadecimal a mi inversor y perdiéndome en los formatos de fecha y slice, y vas tú y me pegas un repaso. A ver si mañana averiguo algo y puedo inyectar la producción en el influxdb. A propósito, había una función para añadir ceros antes o después de un número pero mi memoria funciona almacenando lo que se puede hacer y no cómo. Hasta que no lo uso 5 veces....
que te crees que yome acuerdo de las cosasa...jajajaja me pasa como a tí..que o la utilizo todos los dias o tengo que buscarlo en el momento. un saludo y apoya al canal para que podamos seguir haciendo videos como este
He visto que la variable global se llena de objetos ["dia"] según van pasando los días. ¿Lo suyo sería ir borrando de la variable global el valor de 2 días antes al actual o estoy equivocado? De esta forma tendremos hasta que se publiquen los datos del día siguiente dos fechas, hoy y ayer. Cuando salgan las nuevas durante el día de hoy, tendremos tres días, mañana, hoy y ayer. Cuando cambiemos de día, se borraría el objeto del día que ya ayer era ayer y ya hoy es hace 2 días, con lo que quedaría de nuevo el valor de ayer y el de hoy. Así, no se carga de días ya innecesarios la variable global.
Si claro, se podria perfeccionar el script para que fuera borrando de unas dias para atras... un saludo!
buena apreciación, ¿sabrías como hacer eso, porque en unos meses, igual peta, por tanta variable global? GRacias
@@AndresPerez-ux2qk En el nodo función de arriba, se calcula la fecha a borrar, que será la actual, tal cual lo calcula Luis en el nodo función de abajo, pero con esta modificación: fecha = new Date(Date.now() - (2 * 24) * 3600 * 1000); Así le restamos (2 días*24h/día)*3600seg/día*1000miliseg/seg A continuación se genera la fecha a borrar tal cual lo hace Luis, concatenando dia, mes y año y con esta instrucción se elimina ese día pasado: delete temporal[fecha_a_borrar];
@@FotoASes GRacias por la rápida respuesta, me pondré a ello a ver si lo logro. Gracias de nuevo
A una persona no le gusta el video? O más bien los 0,238 el kwh? xD
Gracias por el curro.
vete a saber... jajajaja en fin.... un saludo y apoya al canal para que podamos seguir haciendo videos como este.
Que sinverguenzas son Luis...
y tanto tocayo....