[HM]Bewegungsmelder (HM-SEC-MDIR) Bewegung erkannt/keine Bewegung

Hi!

Z. o. genannten Bewegungsmelder wird der Impuls für „Bewegung erkannt“ zuverlässig nach IPS weiter gereicht, das Abschalten (Standard nach ca. 5 Minuten), also „keine Bewegung“ wird jedoch nicht an IPS angezeigt, obwohl bei der CCU aktualisiert.

Kann das sein, dass das die CCU nicht weiterreicht?

Braucht man da wieder ein Script und eine zusätzliche Variable, um den Status zu aktualisieren, wie’s in IPS V1 mit den FS20-Bewegungsmelder war?

Das Verhalten unter IP-Symcon ist etwas anders als auf der CCU.
Du mußt das wie folgt behandeln:

  • Der PIRI entdeckt eine Bewegung und AKTUALISIERT die Variable MOTION
  • Wenn jetzt nach 5 Minuten wieder/erneut eine Bewegung erkannt wird, dann wird die Variable MOTION wieder aktualisiert
  • Wird KEINE Bewegung erkannt, dann wird sie NICHT aktualisiert. Der Wert TRUE bleibt jedoch IMMER dort stehen.
  • Lediglich am Event „Aktualisieren“ kann man erkennen, ob eine Bewegung erkannt wurde oder nicht.

Viele Grüße
Sascha

Beispielcode für den Eventtrigger des PIRI:


<?
require_once "MyIPSFunctions.inc.php";

// Time until the piri sends the next status-update
$PIRI_RESEND = 5*60;

if ( $IPS_SENDER == "Variable" )
{
	$obj = IPS_GetObject($IPS_VARIABLE);
	$parent_id = $obj['ParentID'];

	$praesenz_id = @IPS_GetObjectIDByName("PRAESENZ", $parent_id);
   $lm_id = @IPS_GetObjectIDByName("LAST_MOTION", $parent_id);

   SetValueBoolean($praesenz_id, true);
   SetValueInteger($lm_id, time());
   
   IPS_SetScriptTimer($IPS_SELF, 60);
}

$vars = IPS_GetVariableList();

$rerun = 0;
foreach ( $vars as $var )
{
	$obj = IPS_GetObject($var);

	if ( $obj['ObjectName'] == "LAST_MOTION" )
	{
	   $parent_id = $obj['ParentID'];
		$praesenz_id = @IPS_GetObjectIDByName("PRAESENZ", $parent_id);

		if ( GetValueBoolean($praesenz_id) == 1 )
		{
		   if ( time() > GetValueInteger($var) + $PIRI_RESEND )
		   {
		   	SetValue($praesenz_id, false);
			} else
			{
			   $rerun = 1;
			}
		}
	}
}

if ( $rerun == 0 )
   IPS_SetScriptTimer($IPS_SELF, 0);
?>

Hallo Sascha,

das meinte ich doch „mit einem Script und zusätzlichen Variable“…

Hätte nur sein können, dass ich etwas übersehen habe :slight_smile:

Kann man dort nicht einen externen Timer bei der Instanz emulieren ? (Flag setzen)
Bei den FS 20 PIRI geht das und der setzt dann den Status auf Inaktiv zurück.

Gruss
B71

Das hatte ich erhofft, von paresy zu erfahren und dachte, ich habe das irgendwie nur nicht „entdeckt“.
Der Timer, wie bei FS20, wird bei HM scheinbar nicht mit übertragen…

Vielleicht hat ja paresy doch noch eine Idee?!