add lights chart
This commit is contained in:
parent
003feb5e62
commit
e94109fd40
|
@ -10,6 +10,8 @@ parameters:
|
||||||
temperature_trigger_max: "%env(TEMPERATURE_TRIGGER_MAX)%"
|
temperature_trigger_max: "%env(TEMPERATURE_TRIGGER_MAX)%"
|
||||||
hygrometry_trigger_min: "%env(HYGROMETRY_TRIGGER_MIN)%"
|
hygrometry_trigger_min: "%env(HYGROMETRY_TRIGGER_MIN)%"
|
||||||
hygrometry_trigger_max: "%env(HYGROMETRY_TRIGGER_MAX)%"
|
hygrometry_trigger_max: "%env(HYGROMETRY_TRIGGER_MAX)%"
|
||||||
|
light_on_at: "%env(LIGHT_ON_AT)%"
|
||||||
|
light_off_at: "%env(LIGHT_OFF_AT)%"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# default configuration for services in *this* file
|
# default configuration for services in *this* file
|
||||||
|
|
|
@ -8,13 +8,18 @@ use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use App\Repository\TemperatureRepository;
|
use App\Repository\TemperatureRepository;
|
||||||
use App\Repository\HygrometryRepository;
|
use App\Repository\HygrometryRepository;
|
||||||
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||||
|
|
||||||
class MonitoringApiController extends AbstractController
|
class MonitoringApiController extends AbstractController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @Route("/api/monitoring/temperature", name="api_monitoring_temperature", methods={"GET"})
|
* @Route("/api/monitoring/temperature", name="api_monitoring_temperature", methods={"GET"})
|
||||||
*/
|
*/
|
||||||
public function temperature(Request $request, TemperatureRepository $repository): JsonResponse
|
public function temperature(
|
||||||
|
Request $request,
|
||||||
|
TemperatureRepository $repository,
|
||||||
|
ParameterBagInterface $params
|
||||||
|
): JsonResponse
|
||||||
{
|
{
|
||||||
$labels = [];
|
$labels = [];
|
||||||
$datasets = [];
|
$datasets = [];
|
||||||
|
@ -41,17 +46,46 @@ class MonitoringApiController extends AbstractController
|
||||||
'fill' => false,
|
'fill' => false,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$lightOn = [
|
||||||
|
'label' => 'Lumière allumée',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(230, 217, 149)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
|
$lightOff = [
|
||||||
|
'label' => 'Lumière éteinte',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(214, 214, 214)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
|
$lightOnAt = (int) $params->get('light_on_at');
|
||||||
|
$lightOffAt = (int) $params->get('light_off_at');
|
||||||
|
|
||||||
foreach ($entities as $entity) {
|
foreach ($entities as $entity) {
|
||||||
$hour = (int) $entity->getDate()->format('H');
|
$hour = (int) $entity->getDate()->format('H');
|
||||||
$labels[] = $entity->getDate()->format('H:i');
|
$labels[] = $entity->getDate()->format('H:i');
|
||||||
$line['data'][] = $entity->getValue();
|
$line['data'][] = $entity->getValue();
|
||||||
$line2['data'][] = 27;
|
$line2['data'][] = 27;
|
||||||
$line3['data'][] = 23;
|
$line3['data'][] = 23;
|
||||||
|
|
||||||
|
$lightTime = (int) $entity->getDate()->format('gi');
|
||||||
|
|
||||||
|
if ($lightTime >= $lightOn && $lightTime <= $lightOff) {
|
||||||
|
$lightOn['data'][] = 5;
|
||||||
|
$lightOff['data'][] = 0;
|
||||||
|
} else {
|
||||||
|
$lightOn['data'][] = 0;
|
||||||
|
$lightOff['data'][] = 5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$datasets[] = $line;
|
$datasets[] = $line;
|
||||||
$datasets[] = $line2;
|
$datasets[] = $line2;
|
||||||
$datasets[] = $line3;
|
$datasets[] = $line3;
|
||||||
|
$datasets[] = $lightOn;
|
||||||
|
$datasets[] = $lightOff;
|
||||||
|
|
||||||
return $this->createGraphResponse($labels, $datasets);
|
return $this->createGraphResponse($labels, $datasets);
|
||||||
}
|
}
|
||||||
|
@ -59,7 +93,11 @@ class MonitoringApiController extends AbstractController
|
||||||
/**
|
/**
|
||||||
* @Route("/api/monitoring/hygrometry", name="api_monitoring_hygrometry", methods={"GET"})
|
* @Route("/api/monitoring/hygrometry", name="api_monitoring_hygrometry", methods={"GET"})
|
||||||
*/
|
*/
|
||||||
public function hygrometry(Request $request, HygrometryRepository $repository): JsonResponse
|
public function hygrometry(
|
||||||
|
Request $request,
|
||||||
|
HygrometryRepository $repository,
|
||||||
|
ParameterBagInterface $params
|
||||||
|
): JsonResponse
|
||||||
{
|
{
|
||||||
$labels = [];
|
$labels = [];
|
||||||
$datasets = [];
|
$datasets = [];
|
||||||
|
@ -80,14 +118,41 @@ class MonitoringApiController extends AbstractController
|
||||||
'fill' => false,
|
'fill' => false,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$lightOn = [
|
||||||
|
'label' => 'Lumière allumée',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(230, 217, 149)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
|
$lightOff = [
|
||||||
|
'label' => 'Lumière éteinte',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(214, 214, 214)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
|
$lightOnAt = (int) $params->get('light_on_at');
|
||||||
|
$lightOffAt = (int) $params->get('light_off_at');
|
||||||
|
|
||||||
foreach ($entities as $entity) {
|
foreach ($entities as $entity) {
|
||||||
$labels[] = $entity->getDate()->format('H:i');
|
$labels[] = $entity->getDate()->format('H:i');
|
||||||
$line['data'][] = $entity->getValue();
|
$line['data'][] = $entity->getValue();
|
||||||
$line2['data'][] = 50;
|
$line2['data'][] = 50;
|
||||||
|
|
||||||
|
if ($lightTime >= $lightOn && $lightTime <= $lightOff) {
|
||||||
|
$lightOn['data'][] = 5;
|
||||||
|
$lightOff['data'][] = 0;
|
||||||
|
} else {
|
||||||
|
$lightOn['data'][] = 0;
|
||||||
|
$lightOff['data'][] = 5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$datasets[] = $line;
|
$datasets[] = $line;
|
||||||
$datasets[] = $line2;
|
$datasets[] = $line2;
|
||||||
|
$datasets[] = $lightOn;
|
||||||
|
$datasets[] = $lightOff;
|
||||||
|
|
||||||
return $this->createGraphResponse($labels, $datasets);
|
return $this->createGraphResponse($labels, $datasets);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Date : {{ entity.date.format('d/m/Y H:i:s') }}
|
Date : {{ entity.date.format('d/m/Y H:i:s') }}
|
||||||
Niveau hygrométrique : {{ entity.value }}%
|
Niveau hygrométrique : {{ entity.value }}%
|
||||||
Déclancheurs : min={{ min }} max={{ max }}
|
Déclancheurs : min={{ triggers.min }} max={{ triggers.max }}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Date : {{ entity.date.format('d/m/Y H:i:s') }}
|
Date : {{ entity.date.format('d/m/Y H:i:s') }}
|
||||||
Température : {{ entity.value }}°
|
Température : {{ entity.value }}°
|
||||||
Déclancheurs : min={{ min }} max={{ max }}
|
Déclancheurs : min={{ triggers.min }} max={{ triggers.max }}
|
||||||
|
|
Loading…
Reference in New Issue