Ist mir bewusst das die Teile nicht mit Rechenleistung gesegnet sind. Aber vor dem Update auf die 3.1 hatte ich das Problem nicht.
Bringt jetzt aber nichts jetzt zu weinen - der Fehler muß gefunden werden.
Ich habe deinen Rat beherzigt und alle Ereignisse die auf HM-RF-Device verzweigen auf inaktiv gesetzt und Stück für Stück wieder aktiviert.
Das nachfolgende Script getriggert auf die Motion Variable verursacht bisher als einziges momentan nachvollziehbar den Fehler.
<?
$HELL=GetValue (41995 /*[Service\Obergeschoss\Gang OG\HM-Sec-MDIR HEQ0158999 (Bewegungsmelder vorne)\Bewegungsmelder OG\BRIGHTNESS]*/ ); // Variable BRIGHTNESS Bewegungsmelder GANG OG
$MOTION=GetValue (24049 /*[Service\Obergeschoss\Gang OG\HM-Sec-MDIR HEQ0158999 (Bewegungsmelder vorne)\Bewegungsmelder OG\MOTION]*/); // Variable MOTION Bewegungsmelder GANG OG
$Arbeitszeit=GetValue (45109 /*[Service\Automatic\Beleuchtungszeiten\Aussenbeleuchtung\Neon-Röhren Parkplatz Beleuchtungszeiten]*/); // Variable Gleitzeit-Anwesenheit
If ( $HELL <= 32 AND $MOTION == True AND $Arbeitszeit == True)
{
HM_WriteValueFloat(35711 /*[Service\Obergeschoss\Gang OG\UV5 HM-LC-Sw1-FM HEQ0135021 (Licht Gang OG) \Licht Gang OG]*/ , "ON_TIME", 180); // 180 Sekunden Einschaltzeit
HM_WriteValueBoolean (35711 /*[Service\Obergeschoss\Gang OG\UV5 HM-LC-Sw1-FM HEQ0135021 (Licht Gang OG) \Licht Gang OG]*/ , "STATE", true); //Aktuator EIN
}
?>
In anderen Räumen funktioniert das gleiche Script (mit anderen Variablen) ohne Fehler.
was passiert, wenn du den Aktor isoliert aktivierst, also im Script nur einmal aufrufst ohne irgendwelche Triggerung:
HM_WriteValueFloat(35711 /[Service\Obergeschoss\Gang OG\UV5 HM-LC-Sw1-FM HEQ0135021 (Licht Gang OG) \Licht Gang OG]/ , „ON_TIME“, 180); // 180 Sekunden Einschaltzeit
HM_WriteValueBoolean (35711 /[Service\Obergeschoss\Gang OG\UV5 HM-LC-Sw1-FM HEQ0135021 (Licht Gang OG) \Licht Gang OG]/ , „STATE“, true); //Aktuator EIN
Eventuell stimmt hier die Triggerung (Update auf MOTION?) nicht und das Einschalten verursacht vielleicht ein erneutes Update der MOTION-> Endlos Schleife
Zähl doch mal die Anzahl der Aufrufe mit, vielleicht steckt da der Fehler (zu häufiges Triggern, dauernder Aufruf…)
Ich hab bei mir vor Aktivierung eines STATE immer noch ne Abfrage drin, ob der STATE auch wirklich false ist. Muss ja nicht mehrmals hintereinander einschalten, will ja Funk-Traffic reduzieren.
Sollte das Skript tatsächlich mehrfach getriggert werden könntest Du gleichzeitige Aufrufe durch diesund Aufrufe zu oft hintereinander damit(Stichwort LastExecute) verhindern.
Aber nach den ich 3 Tage nichts produktives gearbeitet habe und ich das System erstmal wieder zum laufen gebracht habe … mußte ich erstmal wieder produktiv arbeiten.
Zum Fehler
Die Variabe Motion triggerte das Skript wenn True.
Über die Quallität der HM-Bewegungsmelder müssen wir glaube ich nicht diskutieren. Fakt war oder ist das das Skript scheinbar mehrfach ausgeführt wurde und der Schalter dann nicht mehr in der Lage war den Befehl zu bestätigen.
Ich habe mir mal die alten Logfiles aus der Datensicherung angesehen.
Das Problem war scheinbar schon seit dem Update auf die Version 3.0 vorhanden. Aber scheinbar noch nicht so zeitkritisch. Erst ab der Version 3.1 trat dann der Supergau ein. Wie Kronos schon zu recht bemerkt hatte, sendete IPS permanent an den Aktuator. Den Fehler konnte ich eingrenzen, in dem ich alle Ereignisse auf inaktiv gesetzt hatte.
Was mich nur verwundert ist, wenn kein ON_Time gesendet wird sondern nur State true tritt der Fehler nicht auf.
Zum Glück funktioniert wieder alles.
Nochmals mein Dank an alle für die Anregungen und Hilfen.
Wenn das bevorzugt zu vollen Minuten auftritt dann solltest Du Timerevents eventuell etwas entzerren damt Sie nicht alle immer bei Null Sekunden gestartet werden.
will ja nicht nerven, aber in meinen Augen hast du das Problem noch nicht gelöst.
Warum und wieso wird das Script bei einer Einstellung (Motion == True) denn mehrfach getriggert? Wie lange bleibt Motion denn im Zustand true? (<1s???) Oder erfolgt das Triggern mehr als einmal, denn Motion ist ja bei der nächsten Testabfrage ja immer noch true?
Ich verstehe es nicht.