Created
November 7, 2017 09:04
-
-
Save plopp/f3d87af3a2f2fc1a6485f52decdba9a6 to your computer and use it in GitHub Desktop.
Revisions
-
plopp created this gist
Nov 7, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,370 @@ function(head, req) { var tags = [ 'GVL.abbExportedReactive', 'GVL.abbImportedReactive', 'GVL.abbPhaseAngleTotal', 'GVL.abbPowerFactorL1', 'GVL.abbPowerFactorL2', 'GVL.abbPowerFactorL3', 'GVL.abbPowerFactorTotal', 'GVL.avluftfasad281', 'GVL.avluftteknikrum279', 'GVL.bathroom_fl2_co2', 'GVL.bathroom_fl2_rh', 'GVL.bathroom_fl2_temp', 'GVL.bathroom_fl2_voc', 'GVL.bedroom1_fl2_co2', 'GVL.bedroom1_fl2_rh', 'GVL.bedroom1_fl2_temp', 'GVL.bedroom1_fl2_voc', 'GVL.bedroom2_fl2_co2', 'GVL.bedroom2_fl2_rh', 'GVL.bedroom2_fl2_temp', 'GVL.bedroom2_fl2_voc', 'GVL.bedroom3_fl2_co2', 'GVL.bedroom3_fl2_rh', 'GVL.bedroom3_fl2_temp', 'GVL.bedroom3_fl2_voc', 'GVL.circulation_pump_speed', 'GVL.exhaust_air_rh', 'GVL.exhaust_air_temp', 'GVL.exhaust_fan_speed', 'GVL.exhaust_voc', 'GVL.extract_air_rh', 'GVL.extract_air_temp', 'GVL.extract_co2', 'GVL.extract_voc', 'GVL.flow37', 'GVL.flow38', 'GVL.flow39', 'GVL.flow40', 'GVL.franluft283', 'GVL.hwc_fl1_co2', 'GVL.hwc_fl1_rh', 'GVL.hwc_fl1_temp', 'GVL.hwc_fl1_voc', 'GVL.k1', 'GVL.k2', 'GVL.k3', 'GVL.k4', 'GVL.living_room_fl1_co2', 'GVL.living_room_fl1_rh', 'GVL.living_room_fl1_temp', 'GVL.living_room_fl1_voc', 'GVL.living_room_fl2_co2', 'GVL.living_room_fl2_rh', 'GVL.living_room_fl2_temp', 'GVL.living_room_fl2_voc', 'GVL.outdoor_air_rh', 'GVL.outdoor_air_temp', 'GVL.outdoor_co2', 'GVL.outdoor_voc', 'GVL.p1_energy', 'GVL.p1_power', 'GVL.p20_energy', 'GVL.p20_power', 'GVL.p21_energy', 'GVL.p21_power', 'GVL.p22_energy', 'GVL.p22_power', 'GVL.p23_energy', 'GVL.p23_power', 'GVL.p24_energy', 'GVL.p24_power', 'GVL.p25_energy', 'GVL.p25_power', 'GVL.p26_energy', 'GVL.p26_power', 'GVL.p27_energy', 'GVL.p27_power', 'GVL.p28_energy', 'GVL.p28_power', 'GVL.p29_energy', 'GVL.p29_power', 'GVL.p2_energy', 'GVL.p2_power', 'GVL.p30_energy', 'GVL.p30_power', 'GVL.p31_energy', 'GVL.p31_power', 'GVL.p32_energy', 'GVL.p32_power', 'GVL.p33_energy', 'GVL.p33_power', 'GVL.p34_energy', 'GVL.p34_power', 'GVL.p35_energy', 'GVL.p35_power', 'GVL.p36_energy', 'GVL.p36_power', 'GVL.p37_energy', 'GVL.p37_power', 'GVL.p38_energy', 'GVL.p38_power', 'GVL.p39_energy', 'GVL.p39_power', 'GVL.p3_energy', 'GVL.p3_power', 'GVL.p40_energy', 'GVL.p40_power', 'GVL.p41_energy', 'GVL.p41_power', 'GVL.p42_energy', 'GVL.p42_power', 'GVL.p43_energy', 'GVL.p43_power', 'GVL.p44_energy', 'GVL.p44_power', 'GVL.p45_energy', 'GVL.p45_power', 'GVL.p46_energy', 'GVL.p46_power', 'GVL.p47_energy', 'GVL.p47_power', 'GVL.p48_energy', 'GVL.p48_power', 'GVL.p49_energy', 'GVL.p49_power', 'GVL.p4_energy', 'GVL.p4_power', 'GVL.p50_energy', 'GVL.p50_power', 'GVL.p51_energy', 'GVL.p51_power', 'GVL.p52_energy', 'GVL.p52_power', 'GVL.p53_energy', 'GVL.p53_power', 'GVL.p54_energy', 'GVL.p54_power', 'GVL.p55_energy', 'GVL.p55_power', 'GVL.p56_energy', 'GVL.p56_power', 'GVL.p57_energy', 'GVL.p57_power', 'GVL.p58_energy', 'GVL.p58_power', 'GVL.p5_energy', 'GVL.p5_power', 'GVL.p6_energy', 'GVL.p6_power', 'GVL.p70_energy_exp', 'GVL.p70_energy_imp', 'GVL.p70_power_exp', 'GVL.p70_power_imp', 'GVL.p7_energy', 'GVL.p7_power', 'GVL.p8_energy', 'GVL.p8_power', 'GVL.p9_energy', 'GVL.p9_power', 'GVL.pentry_co2', 'GVL.pentry_rh', 'GVL.pentry_temp', 'GVL.pentry_voc', 'GVL.pid_exhaust_output', 'GVL.pid_supply_output', 'GVL.press37', 'GVL.press38', 'GVL.press39', 'GVL.press40', 'GVL.pvEnergy', 'GVL.pvPower', 'GVL.r20', 'GVL.r21', 'GVL.r22', 'GVL.r23', 'GVL.r24', 'GVL.r25', 'GVL.r26', 'GVL.r27', 'GVL.r28', 'GVL.r29', 'GVL.r30', 'GVL.r31', 'GVL.r32', 'GVL.r33', 'GVL.r34', 'GVL.r35', 'GVL.r36', 'GVL.r37', 'GVL.r38', 'GVL.r39', 'GVL.r40', 'GVL.r41', 'GVL.r42', 'GVL.r43', 'GVL.r44', 'GVL.r45', 'GVL.r46', 'GVL.r47', 'GVL.r48', 'GVL.r49', 'GVL.r50', 'GVL.r51', 'GVL.r52', 'GVL.sum_air_exhaust_flow', 'GVL.sum_air_supply_flow', 'GVL.supply_air_rh', 'GVL.supply_air_temp', 'GVL.supply_fan_speed', 'GVL.supply_voc', 'GVL.tKbRetPt100', 'GVL.tKbTillPt100', 'GVL.tKvVvProd', 'GVL.tVv', 'GVL.tapp20_flow', 'GVL.tapp20_vol', 'GVL.tapp21_flow', 'GVL.tapp21_vol', 'GVL.tapp22_flow', 'GVL.tapp22_vol', 'GVL.tapp23_flow', 'GVL.tapp23_vol', 'GVL.tapp24_flow', 'GVL.tapp24_vol', 'GVL.tapp25_flow', 'GVL.tapp25_vol', 'GVL.tapp26_flow', 'GVL.tapp26_vol', 'GVL.tapp27_flow', 'GVL.tapp27_vol', 'GVL.tapp28_flow', 'GVL.tapp28_vol', 'GVL.tapp29_flow', 'GVL.tapp29_vol', 'GVL.tapp30_flow', 'GVL.tapp30_vol', 'GVL.tapp31_flow', 'GVL.tapp31_vol', 'GVL.tapp32_flow', 'GVL.tapp32_vol', 'GVL.tilluft282', 'GVL.totalEnergyExpFromAbbMeter', 'GVL.totalEnergyFromAbbMeter', 'GVL.totalEnergyFromPulseMeters', 'GVL.totalPowerAbbL1', 'GVL.totalPowerAbbL2', 'GVL.totalPowerAbbL3', 'GVL.totalPowerFromAbbMeter', 'GVL.totalPowerFromPulseMeters', 'GVL.totalPowerNotMeasured', 'GVL.totalReactivePower', 'GVL.totalReactivePowerAbbL1', 'GVL.totalReactivePowerAbbL2', 'GVL.totalReactivePowerAbbL3', 'GVL.uteluft280', 'GVL.vav_eh1_flow', 'GVL.vav_eh1_pos', 'GVL.vav_eh2_flow', 'GVL.vav_eh2_pos', 'GVL.vav_eh3_flow', 'GVL.vav_eh3_pos', 'GVL.vav_su1_flow', 'GVL.vav_su1_pos', 'GVL.vav_su2_flow', 'GVL.vav_su2_pos', 'GVL.vav_su3_flow', 'GVL.vav_su3_pos', 'GVL.vav_su4_flow', 'GVL.vav_su4_pos', 'GVL.vav_su5_flow', 'GVL.vav_su5_pos', 'GVL.vmkv_flow', 'GVL.vmkv_vol', 'GVL.vmmGolvUterum_energy', 'GVL.vmmGolvUterum_flow', 'GVL.vmmGolvUterum_fwdtemp', 'GVL.vmmGolvUterum_power', 'GVL.vmmGolvUterum_rettemp', 'GVL.vmmGolvUterum_vol', 'GVL.vmmGolvVindfang_energy', 'GVL.vmmGolvVindfang_flow', 'GVL.vmmGolvVindfang_fwdtemp', 'GVL.vmmGolvVindfang_power', 'GVL.vmmGolvVindfang_rettemp', 'GVL.vmmGolvVindfang_vol', 'GVL.vmmKylbatt_energy', 'GVL.vmmKylbatt_flow', 'GVL.vmmKylbatt_fwdtemp', 'GVL.vmmKylbatt_power', 'GVL.vmmKylbatt_rettemp', 'GVL.vmmKylbatt_vol', 'GVL.vmmgolvpl1_energy', 'GVL.vmmgolvpl1_flow', 'GVL.vmmgolvpl1_fwdtemp', 'GVL.vmmgolvpl1_power', 'GVL.vmmgolvpl1_rettemp', 'GVL.vmmgolvpl1_vol', 'GVL.vmmgolvpl2_energy', 'GVL.vmmgolvpl2_flow', 'GVL.vmmgolvpl2_fwdtemp', 'GVL.vmmgolvpl2_power', 'GVL.vmmgolvpl2_rettemp', 'GVL.vmmgolvpl2_vol', 'GVL.vmmkb_difftemp', 'GVL.vmmkb_energy', 'GVL.vmmkb_flow', 'GVL.vmmkb_fwdtemp', 'GVL.vmmkb_power', 'GVL.vmmkb_rettemp', 'GVL.vmmkb_vol', 'GVL.vmmradpl1_energy', 'GVL.vmmradpl1_flow', 'GVL.vmmradpl1_fwdtemp', 'GVL.vmmradpl1_power', 'GVL.vmmradpl1_rettemp', 'GVL.vmmradpl1_vol', 'GVL.vmmradpl2_energy', 'GVL.vmmradpl2_flow', 'GVL.vmmradpl2_fwdtemp', 'GVL.vmmradpl2_power', 'GVL.vmmradpl2_rettemp', 'GVL.vmmradpl2_vol', 'GVL.vmmvent_energy', 'GVL.vmmvent_flow', 'GVL.vmmvent_fwdtemp', 'GVL.vmmvent_power', 'GVL.vmmvent_rettemp', 'GVL.vmmvent_vol', 'GVL.vmmvs_energy', 'GVL.vmmvs_flow', 'GVL.vmmvs_fwdtemp', 'GVL.vmmvs_power', 'GVL.vmmvs_rettemp', 'GVL.vmmvs_vol', 'GVL.vmmvsvp_energy', 'GVL.vmmvsvp_flow', 'GVL.vmmvsvp_fwdtemp', 'GVL.vmmvsvp_power', 'GVL.vmmvsvp_rettemp', 'GVL.vmmvsvp_vol']; start({ 'headers': { 'Content-Type': 'text/csv', 'Content-disposition': 'attachment;filename=data.csv' } }); var first = true; while (row = getRow()) { if (first) { send('timestamp;'); send(tags.join(';')); send('\\n'); first = false; } var datestr = new Date(row.value['timestamp']).toISOString(); send(datestr + ';'); var vals = tags.map(function (a) { if (row.value.hasOwnProperty(a)) { return row.value[a].toString().replace('.', ','); } else { return ''; } }).join(';') + '\\n'; send(vals); } }