BlueIris Module

Hallo,hab es auch probiert und hab das selbe Ergebnis.

Mit freundlichen Grüßen
Robert

Gesendet von iPad mit Tapatalk Pro

Also wenn ich das richtig verstanden habe, werden die Stream Adressen nicht geändert?
Ich schau mir das heute Abend nochmal an.

Swen

Da es viele gerne haben wollten:
Hier einmal ein Script das die Clipliste abruft und folgende Funktionen bietet:

  • Start
  • Stop
  • Schneller
  • Langsamer

Funktioniert sowohl mit den Webfront, als auch mit IPS View. (Dashboard nicht getestet)

<?
$blueiris_id = 43782 /*[Kameras\BlueIris]*/; //Id der Blueiris Instance
$output_var = 28933 /*[Kameras\ClipList]*/; //mus eine String Variable sein mit dem Profil HTMLBox
$Startime_befor = 72; //Zeit zwischen Start und jetzt in Stunden
$sleep_time = 200; //in ms  (100ms = 1000/100 = 10 Bilder pro Sekunde )

$blueiris_conf_str = IPS_GetConfiguration($blueiris_id);
$blueiris_conf = json_decode($blueiris_conf_str, true);

$sid = BlueIris_Login($blueiris_id);

$data = BlueIris_CamList(43782 /*[Kameras\BlueIris]*/, $sid);
$cam_list = [];

foreach($data AS $cam_item) {
   $cam_list[$cam_item["optionValue"]] = $cam_item["optionDisplay"];
}
//print_r($cam_list);
$t_end = time();
$T_start = $t_end - (60*60*$Startime_befor);


$data = BlueIris_ClipList(43782 /*[Kameras\BlueIris]*/, $sid, "index", $T_start, $t_end, false);

$output = '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
			<script>
			var timer = null;
			var speed = 1.0;
			var stop = false;
			
			function openNav(link, msec, login) {
			    document.getElementById("bi_img_div").style.display = "block";
				document.getElementById("bi_list").style.display = "none";
				speed = 1.0;
				image = document.getElementById("bi_img");
				e_startstop = document.getElementById("bi_startstop");
				e_startstop.innerHTML = "Stop";
				e_speed = document.getElementById("bi_speed");
				e_speed.innerHTML = "Speed: " + speed.toString();
				step = 0;
				stop = false;
				timer = setInterval(function () {
					if(stop == false){
						image.src = link + step.toString() + login; 
						step = step + Math.round('.$sleep_time.'*speed);
						if( step > msec)
						{
							step = 0;
						}
					}
				}, '.$sleep_time.');
			}
			
			function closeNav() {
				document.getElementById("bi_list").style.display = "block";
			    document.getElementById("bi_img_div").style.display = "none";
				clearInterval(timer);
			} 
			
			function speedUp() {
				if(speed < 8){
					speed = speed*2;
					e_speed = document.getElementById("bi_speed");
					e_speed.innerHTML = "Speed: " + speed.toString();
				}
			}
			
			function speedDown() {
				if(speed > 0.25){
					speed = speed/2;
					e_speed = document.getElementById("bi_speed");
					e_speed.innerHTML = "Speed: " + speed.toString();
				}
			}
			
			function stopplay() {
				e_startstop = document.getElementById("bi_startstop");
				if(stop == false){
					stop = true;
					e_startstop.innerHTML = "Start";
				}else{
					stop = false;
					e_startstop.innerHTML = "Stop";
				}
			}
			
			</script>';

$output .= '<div id="bi_img_div" width="100%" style="display:none; text-align: center;">
				<a href="javascript:void(0)" style="position: absolute;top: 0px;left: 5px;font-size: 60px;text-decoration: none;color: white;" onclick="closeNav()">×</a>
				<a href="javascript:void(0)" style="position: absolute;top: 0px;right: 5px;font-size: 40px;text-decoration: none;color: white;" onclick="speedUp()">></a>
				<a id="bi_startstop" href="javascript:void(0)" style="position: absolute;top: 5px;right: 45px;font-size: 30px;text-decoration: none;color: white;" onclick="stopplay()">stop</a>
				<a href="javascript:void(0)" style="position: absolute;top: 0px;right: 115px;font-size: 40px;text-decoration: none;color: white;" onclick="speedDown()"><</a>
				<span id="bi_speed" style="position: absolute;top: 10px;right: 155px;font-size: 20px;color: white;"></span>
				<img id="bi_img" width="100%" />
			</div>';
			
$output .= '<table id="bi_list" width="100%" border="0">';
$login = '&user='.$blueiris_conf["Username"].'&pw='.$blueiris_conf["Password"];
foreach($data AS $clip_item) {
	$link = 'http://'.$blueiris_conf["IPAddress"].':'.$blueiris_conf["Port"].'/file/clips/'.$clip_item["path"].'?time=';
	
   	$output .= '<tr>
    <td width="20%"><img src="'.$link.round(($clip_item["msec"]/2)).$login.'" width="100%" onclick="openNav(\''.$link.'\', '.$clip_item["msec"].', \''.$login.'\')" /></td>
    <td>'.date("H:i:s-d.m.Y",$clip_item["date"]).'<br/>'.$cam_list[$clip_item["camera"]].'</td>
  </tr>';
}

$output .= '</table>';

$var_data = GetValueString($output_var);
if($var_data !=$output) SetValueString($output_var, $output);

?>

Skript wird bei mir alle 5 min aufgerufen.

Fragen, Probleme, oder Wünsche gerne hier runter.

Swen

Hallo!
Ich hab da mal eine kleine Frage, alles funktioniert soweit prima…Ich habe den Synchronisationsintervall auf 10 Sek. gestellt, um die „Bewegungsmelder“ auszulesen. Nun bekomme ich bei jeder Aktualisierung ein Akustisches Signal. „plopp“.
Kann an das abstellen??

Beste Grüße!

Hallo!
Ich hab da mal eine kleine Frage, alles funktioniert soweit prima…Ich habe den Synchronisationsintervall auf 10 Sek. gestellt, um die „Bewegungsmelder“ auszulesen. Nun bekomme ich bei jeder Aktualisierung ein Akustisches Signal. „plopp“.
Kann an das abstellen??

Beste Grüße!

Was macht plopp?
Das Modul mach keine Akustische Geräusche.

Swen

…merkwürdig, bei mir schon.
Wenn ich die Intervallzeit ändere, ändert sich auch der Intervall des Signals.

wodurch kommt dann die Akustische Meldung(Also welches gerät meldet akustisch?).Hast du mal in den Blue Iris Einstellungen geschaut.

Swen

Hallo!

Du musst beim Benutzer (der im BlueIris Modul angegeben ist) in der BlueIris die Sounds wegschalten.
Im Menü unter dem Punkt Users die Haken bei Alert einfach entfernen und speichern.

lg Chris

Super! Vielen Dank, das war´s!

Moin Jungs,

ich versuche gerade von BlueIris aus , per Webhook , bei Triggered eine Lampe im jeweiligen Bereich einzuschalten, im grunde Funktioniert es schon , nur das ich nicht weiß wie man bei Untriggered macht, den wie man auswertet was der Webhook sendet , weiß ich nicht . Ich finde dazu auch nix im Debug . Ich könnte es mir ganz einfach mit einem zweiten Webhook machen , aber das wäre doch unschön :slight_smile: Hat jemand eine Idee ? per Post sollte Alarm und Ruhig kommen, aber ich seh nicht was ankommt .

Hab jetzt nicht ganz verstanden wann die Lampe wieder ausgehen soll?

gruß Swen

Du kannst 2 webhook post setzen , einen bei Bewegung und dann bei ruhig , guck mal bei den Einstellungen für jede Kamera , ich habe bei Post Alarm und bei untriggered ruhig drin , aber wie werte ich aus was kommt . Im Debug zum Webhook steht ja nix , ich weiß also nicht wie der String der ankommt aussieht .

Ich finde dazu auch nix im Netz

Gesendet von iPhone mit Tapatalk

Wie wäre es mit der Doku :slight_smile:
WebHook Control — IP-Symcon :: Automatisierungssoftware
$_SERVER sollte auch funktionieren, da sind z.b. die Header enthalten.
Michael

Na dann guck mal :slight_smile: ich hab mit Paresy gesprochen , es gibt keine Chance zu sehen was da ankommt . Nur mit Postman , einem Tool was ich noch nicht genutzt habe .

Gesendet von iPhone mit Tapatalk

Kopier doch einfach das Beispielscript aus der Doku und probier es aus.
Wenn die Post Daten nicht in $_POST stehen, ist es ja wohl ein Bug.
Michael

ich prüfe das gerade … wäre ja top , spart zwei Bewegungsmelder :slight_smile:

da kommt bei WebHook RAW : „Alarm“ raus . der Rest ist murx. Aber das könnte/sollte reichen .
ich Prüfe weiter, bis gleich .

Kannst du mir nen Tip geben wie ich rausfinde ob im RAW Ruhig oder Alarm steht ?

Ich müsste mir das doch in eine hilfsvariable speichern oder einen if bauen können , bekomme ich nicht hin :frowning:

Ohne die Ausgabe zu kennen schwer.
Ganz simpel wäre strpos um zu erkennen ob eine Zeichenkette enthalten ist.


If (strpos(file_get_contents("php://input"),"Alarm") !== false){
// ALARM
} else{
// Kein Alarm
}

Michael

Hallo ,

jetzt hab ich es , also im Blue Iris im Webhook :

http://ipsymcon:82/hook/blueirisEingang?Meldung=Alarm

und im Script vom IPS :

if ($_GET['Meldung']=="Alarm")

und schon hat man je Kamera einen weiteren Bewegungsmelder . Ich freu mich .

Danke für die Anregungen