Python script not working

Dear all,

I’m looking for reading data from my Legrand EcoCompteur power meter.
My target is to daily read the last row of the file below in order to collect my power consumption for each current coil.

The Ecocompteur data looks like below, each night a new row is added at the end. It’s like a consumptions summary of the day :

25;12;20;23;58;18856.469;2744.454;6213.015;884.243;2140.166;317.727;515.155;68;2050.003;282.271;144.938;22.562;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
26;12;20;23;58;18882.965;2748.335;6231.136;886.869;2141.083;317.842;515.169;68.002;2050.266;282.272;144.95;22.564;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
27;12;20;23;58;18907.709;2751.957;6245.432;888.882;2141.977;317.953;516.115;68.12;2051.019;282.335;144.961;22.565;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
28;12;20;23;58;18937.426;2756.243;6257.082;890.383;2143.802;318.379;517.488;68.292;2053.231;282.623;144.971;22.567;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
29;12;20;23;58;18962.162;2759.843;6268.282;891.815;2146.304;318.857;518.3;68.394;2054.597;282.779;144.982;22.569;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
30;12;20;23;58;18992.68;2764.287;6280.66;893.54;2150.058;319.527;519.496;68.545;2058.158;283.244;144.992;22.57;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
31;12;20;23;58;19024.359;2768.895;6295.134;895.597;2150.966;319.85;520.787;68.709;2063.682;283.978;145.002;22.572;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
1;1;21;23;58;19057.775;2773.719;6308.945;897.453;2156.848;320.709;522.386;68.915;2066.51;284.337;145.012;22.573;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2;1;21;23;58;19093.719;2778.907;6324.726;899.646;2163.933;321.66;523.284;69.031;2067.848;284.48;145.021;22.574;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
3;1;21;23;58;19124.793;2783.426;6342.172;902.154;2163.957;321.878;524.469;69.18;2070.239;284.78;145.032;22.576;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
4;1;21;23;58;19154.371;2787.726;6359.147;904.544;2164.943;322.202;525.611;69.324;2071.717;284.946;145.043;22.578;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
5;1;21;23;58;19186.305;2792.373;6376.013;906.901;2166.801;322.83;526.614;69.45;2073.486;285.154;145.061;22.58;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
6;1;21;23;58;19218.09;2796.982;6393.248;909.342;2168.181;323.455;527.879;69.609;2076.835;285.574;145.065;22.581;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0

The data format correspond to :

DAY;MONTH;YEAR;HOUR;MINUTE;TOTAL;???;COIL_01;???;COIL_02;???;COIL_03;???;COIL_03;???;COIL_05;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???;???

The data I want to daily read on HA :

  • TOTAL => Total daily consumption
  • COIL_01 => Daily consumption for coil n°1
  • COIL_02 => Daily consumption for coil n°2
  • COIL_03 => Daily consumption for coil n°3
  • COIL_04 => Daily consumption for coil n°4
  • COIL_05 => Daily consumption for coil n°5

If usefull, I can give a weblink to my raw data (by private chat).

Many thanks for your help.

Dear all,

I found a way to read the last csv line with nodered but unfortunately I have to read the both end line in order to calculate the delta value between them.

The new question is now how to read the previous end line in order to get data.
I’m thinking about store all the data into a csv file and keep only the both end line.
Is somebody know how to proceed ?

image



Dear all,

I’m going on my needs, finally I’m foing to run a python script.
I have written the below code on my windows laptop into CSV_keep_2_end_lines.py file.

The new question is where to add this code into HA in order to get a service and execute it from nodered.

New expected behavior :

  1. Perform a http request in order to read the raw data => Ok for me
  2. Write the data into a csv file => Ok for me
  3. Execute “CSV_keep_2_end_lines.py” service => How to do ?
  4. Read data of the output csv file from “CSV_keep_2_end_lines.py” service => Ok for me
  5. Inject into some sensors the values => Ok for me

My CSV_keep_2_end_lines.py code :


InputFilePath = "C:/Users/imbertb/PycharmProjects/pythonProject/DATA_TEMP/raw_data.csv"
OutputFilePath = "C:/Users/imbertb/PycharmProjects/pythonProject/DATA_TEMP/output_data.csv"

with open(InputFilePath, 'r') as fichier:
    # Read line numbers in text file
        numline = len(fichier.readlines())
        print("=> Le fichier contient " + str(numline) + " lignes \n")

    # Select and store the previous end line
        fichier.seek(0)
        for i in range(numline-1):
            ligne1 = str(fichier.readline())
        print("la ligne " + str(numline - 1) + " contient : \n" + ligne1)

    # Select and store the end line
        fichier.seek(0)
        for i in range(numline):
            ligne2 = str(fichier.readline())
        print("la ligne " + str(numline) + " contient : \n" + ligne2)

    #Generate a new csv file with the both stored lines
        OutputFile = open(OutputFilePath, "w")
        OutputFile.write(ligne1)
        OutputFile.write(ligne2)
        OutputFile.close()

The raw_data.csv :

1;11;20;23;58;17587.529;2560.151;5736.742;816.671;2070.08;301.853;467.961;62.071;1925.237;266.701;144.324;22.471;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2;11;20;23;58;17605.887;2562.808;5737.534;816.829;2070.582;301.976;468.61;62.153;1929.504;267.262;144.337;22.473;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
3;11;20;23;58;17626.914;2565.849;5740.511;817.399;2071.223;302.126;469.858;62.309;1934.077;267.871;144.349;22.475;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
4;11;20;23;58;17646.916;2568.744;5746.248;818.269;2072.093;302.335;470.659;62.409;1936.362;268.176;144.36;22.476;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
5;11;20;23;58;17665.734;2571.463;5751.164;819.013;2072.676;302.481;471.32;62.491;1938.818;268.472;144.371;22.478;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
6;11;20;23;58;17682.859;2573.976;5755.519;819.677;2073.858;302.785;471.842;62.557;1939.429;268.519;144.382;22.48;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
7;11;20;23;58;17701.91;2576.732;5758.962;820.149;2074.402;302.935;472.531;62.643;1943.584;269.053;144.394;22.482;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
8;11;20;23;58;17718.471;2579.122;5761.203;820.572;2074.963;303.076;473.434;62.756;1945.639;269.299;144.406;22.483;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
9;11;20;23;58;17739.148;2582.106;5764.021;821.123;2075.559;303.216;474.144;62.844;1948.412;269.663;144.418;22.485;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
10;11;20;23;58;17759.133;2585.021;5767.288;821.648;2076.571;303.456;474.78;62.924;1950.902;269.983;144.431;22.487;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
11;11;20;23;58;17775.41;2587.392;5770.043;822.169;2077.371;303.662;475.233;62.98;1952.329;270.156;144.442;22.489;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
12;11;20;23;58;17791.492;2589.725;5773;822.706;2077.934;303.796;475.955;63.071;1953.688;270.31;144.454;22.49;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
13;11;20;23;58;17813.031;2592.86;5776.948;823.267;2078.686;303.956;476.907;63.19;1955.865;270.568;144.466;22.492;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
14;11;20;23;58;17832.773;2595.726;5781.258;823.879;2079.624;304.1;477.715;63.291;1959.091;270.963;144.477;22.494;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
15;11;20;23;58;17854.111;2598.819;5783.262;824.143;2081.467;304.537;478.75;63.421;1963.563;271.564;144.488;22.495;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
16;11;20;23;58;17876.76;2602.072;5786.134;824.668;2081.583;304.634;479.675;63.538;1966.96;272.024;144.501;22.497;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
17;11;20;23;58;17902.465;2605.782;5793.479;825.648;2082.583;304.854;480.375;63.625;1970.09;272.453;144.512;22.499;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
18;11;20;23;58;17926.418;2609.271;5802.78;826.927;2083.258;304.958;480.806;63.679;1971.355;272.586;144.525;22.501;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
19;11;20;23;58;17946.143;2612.128;5808.347;827.69;2084.292;305.103;481.561;63.774;1973.401;272.833;144.538;22.503;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
20;11;20;23;58;17967.41;2615.208;5815.909;828.757;2085.568;305.282;482.479;63.888;1974.875;273.016;144.551;22.505;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
21;11;20;23;58;17992.838;2618.926;5828.937;830.6;2086.426;305.422;483.269;63.988;1976.291;273.188;144.564;22.507;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
22;11;20;23;58;18021.016;2623.05;5843.063;832.602;2087.234;305.549;484.106;64.094;1978.052;273.402;144.575;22.508;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
23;11;20;23;58;18048.787;2627.116;5854.997;834.286;2088.621;305.76;484.887;64.192;1982.882;274.017;144.587;22.51;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
24;11;20;23;58;18073.887;2630.765;5867.044;835.97;2089.648;305.953;485.597;64.281;1985.454;274.345;144.599;22.512;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
25;11;20;23;58;18099.025;2634.455;5876.037;837.28;2091.272;306.235;486.429;64.385;1987.437;274.593;144.611;22.514;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
26;11;20;23;58;18128.131;2638.713;5890.525;839.324;2092.483;306.445;487.197;64.481;1990.459;274.978;144.624;22.515;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
27;11;20;23;58;18151.1;2642.061;5899.945;840.614;2093.499;306.59;487.925;64.572;1991.827;275.13;144.636;22.517;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
28;11;20;23;58;18178.549;2646.056;5913.238;842.423;2094.536;306.749;489.155;64.726;1995.725;275.662;144.648;22.519;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
29;11;20;23;58;18209.621;2650.529;5926.511;844.197;2096.338;307.202;490.632;64.911;1998.144;275.99;144.661;22.521;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
30;11;20;23;58;18235.107;2654.245;5940.715;846.107;2098.357;307.535;491.631;65.036;1998.758;276.032;144.673;22.523;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
1;12;20;23;58;18262.445;2658.207;5954.879;848.062;2100.714;307.927;492.416;65.134;2000.809;276.293;144.684;22.524;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2;12;20;23;58;18287.658;2661.88;5968.3;849.842;2103.158;308.33;493.306;65.246;2002.172;276.457;144.694;22.526;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
3;12;20;23;58;18316.199;2666.01;5980.35;851.464;2106.168;308.94;494.387;65.382;2005.311;276.852;144.704;22.527;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
4;12;20;23;58;18342.113;2669.744;5990.712;852.828;2108.199;309.36;495.607;65.534;2007.743;277.163;144.714;22.529;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
5;12;20;23;58;18363.975;2672.943;6003.19;854.491;2110.021;309.683;495.724;65.549;2008.958;277.292;144.724;22.53;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
6;12;20;23;58;18385.09;2676.027;6015.726;856.194;2110.937;309.797;496.01;65.585;2009.6;277.35;144.734;22.532;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
7;12;20;23;58;18414.76;2680.301;6029.752;858.071;2114.139;310.364;496.951;65.702;2010.424;277.427;144.744;22.533;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
8;12;20;23;58;18438.969;2683.863;6041.512;859.716;2115.918;310.686;497.784;65.807;2012.19;277.644;144.754;22.535;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
9;12;20;23;58;18465.801;2687.758;6056.798;861.811;2118.81;311.147;498.578;65.906;2013.054;277.728;144.764;22.536;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
10;12;20;23;58;18496.035;2692.17;6075.335;864.382;2120.29;311.448;499.397;66.01;2014.809;277.949;144.774;22.538;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
11;12;20;23;58;18525.865;2696.532;6092.583;866.819;2122.023;311.78;500.548;66.154;2016.808;278.198;144.785;22.539;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
12;12;20;23;58;18549.891;2700.003;6099.693;867.837;2124.034;312.33;501.578;66.284;2018.548;278.394;144.795;22.541;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
13;12;20;23;58;18574.742;2703.576;6107.584;868.925;2124.938;312.645;502.484;66.398;2023.904;279.089;144.806;22.542;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
14;12;20;23;58;18602.568;2707.629;6121.771;870.938;2126.024;312.98;503.499;66.527;2025.231;279.226;144.817;22.544;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
15;12;20;23;58;18624.582;2710.872;6129.391;871.999;2128.703;313.413;504.679;66.68;2028.385;279.619;144.827;22.546;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
16;12;20;23;58;18643.484;2713.614;6136.453;873.031;2129.636;313.887;505.549;66.789;2029.31;279.716;144.838;22.547;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
17;12;20;23;58;18668.18;2717.207;6147.674;874.626;2129.778;314.506;506.818;66.948;2030.815;279.906;144.848;22.549;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
18;12;20;23;58;18691.881;2720.651;6155.743;875.719;2130.037;314.766;508.145;67.116;2034.221;280.327;144.859;22.55;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
19;12;20;23;58;18725.148;2725.446;6166.668;877.257;2136.229;315.877;509.868;67.334;2036.391;280.586;144.869;22.552;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
20;12;20;23;58;18746.305;2728.506;6174.326;878.435;2136.302;316.336;510.794;67.45;2038.043;280.786;144.88;22.553;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
21;12;20;23;58;18770.066;2731.943;6183.158;879.677;2136.841;316.7;512.291;67.637;2042.082;281.3;144.892;22.555;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
22;12;20;23;58;18795.584;2735.588;6186.467;880.328;2137.046;316.961;513.742;67.818;2047.507;282.025;144.904;22.557;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
23;12;20;23;58;18813.68;2738.221;6190.577;881.115;2138.124;317.258;514.61;67.928;2048.601;282.145;144.916;22.559;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
24;12;20;23;58;18834.512;2741.252;6199.326;882.411;2139.312;317.62;515.141;67.999;2049.771;282.27;144.927;22.56;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
25;12;20;23;58;18856.469;2744.454;6213.015;884.243;2140.166;317.727;515.155;68;2050.003;282.271;144.938;22.562;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
26;12;20;23;58;18882.965;2748.335;6231.136;886.869;2141.083;317.842;515.169;68.002;2050.266;282.272;144.95;22.564;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
27;12;20;23;58;18907.709;2751.957;6245.432;888.882;2141.977;317.953;516.115;68.12;2051.019;282.335;144.961;22.565;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
28;12;20;23;58;18937.426;2756.243;6257.082;890.383;2143.802;318.379;517.488;68.292;2053.231;282.623;144.971;22.567;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
29;12;20;23;58;18962.162;2759.843;6268.282;891.815;2146.304;318.857;518.3;68.394;2054.597;282.779;144.982;22.569;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
30;12;20;23;58;18992.68;2764.287;6280.66;893.54;2150.058;319.527;519.496;68.545;2058.158;283.244;144.992;22.57;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
31;12;20;23;58;19024.359;2768.895;6295.134;895.597;2150.966;319.85;520.787;68.709;2063.682;283.978;145.002;22.572;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
1;1;21;23;58;19057.775;2773.719;6308.945;897.453;2156.848;320.709;522.386;68.915;2066.51;284.337;145.012;22.573;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2;1;21;23;58;19093.719;2778.907;6324.726;899.646;2163.933;321.66;523.284;69.031;2067.848;284.48;145.021;22.574;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
3;1;21;23;58;19124.793;2783.426;6342.172;902.154;2163.957;321.878;524.469;69.18;2070.239;284.78;145.032;22.576;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
4;1;21;23;58;19154.371;2787.726;6359.147;904.544;2164.943;322.202;525.611;69.324;2071.717;284.946;145.043;22.578;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
5;1;21;23;58;19186.305;2792.373;6376.013;906.901;2166.801;322.83;526.614;69.45;2073.486;285.154;145.061;22.58;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
6;1;21;23;58;19218.09;2796.982;6393.248;909.342;2168.181;323.455;527.879;69.609;2076.835;285.574;145.065;22.581;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
7;1;21;23;58;19255.867;2802.454;6408.536;911.463;2172.142;324.157;529.084;69.762;2079.832;285.967;151.34;23.454;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
8;1;21;23;58;19289.859;2807.394;6429.571;914.422;2172.487;324.605;530.044;69.882;2081.617;286.166;153.361;23.745;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
9;1;21;23;58;19329.797;2813.236;6450.02;917.328;2176.815;325.534;531.35;70.046;2085.838;286.723;153.365;23.746;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
10;1;21;23;58;19365.125;2818.362;6467.219;919.697;2179.902;326.44;532.346;70.17;2091.556;287.47;153.369;23.746;0.064;0.023;1;0.064;0.023;0.055;0.02;0;0;0;0;0;0;0;0;0;0;0;0

The output_data.csv file :

9;1;21;23;58;19329.797;2813.236;6450.02;917.328;2176.815;325.534;531.35;70.046;2085.838;286.723;153.365;23.746;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
10;1;21;23;58;19365.125;2818.362;6467.219;919.697;2179.902;326.44;532.346;70.17;2091.556;287.47;153.369;23.746;0.064;0.023;1;0.064;0.023;0.055;0.02;0;0;0;0;0;0;0;0;0;0;0;0

Dear all,

Finally my CSV_keep_2_end_lines.py script above is not working on HA, the reason seems because Ha is using restricted python…

My new question is : How to execute my python code through an other way ?

Thanks for your help