/**
  * @param  integer $id
  * @return array
  */
 public function batchLogsAction($id)
 {
     $logs = $this->logRepository->findForGraphAndBatchId($id);
     $phases = $this->phaseRepository->findForBatchId($id);
     $mappedPhases = [];
     /** @var Phase $phase */
     foreach ($phases as $phase) {
         $value = sprintf('%s: %s', $phase->getName(), $phase->getValue());
         if ($phase->getType() === Phase::CONTROL_TEMP || $phase->getType() === Phase::REACH_TEMP) {
             $value .= ' °C';
         } else {
             $value .= ' gram';
         }
         $mappedPhases[$phase->getId()] = $value;
     }
     $data = [];
     $previousLog = new Log();
     /** @var Log $log */
     foreach ($logs as $key => $log) {
         if ($log->getCreatedAt()->format('YmdHi') - $previousLog->getCreatedAt()->format('YmdHi') < 2 && $previousLog->getTopic() == $log->getTopic()) {
             continue;
         }
         $item = ['type' => $log->getType(), 'topic' => $log->getTopic(), 'time' => $log->getCreatedAt()->format('U') * 1000, 'value' => $log->getValue()];
         if ($log->getTopic() === Log::TOPIC_PUMP_SET_STATE) {
             $item['value'] = 'Pomp: ' . ($log->getValue() === 'on' ? 'aan' : 'uit');
         } elseif ($log->getTopic() === 'phase.start') {
             if (isset($mappedPhases[$log->getValue()])) {
                 $item['value'] = $mappedPhases[$log->getValue()];
                 if ($previousLog->getTopic() == $log->getTopic() && $previousLog->getValue() != $log->getValue()) {
                     $log->setValue($previousLog->getValue() . ', ' . $log->getValue());
                     continue;
                 }
             } else {
                 // must be set?! probably bad data!
                 continue;
             }
         }
         $data[] = $item;
         $previousLog = clone $log;
     }
     return JsonResponse::create(['data' => $data]);
 }