52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
define('APPDIR', dirname(__DIR__));
|
|
|
|
require_once APPDIR.'/vendor/autoload.php';
|
|
|
|
$config = json_decode(file_get_contents(APPDIR.'/etc/config.json'), true);
|
|
|
|
$digitemp = new \Orrisroot\DigiTemp($config['digitemp'], APPDIR.'/'.$config['digitemp_config']);
|
|
$rrdtemp = new \Orrisroot\Rrd\Temperature(APPDIR.'/'.$config['database_dir']);
|
|
$num = $digitemp->getNumSensors();
|
|
$sensors = [];
|
|
for ($i = 0; $i < $num; ++$i) {
|
|
$id = $digitemp->getSensorId($i);
|
|
$rrdtemp->addSensor($id);
|
|
$sensors[] = $rrdtemp->readLastData($id);
|
|
}
|
|
$upper = $config['mail_alert_upper'];
|
|
$lower = $config['mail_alert_lower'];
|
|
$do_send = false;
|
|
foreach ($sensors as $sensor) {
|
|
if ($sensor['latest'] < $lower || $sensor['latest'] > $upper) {
|
|
$do_send = true;
|
|
break;
|
|
}
|
|
}
|
|
if ($do_send) {
|
|
$from = $config['mail_from'];
|
|
$from_name = $config['mail_from_name'];
|
|
$to = $config['mail_alert_to'];
|
|
$subject = $config['mail_alert_subject'];
|
|
$loader = new \Twig\Loader\FilesystemLoader(APPDIR.'/'.$config['templates_dir']);
|
|
$twig = new \Twig\Environment($loader);
|
|
$data = [
|
|
'range' => [
|
|
'upper' => $upper,
|
|
'lower' => $lower,
|
|
],
|
|
'sensors' => $sensors,
|
|
'from' => [
|
|
'name' => $from_name,
|
|
'email' => $from,
|
|
],
|
|
'url' => $config['url'],
|
|
];
|
|
$body = $twig->render($config['mail_alert_template'], $data);
|
|
|
|
$from = new \Orrisroot\Mail\Address($from_name, $from);
|
|
$tos = [new \Orrisroot\Mail\Address($to, $to)];
|
|
\Orrisroot\Mail\UTF8_Mailer::sendMail($from, $tos, $subject, $body);
|
|
}
|