Helligkeit über Auswertung der Kamerabilder
Es gibt bekanntlich mehrere Möglichkeiten die Helligkeit (Außen) zu bestimmen.
Ein Weg - über die Auswertung der Bilder der Überwachungskameras- möchte ich hier aufzeigen.
Für diese Varainte wird ein Webserver bzw. der Loxberry benötigt.
Der Loxberry bietet die Möglichkeit unter dem Verzeichnis \Loxberry\XL\user eigene Scripte abzulegen.
Dieses kann man nun wie folgt nutzen:
<?php
// #!/usr/bin/env php
require_once "loxberry_XL.php";
$url = "http://192.168.178.xxx:PORT/cgi-bin/CGIProxy.fcgi";
// Get new sizes
list($width, $height) = getimagesize($url);
$newwidth = 1;
$newheight = 1;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($url);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
//imagejpeg($thumb);
$rgb = imagecolorat($thumb,0,0);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
echo '<br><br>RGB (dec): ';
echo 'R: '.$r.' ';
echo 'G: '.$g.' ';
echo 'B: '.$b.' ';
$helligkeit = round(sqrt((0.299 * pow($r,2)) + (0.587 * pow($g,2)) + (0.114 * pow($b,2))));
$helligkeitprozent = round(($helligkeit / 255) * 100);
echo "\n<br>";
echo 'Helligkeit: '.$helligkeit.' von 255 ('.$helligkeitprozent.'%)'."\n<br>";
Kurze Erklärung zum Script.
Das Script ruft vereinfacht gesagt das Kamerabidl ab und komprimiert das Bild auf eine Bildgröße von 1x1 Pixel. Dabei wird automatisch die Helligkeit neuberechnet. Dieser MicroPixel wird nachfolgend ausgewertet und in entsprechende Ausgaben aufgearbeitet.
Mit einer kleinen Erweiterung durch die imagecopyresized Funktion könnten auch nur Teilbereiche geprüft und ausgewertet werden.
Die Auswertung der Daten kann über den Miniserver erfolgen oder bei Bedarf über eine Erweiterung des Scriptes.
Per Virtueller HTTP-Eingang kann in der Loxone Config nun die Ausgabe des Scripts ausgelesen werden:
Als URL wird dabei das Verzeichnis des Loxberrys angegeben.
192.168.178.XX:PORT/XL/user/scriptname.php
Die IP Adresse kann dabei auch durch den Namen des Loxberrys ersetzet werden.