NodeRed: Calcula el consumo de tu casa. Parte 2. Separa las señales por hora y guardalas en InfluxDB

NodeRed: Calcula el consumo de tu casa. Parte 2. Separa las señales por hora y guardalas en InfluxDB

NodeRed: Calcula el consumo de tu casa. Parte 2. Separa las señales por hora y guardalas en InfluxDB

Entradas recientes

En el capítulo de hoy te enseñamos cómo separar señales de energía por el bloque horario.

todo esto con Node Red, este video es la 2 parte del video como calcular el consumo de tu instalación

El código que hemos utilizado en las cajas de node red son:

var fecha = new Date();
var horas = fecha.getHours();
var diferenciahoraria = fecha.getTimezoneOffset()/60*(-1);

if(diferenciahoraria==2){
    verano= true;
    $hora_inicio_P1=13;
    $hora_inicio_P2=23;
}
else{
    verano= false;
    $hora_inicio_P1=12;
    $hora_inicio_P2=22;
}

if(horas<$hora_inicio_P1 || horas >$hora_inicio_P2){
        horarioP1=parseInt(msg.payload);
        horarioP2=0;
}
else{
        horarioP1=0;
        horarioP2=parseInt(msg.payload);
}
 
var consumoP1 ={ payload: horarioP1 };
var consumoP2 ={ payload: horarioP2 };

return [consumoP1,consumoP2]

y en la segunda caja:

if(msg.payload>=0){
    //IMPORTACION DE ENERGIA
    energia_importada=msg.payload;
    energia_exportada=0;
}
else{
    energia_importada=0;
    energia_exportada=msg.payload*(-1);
    
}
 
var excedente ={ payload: energia_exportada };
var importar ={ payload: energia_importada };
return [excedente, importar];

Si sabes importar y exportar flows de nodered aqui te dejamos el flow completo:

[{"id":"afac1f23.fb6b1","type":"tab","label":"Discriminacion horaria","disabled":false,"info":""},{"id":"9e9854ff.e44f28","type":"mqtt in","z":"afac1f23.fb6b1","name":"","topic":"/energia/total","qos":"2","datatype":"auto","broker":"8c0d0ea.2879af","x":90,"y":260,"wires":[["1d6c5e2e.24a412","e12682a2.07ef4"]]},{"id":"e12682a2.07ef4","type":"debug","z":"afac1f23.fb6b1","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":470,"y":280,"wires":[]},{"id":"1fd7a377.21ba3d","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P1","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":530,"y":40,"wires":[]},{"id":"5ea92bb8.b5d854","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P2","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":450,"y":180,"wires":[]},{"id":"1d6c5e2e.24a412","type":"function","z":"afac1f23.fb6b1","name":"","func":"var fecha = new Date();\nvar horas = fecha.getHours();\nvar diferenciahoraria = fecha.getTimezoneOffset()/60*(-1);\n\n\nif(diferenciahoraria==2){\n    verano= true;\n    $hora_inicio_P1=13;\n    $hora_inicio_P2=23;\n    \n}\nelse{\n    verano= false;\n    $hora_inicio_P1=12;\n    $hora_inicio_P2=22;\n    \n}\n\nif(horas<$hora_inicio_P1 || horas >$hora_inicio_P2){\n        horarioP1=parseInt(msg.payload);\n        horarioP2=0;\n}\nelse{\n        horarioP1=0;\n        horarioP2=parseInt(msg.payload);\n}\n \n var consumoP1 ={ payload: horarioP1 };\n var consumoP2 ={ payload: horarioP2 };\n \n\n\nreturn [consumoP1,consumoP2]","outputs":2,"noerr":0,"initialize":"","finalize":"","x":120,"y":60,"wires":[["1fd7a377.21ba3d","4f49239a.bd7cdc"],["5ea92bb8.b5d854","3ecc2995.bb3e56"]]},{"id":"1612e567.0f88fb","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P1_excedente","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":660,"y":80,"wires":[]},{"id":"a9a0533c.1d0d4","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P1_importada","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":660,"y":120,"wires":[]},{"id":"4f49239a.bd7cdc","type":"function","z":"afac1f23.fb6b1","name":"","func":"if(msg.payload>=0){\n    //IMPORTACION DE ENERGIA\n    energia_importada=msg.payload;\n    energia_exportada=0;\n    \n}\nelse{\n    energia_importada=0;\n    energia_exportada=msg.payload*(-1);\n    \n}\n \n var excedente ={ payload: energia_exportada };\n var importar ={ payload: energia_importada };\nreturn [excedente, importar];","outputs":2,"noerr":0,"initialize":"","finalize":"","x":330,"y":100,"wires":[["1612e567.0f88fb"],["a9a0533c.1d0d4"]]},{"id":"9cd144d8.8c5e68","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P2_excedente","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":760,"y":220,"wires":[]},{"id":"6860124c.6968fc","type":"influxdb out","z":"afac1f23.fb6b1","influxdb":"9cf8af75.dedfd","name":"","measurement":"iota_lineaDistribuidora_P2_importada","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":760,"y":260,"wires":[]},{"id":"3ecc2995.bb3e56","type":"function","z":"afac1f23.fb6b1","name":"","func":"if(msg.payload>=0){\n    //IMPORTACION DE ENERGIA\n    energia_importada=msg.payload;\n    energia_exportada=0;\n    \n}\nelse{\n    energia_importada=0;\n    energia_exportada=msg.payload*(-1);\n    \n}\n \n var excedente ={ payload: energia_exportada };\n var importar ={ payload: energia_importada };\nreturn [excedente, importar];","outputs":2,"noerr":0,"initialize":"","finalize":"","x":430,"y":240,"wires":[["9cd144d8.8c5e68"],["6860124c.6968fc"]]},{"id":"8c0d0ea.2879af","type":"mqtt-broker","name":"","broker":"192.168.1.16","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"9cf8af75.dedfd","type":"influxdb","hostname":"raspberry.local","port":"8086","protocol":"http","database":"MiCasa","name":"Conexion BBDD","usetls":false,"tls":"","influxdbVersion":"1.x","url":"http://localhost:8086","rejectUnauthorized":true}]

Aquí tenéis la lista de los componentes necesarios para montar tu propia instalación:

¡También te  pueden interesar estos otros vídeos!

Instala el software en la raspberry

Una introducción a NodeRed