Mir fällt seit einigen Tagen auf, dass in den Meldungen häufig die Fehlermeldung „Zu viele gleichzeitige Skripte. Verwerfe Ausführung…“ bekomme. Ich habe in den letzten Wochen eigentlich nur die üblichen Updates gemacht und den MQTT Server wegen neuer Shellies genutzt. Leider kann ich den Fehler nicht genauer eingrenzen, da ich ja auch nicht weiß welche Skripte da nicht ausgeführt werden.
Hat jemand eine Idee?
Es geht wohl eher nicht darum welche Skripte nicht ausgeführt werden sondern welche zu oft oder welche zu lange Laufzeiten haben (z.b. wegen der Verwendung von IPS_Sleep). Wenn Dein System tatsächlich so stark ausgelastet ist kannst Du bei den Spezialschaltern auch die Anzahl der gleichzeitig möglichen Threads erhöhen.
Kommt die Meldung durchgängig oder nur gelegentlich? Du kannst mal in die PHP Information schauen. Da werden alle Skripte aufgelistet. Eventuell stocken da manche Skripte oder du hast einfach einen hohen Durchsatz. In ersterem Falle müsste man sich die stockenden Skripte mal anschauen, in zweiterem kann man die verfügbaren Threads hochschrauben.
Ahhh. Hab’s gefunden.
Ein Skript das per Event gesteuert wurde hat die Fehler ausgelöst.
Ich wollte eigentlich ein Event haben das das Skript startet, wenn die Variable von true auf false wechselt. Per MQTT kommt alle par Sekunden ein neues false. Das führt wohl dazu, das das Skript zu häufig ausgeführt wird. Wie macht ihr das denn? Veränderungen abfragen.
Bist Du sicher, dass Du nicht auf eine Variablenaktualisierung triggerst? Ein „Wechsel“ von FALSE auf FALSE sollte bei einem Trigger auf einen bestimmten Wert eigentlich nicht auslösen.
Ich habe mir mal schnell eine Variable angelegt und die wird vom Skript immer 1 hochgezählt sobald das Event das Skript ausführt. Und siehe da, das Skript wird auch ausgeführt, obwohl das Event von false auf false gar nicht hätte ausgeführt werden dürfen. Ich hänge mal ein paar Screenshots an. Vielleicht findet ihr ja den Fehler. Es könnte auch am Shelly Modul liegen… Die Event Variable kommt über MQTT an.
Danke. Das habe ich bis jetzt wirklich noch nicht gewusst. Dann werde ich mal alle meine Ereignisse nochmal durchschauen. Hatte bisher nur Homematic Komponenten im Einsatz und vermutlich nur auf ein True getriggert.
Das Feld „nachfolgende Ereignisse ausführen“ habe ich oft gesehen und nie diese Funktion dahinter vermutet, weil ich den Wortlaut ganz anders gedeutet hatte. In der Doku steht’s natürlich.
Gar nicht so einfach das kurz und knapp und trotzdem verständlich zu beschreiben. Aber die bisherige Formulierung war aus meiner Sicht nie ideal und ich glaube die meisten hatten damit zu Beginn Schwierigkeiten, die Bedeutung zu verstehen.
Aber wie wäre es mit:
Bei (direkt) aufeinanderfolgender Bedingungserfüllung ausführen
oder dynamisch (in Abhängigkeit des gewählten Auslösers):
Bei (direkt) aufeinanderfolgender Grenzüber/-unterschreitung ausführen
Bei (direkt) aufeinanderfolgenden gleichen Werten ausführen
Ich hätte dort als Vorschlag ‚und nur bei Änderung auslösen‘, wobei dann der Haken genau andersrum gesetzt werden muss.
Aufeinanderfolgend ist ja wieder missverständlich, da auch nach x Stunden nochmal der gleiche Wert das Ereignis triggern kann.
Es geht ja darum, dass der Vergleich einmal nicht erfüllt sein muss, damit es wieder ausgelöst werden darf.
Vielleicht noch ‚mehrfache Auslösungen unterdrücken‘ ?
Michael
Das würde dann allerdings nur auf den festen Wert passen und nicht auf Ober-/Untergrenze. Denn dort kann sich der Wert ja in die gleiche Richtung ändern und man will dennoch keine Auslösung.
Diesen Haken habe ich auch gesehen, aber ganz anders interpretiert.
Um das Problem mit den gleichen mehrfach - Auslösern in den Griff zu bekommen, hab das ganze relativ umständlich per Skript gelöst.
Gut, dass ich den Beitrag zufällig gelesen hab [emoji106]