add triggers with config using env vars

This commit is contained in:
Simon Vieille 2020-11-29 16:44:16 +01:00
parent 2189cd2bd4
commit a706fe045a
Signed by: deblan
GPG Key ID: 03383D15A1D31745
3 changed files with 30 additions and 5 deletions

View File

@ -6,6 +6,11 @@
parameters:
motion_snapshots_directory: "motion/snapshots"
camera1_url: "%env(CAMERA1_URL)%"
camera1_url: "%env(CAMERA1_URL)%"
temperature_trigger_min: "%env(TEMPERATURE_TRIGGER_MIN)%"
temperature_trigger_max: "%env(TEMPERATURE_TRIGGER_MAX)%"
hygrometry_trigger_min: "%env(HYGROMETRY_TRIGGER_MIN)%"
hygrometry_trigger_max: "%env(HYGROMETRY_TRIGGER_MAX)%"
services:
# default configuration for services in *this* file

View File

@ -10,13 +10,20 @@ use App\Validator\ApiValidator;
use App\Entity\Hygrometry;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\Repository\HygrometryRepository;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class HygrometryApiController extends AbstractController
{
/**
* @Route("/api/hygrometry/create", name="api_hygrometry_create", methods={"POST"})
*/
public function create(Request $request, ApiValidator $validator, \Swift_Mailer $mailer, HygrometryRepository $repository): JsonResponse
public function create(
Request $request,
ApiValidator $validator,
\Swift_Mailer $mailer,
HygrometryRepository $repository,
ParameterBagInterface $params
): JsonResponse
{
if ('application/json' === $request->getContentType()) {
return $this->json([], 400);
@ -39,7 +46,10 @@ class HygrometryApiController extends AbstractController
$manager->persist($entity);
$manager->flush();
if ($entity->getValue() >= 53 && false) {
$min = (float) $params->get('hygrometry_trigger_min');
$max = (float) $params->get('hygrometry_trigger_max');
if ($entity->getValue() < $min || $entity->getValue() > $max) {
$message = (new \Swift_Message('[Terrarium] Alerte hygométrie'))
->setFrom('terrarium@deblan.fr')
->setTo(['simon@deblan.fr', 'jennifer@derago.fr'])

View File

@ -10,13 +10,20 @@ use App\Validator\ApiValidator;
use App\Entity\Temperature;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\Repository\TemperatureRepository;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class TemperatureApiController extends AbstractController
{
/**
* @Route("/api/temperature/create", name="api_temperature_create", methods={"POST"})
*/
public function create(Request $request, ApiValidator $validator, \Swift_Mailer $mailer, TemperatureRepository $repository): JsonResponse
public function create(
Request $request,
ApiValidator $validator,
\Swift_Mailer $mailer,
TemperatureRepository $repository,
ParameterBagInterface $params
): JsonResponse
{
if ('application/json' === $request->getContentType()) {
return $this->json([], 400);
@ -39,7 +46,10 @@ class TemperatureApiController extends AbstractController
$manager->persist($entity);
$manager->flush();
if ($entity->getValue() <= 22) {
$min = (float) $params->get('temperature_trigger_min');
$max = (float) $params->get('temperature_trigger_max');
if ($entity->getValue() < $min || $entity->getValue() > $max) {
$message = (new \Swift_Message('[Terrarium] Alerte température'))
->setFrom('terrarium@deblan.fr')
->setTo(['simon@deblan.fr', 'jennifer@derago.fr'])
@ -49,7 +59,7 @@ class TemperatureApiController extends AbstractController
[
'entity' => $entity,
'entities' => $repository->findByDateRange(
new \DateTime('now - 1 hour'),
new \DateTime('now - 1 hour'),
new \DateTime('now'),
6,
'DESC'