Skip to content
Snippets Groups Projects
createMockFile.js 3.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • Hugo NOUTS's avatar
    Hugo NOUTS committed
    const fs = require('fs')
    const { DateTime } = require('luxon')
    
    const generateData = (startingdate, endingDate) => {
      let parsingDate = DateTime.local(
        startingdate.year,
        startingdate.month,
        startingdate.day
      )
    
      let lastDay = parsingDate.day
      const dayDumpArray = []
    
      let lastMonth = parsingDate.month
      const monthDumpArray = []
    
      let lastYear = parsingDate.year
      const yearDumpArray = []
    
      let dailyLoad = 0
      let monthlyLoad = 0
      let yearlyLoad = 0
    
      const dumpArray = []
      while (parsingDate <= endingDate) {
        const load = parseInt(Math.random() * 1000) / 100
        dailyLoad += load
        monthlyLoad += load
        yearlyLoad += load
    
        dumpArray.push({
          load: load,
          year: parsingDate.year,
          month: parsingDate.month,
          day: parsingDate.day,
          hour: parsingDate.hour,
          minute: parsingDate.minute,
        })
    
        if (parsingDate.day !== lastDay) {
          dayDumpArray.push({
            load: Math.round(dailyLoad * 100) / 100,
            year: parsingDate.year,
            month: lastMonth,
            day: lastDay,
            hour: 0,
            minute: 0,
          })
          dailyLoad = 0
          lastDay = parsingDate.day
        }
    
        if (parsingDate.month !== lastMonth) {
          monthDumpArray.push({
            load: Math.round(monthlyLoad * 100) / 100,
            year: lastYear,
            month: lastMonth,
            day: 0,
            hour: 0,
            minute: 0,
          })
          monthlyLoad = 0
          lastMonth = parsingDate.month
        }
    
        if (parsingDate.year !== lastYear) {
          yearDumpArray.push({
            load: Math.round(yearlyLoad * 100) / 100,
            year: lastYear,
            month: 0,
            day: 0,
            hour: 0,
            minute: 0,
          })
          yearlyLoadLoad = 0
          lastYear = parsingDate.year
        }
    
        parsingDate = parsingDate.plus({ minutes: 30 })
      }
    
      return {
        hourlyLoad: dumpArray,
        dailyLoad: dayDumpArray,
        monthlyLoad: monthDumpArray,
        yearlyLoad: yearDumpArray,
      }
    }
    
    const startingdate = DateTime.local(2020, 1, 1)
    const endingDate = DateTime.local(2020, 4, 15)
    
    const Eelec = generateData(startingdate, endingDate)
    const Gaz = generateData(startingdate, endingDate)
    const Eau = generateData(startingdate, endingDate)
    
    //const dt2 = dt.plus({days:1})
    /*
    
    fetchData = (y1,y2,withHourlyDetail) =>
    {
      const dumpArray =[];
    
      for (year = y1; year <= y2; year++) {
        for (month = 1; month <= 12; month++) {
          for (day = 1; day <= 30; day++) {
            if (withHourlyDetail)
            {
              for(h = 0; h<=23;h++)
              {
                for(m=0;m<=1;m++)
                {
                  const date =
                  {
                    year: year,
                    month: month,
                    day: day,
                    hour: h,
                    minute: m*30,
                    load: (parseInt(Math.random() * 10000) / 100)
                  }
                  dumpArray.push(date);
                }
              }
            }
          else
          {
              const date =
              {
                year: year,
                month: month,
                day: day,
                hour: 0,
                minute: 0,
                load: (parseInt(Math.random() * 10000) / 100)
              }
    
              dumpArray.push(date);
          }
    
          }
        }
      }
      return dumpArray;
    }
    
    */
    const dump = {
      'io.enedis.minute': Eelec.hourlyLoad,
      'io.enedis.day': Eelec.dailyLoad,
      'io.enedis.month': Eelec.monthlyLoad,
      'io.enedis.year': Eelec.yearlyLoad,
    
      'io.grdf.hour': Gaz.hourlyLoad,
      'io.grdf.day': Gaz.dailyLoad,
      'io.grdf.month': Gaz.monthlyLoad,
      'io.grdf.year': Gaz.yearlyLoad,
    
      //"io.egl.hour": Eau.hourlyLoad,
      'io.egl.day': Eau.dailyLoad,
      'io.egl.month': Eau.monthlyLoad,
      'io.egl.year': Eau.yearlyLoad,
    }
    
    const dumpString = JSON.stringify(dump)
    
    fs.writeFile('dayData.json', dumpString, function(err, result) {
      if (err) console.log('error', err)
    })