HM Sec MDIR

Hallo

da Ich jetzt mein Merten Connect Z wave Bewegungsmelder demontieren mußte (habe ihn nicht zum laufen gebracht).

Habe Ich mir zwei HM Sec MDIR gekauft und in Betrieb genommen ohne Probleme !! spricht natürlich für HM.

Hat jemand ein Script das bei Bewegung diverse Lampen eingeschaltet werden und nach ca. 5min wieder aus … oder eine Grundlage wie Ich es erstellen soll… (Neuling)

DANKE !!

Bitte schön:

<?
$timeupdate = IPS_GetVariable(57508 /*[3. Etage\Dachboden\Bewegungsmelder [HM]\ausgelöst]*/ );
$timeupdate = $timeupdate['VariableUpdated']; 				// Wann war Variablenupdate
$time = microtime(true); 											// aktueller Unix-Timestamp
$timer = 300;     													// Verzögerung in Sekunden


// Wenn Bewegungsmelder ausgelöst hat
         if ( ($time - $timeupdate) > $timer)              			// Wenn neu ausgelöst wird
         {
         SetValueBoolean(47601 /*[3. Etage\Dachboden\Bewegungsmelder [HM]\Aktivität]*/  , false);
         IPS_SetScriptTimer($IPS_SELF, 0);           // Script-Timer auf 0 setzen
         }
         else
      	{
      	SetValueBoolean(47601 /*[3. Etage\Dachboden\Bewegungsmelder [HM]\Aktivität]*/  , true);
      	IPS_SetScriptTimer($IPS_SELF, $timer+2);              // Script-Timer setzen
      	}
?>

47601 ist eine selbstanlegte Variable!

Hallo

Leider immer nicht geblickt ???

kannst du mir noch jeden Schritt erklären

DANKE DANKE

Hallo docrossi,

das klappt so nicht. Um ein HomeMatic Aktor zu schalten, brauchst Du den richtigen Befehl!

Die Dokumentation hilft da weiter.

Gruß

Du kannst die „Status-Variable“ der Instanz nicht direkt schreiben!

Du musst der Instanz befehlen:

HM_WriteValueBoolean(59458, "STATE",  true);
HM_WriteValueBoolean(59458, "STATE",  false);

P.S. Das Script musst du über die Variable (bei dir) mit ID 34953 auf „Aktualisierung“ triggern und wie Attain schon schrieb, wenn du eine HM-Instanz direkt befhelen willst, dann die richtigen Befehle benutzen. In meinem obigen Script wird nur eine Bool-Var geschrieben und nichts direkt geschalten.

Hallo

Habe jetzt alles geändert !!

Folgende Frage warum ändert sich nicht der Wert Bewegung ?? (grün / rot)

Jetzt möchte Ich das Script ertsellen könnte jemand bei der Erstellung helfen.

DANKE !!

Die Statusvariablen des HM-Bewegungsmelders bleiben einmal true immer true, dehalb kannst du nur auf Aktalisierung (von ID 11461 und/oder ID 34953) triggern!

   <?
$timeupdate = IPS_GetVariable(11461);
$timeupdate = $timeupdate['VariableUpdated'];                 // Wann war Variablenupdate
$time = microtime(true);                                             // aktueller Unix-Timestamp
$timer = 300;                                                         // Verzögerung in Sekunden


// Wenn Bewegungsmelder ausgelöst hat
         if ( ($time - $timeupdate) > $timer)                          // Wenn neu ausgelöst wird
         {
         HM_WriteValueBoolean(59458, "STATE",  false);
         IPS_SetScriptTimer($IPS_SELF, 0);           // Script-Timer auf 0 setzen
         }
         else
          {
          HM_WriteValueBoolean(59458, "STATE",  true);
          IPS_SetScriptTimer($IPS_SELF, $timer+2);              // Script-Timer setzen
          }
?>

Hallo

jetzt schaltet sich das Gerät ein … aber nicht aus welcher Wert ist die Zeitangabe das er wieder ausschaltet.

Ist es möglich die HM + Zwave Geräte zusammen zu benützen wenn ja wie??

Gruß

Ich habs gerade nochmal geprüft. Schaltet nach 5 Minuten (300 Sekunden) und 2 Sekunden wieder aus. Bewegst du dich dabei etwa noch vor dem Melder?

welcher Wert ist die Zeitangabe das er wieder ausschaltet.

$timeupdate = Wann wurde die triggernde Variable zuletzt aktualisiert
$time = aktuelle Zeit
$timer = die Zeit, nach der das Script neu gestartet wird… „IPS_SetScriptTimer($IPS_SELF,…“

Sollte diese Bedingung „($time - $timeupdate) > $timer)“ nicht (else) erfüllt sein, dann wird der Aktor geschalten und das Script nach $timer+2 Sekunden neu gestartet…
Wird zwischenzeitlich keine Bewegung mehr registriert, dann wir der Aktor nach wiederholtem Durchlauf des Scripts ausgeschalten un der Scripttimer auf 0 gesetzt „IPS_SetScriptTimer($IPS_SELF,0)“.
Sollte aber zwischenzeitlich wieder eine Bewegung registriert werden, dann wird das Script durch die MOTION-Variable neu getriggert und der Scripttimer wieder gesetzt.

Hallo

Das Skript startet nicht automatisch , wenn Ich skript ausführen mache funktioniert es … und es schaltet ab.

Wenn Ich wieder die Bewegung auslöse wird Sie auch angezeigt , aber der Befehl zum Skript wird nicht ausgelöst.

:confused:

MFG

Wie kommt denn das Ereignis mit der ID 12888 zur Variable.
Das muss zum Script (ID 31359). Zieh das mal aufs Script, dann sollte es funktionieren.

Ist das richtig so ??

Nein.

So sollte es aussehen:

Hi

jetzt habe Ich es geschafft !! muß nur noch den Bewegungsmelder einstellen …

Gibt es auch die Möglicht auch Z-Wave mit dem Melder zu verbinden ??

Gruß und Danke für die Hilfe

Nicht direkt, aber mit IPS und Scripten :wink: Ich habe aber keine Z-Wave-Hardware… da musst du weiter fragen

Die zwei Zusatzsekunden, die ich im Script eingebaut habe, dienen übrigens nur dazu, dass die Trigger Variablenaktualisierung und Scripttimer nicht in kurzer Folge das Script triggern. Kannst du auch ohne probieren.

Hallo

Wie kann Ich den Script beibringen das die Bewgungsmelder nur zwischen 20.00 bis 5.00 Uhr aktiv sind??

$zeit = date("H");

if (($zeit >= 20) or ($zeit <= 4))
{
dein skript
}

Dann wirds nur ausgeführt von 20:00 - 4:59 Uhr.

Hallo

Leider funktioniert es nicht:

$zeit = date("H");

if (($zeit >= 20) or ($zeit <= 4))
{
$timeupdate = IPS_GetVariable(34953 /*[Bewegungsmelder 2\MOTION]*/);
$timeupdate = $timeupdate['VariableUpdated'];                 // Wann war Variablenupdate
$time = microtime(true);                                             // aktueller Unix-Timestamp
$timer = 300;                                                         // Verzögerung in Sekunden


// Wenn Bewegungsmelder ausgelöst hat
         if ( ($time - $timeupdate) > $timer)                          // Wenn neu ausgelöst wird
         {
         ZW_SwitchMode(34274 /*[Aussenbereich\Beleuchtung Terrasse LED Esszimmer]*/, false);
         ZW_SwitchMode(22234 /*[Aussenbereich\Beleuchtung Terrasse LED Küche]*/, false);
         ZW_SwitchMode(43255 /*[Aussenbereich\Beleuchtung Terrasse LED Wohnzimmer]*/, false);
         IPS_SetScriptTimer($IPS_SELF, 0);           // Script-Timer auf 0 setzen
         }
         else
          {
          ZW_SwitchMode(34274 /*[Aussenbereich\Beleuchtung Terrasse LED Esszimmer]*/, true);
          ZW_SwitchMode(22234 /*[Aussenbereich\Beleuchtung Terrasse LED Küche]*/, true);
          ZW_SwitchMode(43255 /*[Aussenbereich\Beleuchtung Terrasse LED Wohnzimmer]*/, true);
          IPS_SetScriptTimer($IPS_SELF, $timer+2);              // Script-Timer setzen

Das ist sehr lapidar. :smiley:

Was funktioniert denn nicht.

Auf jeden Fall fehlt eine } ganz am Schluß oder ist die bei C&P verlorengegangen.

$zeit = date("H");

if (($zeit >= 20) or ($zeit <= 4))
{
$timeupdate = IPS_GetVariable(34953 /*[Bewegungsmelder 2\MOTION]*/);
$timeupdate = $timeupdate['VariableUpdated'];                 // Wann war Variablenupdate
$time = microtime(true);                                             // aktueller Unix-Timestamp
$timer = 300;                                                         // Verzögerung in Sekunden


// Wenn Bewegungsmelder ausgelöst hat
         if ( ($time - $timeupdate) > $timer)                          // Wenn neu ausgelöst wird
         {
         ZW_SwitchMode(34274 /*[Aussenbereich\Beleuchtung Terrasse LED Esszimmer]*/, false);
         ZW_SwitchMode(22234 /*[Aussenbereich\Beleuchtung Terrasse LED Küche]*/, false);
         ZW_SwitchMode(43255 /*[Aussenbereich\Beleuchtung Terrasse LED Wohnzimmer]*/, false);
         IPS_SetScriptTimer($IPS_SELF, 0);           // Script-Timer auf 0 setzen
         }
         else
          {
          ZW_SwitchMode(34274 /*[Aussenbereich\Beleuchtung Terrasse LED Esszimmer]*/, true);
          ZW_SwitchMode(22234 /*[Aussenbereich\Beleuchtung Terrasse LED Küche]*/, true);
          ZW_SwitchMode(43255 /*[Aussenbereich\Beleuchtung Terrasse LED Wohnzimmer]*/, true);
          IPS_SetScriptTimer($IPS_SELF, $timer+2);              // Script-Timer setzen
          }

Die war dabei … das zeitfenster hat keine Funktion lösche Ich den Befehel dann funkt es.