Ereignisgesteuerte Skripte laufen sporadisch nicht

Ich habe mehrere Skripte, die durch ein zyklisches Ereignis aktiviert werden sollen. Das funktioniert soweit auch meistens. Durch die Skripte werden z.B. Shutter über OneWire gestartet und nach einer Zeit wieder gestoppt oder ein Relais geschlossen und nach einer Zeit wieder geöffnet. Die Skripte laufen nach dem Schema ab, dass ein Befehl ausgeführt werden soll, dann sleep(x) und dann ein weiterer Befehl.

Wie gesagt, es funktioniert meistens, aber eben nicht immer. Und das ist die Frage, warum es nicht immer zuverlässig funktioniert? Eigenartigerweise passt der Zeitstempel der Aktualisierung des zyklischen Ereignisses in der Console und der Zeitstempel des Skriptes wird dann gesetzt, wenn das Skript inkl. der Zeit von sleep(x) fertig ist.

Gruselig… Warum machst du das?
Sleep ist meisten die falsche Wahl und wird vermutlich dein Problem sein. Scripte dürfen maximal 30 Sekunden laufen.
Besser das hier nutzen und dort die OneWire Befehle für öffnen, stoppen und schließen eintragen.
Shutter Control — IP-Symcon :: Automatisierungssoftware
Michael

1 „Gefällt mir“

Als Anfänger programmiert man manchmal auch gruselig. :eek:
Den Rolladen werde ich auf das ShutterControl umstellen, danke für den Tipp.

Es ist aber auch ein Skript dabei, das nur ein Relais schließt, dann sleep(1) und dann wieder Relais öffnen. Auch das Skript wird sporadisch nicht aktiviert.

Ich habe jetzt auf Shutter Control umgestellt und stelle dort auch die sporadischen Aussetzer fest. Für mich sieht das so aus, als würden die Befehle nicht immer ausgeführt werden. Es handelt sich dabei um den Befehl ESERA_SetShutter und bei dem Relais um ESERA_SetSysOutput.

Laufen Dir die Threads voll?

Kenne das ESERA Modul nicht im Detail.
Bei Original IPS Instanzen wird ein Fehler im Log geworfen, wenn eine Ansteuerung fehlschlägt (Ausnahme sind Ansteuerungen ohne Rückkanal bzw Rückmeldung wie FS20).
Michael

Mir ist aufgefallen, dass mein Speicher auf meinem Raspberry voll war. Hab ihn entmüllt, jetzt habe ich auch die Probleme nicht mehr. Trotzdem habe ich natürlich auf Shutter Control umgestellt.

Obwohl ich auf Shutter Control umgestellt und den Speicher des RasPi bereinigt habe, gibt es immer noch Probleme mit den 1wire-Shuttern:
Der 1wire-Shutter von Esera wird mit Shutter Control angesteuert. Das Aktionsscript lautet:


<?

// Vorlage für Aktionsskript
switch($_IPS['VALUE']) {
 
    case 0:
    ESERA_SetShutter(43430,1,2);
 
    case 1: // Nur bei ~ShutterMoveStep
        // Hier der Befehl für Schritt-Öffnen
 
    case 2:
    ESERA_SetShutter(43430,1,3);
 
    case 3: // Nur bei ~ShutterMoveStep
        // Hier der Befehl für Schritt Schließen
 
    case 4:
    ESERA_SetShutter(43430,1,1);
}
 
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

?>

Es tritt das Phänomen auf, dass nicht jeder zeitgesteuerte Trigger (z.B. Sonnenaufgang) und auch das manuelle Schalten der Shutter Control in der Webconsole auch wirklich das Rollo fährt.
Im Debug vom 1wire-Controller ist mir jetzt aufgefallen, dass beim Abwärtsfahren nur 1 Befehl an den 1wire-Shutter gesendet wird (SET,OWD,SHT,4,1<CR><CR>). Für Stop werden 2 Befehle hintereinander gesendet (SET,OWD,SHT,4,3<CR><CR> und SET,OWD,SHT,4,1<CR><CR>) und beim Aufwärtsfahren sogar 3 Befehle hintereinander (SET,OWD,SHT,4,2<CR><CR> undSET,OWD,SHT,4,3<CR><CR> und SET,OWD,SHT,4,1<CR><CR>). Hierbei steht die letzte Ziffer für 1 abwärts, 2 aufwärts und 3 stop. Das kann ich mir nicht erklären.

Trotzdem löst das mein Problem mit dem sporadischen nicht-fahren des Rollos nicht, da ich im Debug Befehle gesehen habe und der 1wire-Shutter trotzdem nicht reagiert hat. Dazu bin ich aber mit Esera in Kontakt, dort läuft die Ursachensuche.

Fehlt da nicht ein break in jedem case?

Ich nehme an, dass du auch den Shutter Modul von Esera hast. Es gibt noch die Pro Version von diesen Shutter.
Ich habe im OG ohne Pro für Rollladen und dort gibt es keine Probleme, aber UG für Raffstore habe ich auch das Problem, dass manche zufällig nicht funktionieren.
Zur Info: Man muss am Shutter Modul umstellen, ob man Raffstore oder Rollladen betreiben will!
Da der Geschäftsführer von mir nicht weit weg ist und ich ihn kenne, war er auch schon paarmal bei mir. Wir haben auf Pro umgestellt und ich sollte auch eine gewisse Wartezeit im Script einfügen, da die Shutter Module auch mit einem Controller verbunden sind.
Am Ende hat nichts geholfen, habe immer noch das Problem.
Ich habe das Gefühl, dass die Signale für den Shutter Modul zu kurz sind, dass dieser checkt, oooo jetzt muss ich schalten.
Eventuell versuche ich den Befehl hintereinander zweimal ausführen lassen. Mal schauen, ist zwar nicht der Sinn der Sache, naja.

Ich habe auch die Shutter pro. Nach einigem Support durch Esera habe ich auf dem Controller jetzt eine Firmware V1.20_28f, damit reagieren die Shutter sehr zuverlässig. Es besteht jetzt nur noch das Problem, dass die Shutter manchmal während der Fahrt einfach anhalten, dann steht das Rollo halb offen/halb zu. Das habe ich durch eine Umgehungslösung gebaut, dass der Shutter nach der Fahrt einfach nochmal fahren soll.