Kann mit Fehlermeldung betr. ClientSocket nichts anfangen

Hallo,

für den Zugriff auf meinen Easymeter öffne und schließe ich einen Clientsocket alle 15 Sekunden um danach über eine Registervariable und Script die Werte auszulesen. Das klappt unter meiner produktiven WindowsVersion seit Monaten.

Auf dem Raspberry unter 4.0 geht es 1 -2 Minunten gut, dann bekomme ich die Meldung „Too many Scripts advanced. Dropping Execution“ in den Meldungen und dann geht nix mehr.

Anmerkung: Ich greife von meiner produktiven Maschine (Windows) als auch von der Testmaschine (Raspi) auf den mit der gleichen IP-Adresse verbundenen ClientSocket zu… kann es daran liegen?

Die WinInstallation läuft weiter ohne Fehler. Ich muss nach dieser Meldung den Raspi neu booten


<?

IPS_SetProperty(25688 /*[Client Socket]*/,"Open",true );
IPS_ApplyChanges(25688 /*[Client Socket]*/);

ips_sleep(500);

IPS_SetProperty (25688 /*[Client Socket]*/,"Open",false );
IPS_ApplyChanges (25688 /*[Client Socket]*/);

?>

Abend!

Ist dein „advanced“ ein Autokorrektur Problem und du hast vlt. die gleiche Fehlermeldung wie hier?
Absturz innerhalb von 10Minuten nach erstmaligem „Too many scripts at once…“

Wenn nicht, dann könnte der Ansatz aus dem anderen Thread dir aber vlt. trotzdem helfen?! Ein Versuch ist es Wert :slight_smile:

Grüße,
Chris

Die Fehlermeldung kommt, wenn zu viele Skripte gleichzeitig ausgeführt werden.

Linux ist etwas pingeliger als Windows wenn es zum Öffnen oder Schließen von Sockets kommt. Ich nehme an, dass da etwas nicht durchläuft und deine Skripte daher nie oder erst nach einem Timeout beendet werden.

Du könntest einmal in dein Skript ein paar Debug Ausgaben (IPS_LogMessage) packen um zu sehen ob das Problem beim Öffnen oder beim Schließen auftritt, und ob es bei jedem Aufruf nicht durchläuft oder manchmal geht.

Gruß,
gucky

Hallo,

das ist eigentlich das einzige Script was in der Raspberry Umgebung läuft, ich vermute auch, dass es mit dem Öffnen und Schließen zu tun hat. und er mit dem ständigen Wechsel Stress macht…

Wenn ich den Socket geöffnet lasse läuft das stundenlang… und aktualisiert die Variablen…

Ich versuche mal das mit den Debug Anweisungen… ich melde mich wieder…

Danke.

so sieht das Log aus…

am Ende schaukelt es sich wieder hoch dann geht nix mehr…

13:31:25 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:25 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 120.48
13:31:25 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2203
13:31:25 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.99
13:31:25 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2579.47
13:31:25 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:26 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:26 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 120.72
13:31:26 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2206.57
13:31:26 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.79
13:31:26 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2583.08
13:31:26 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:26 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:26 | 49352 | MESSAGE | Client Socket | Closing socket…
13:31:26 | 00000 | CUSTOM | 59898 | Nach false
13:31:26 | 59898 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:32 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:32 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:32 | 49352 | MESSAGE | Client Socket | Opening socket…
13:31:32 | 00000 | CUSTOM | 59898 | Nach true
13:31:32 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:32 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 121.06
13:31:32 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2210.6
13:31:32 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.32
13:31:32 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2586.98
13:31:32 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:33 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:33 | 49352 | MESSAGE | Client Socket | Closing socket…
13:31:33 | 00000 | CUSTOM | 59898 | Nach false
13:31:33 | 59898 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:39 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:39 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:39 | 49352 | MESSAGE | Client Socket | Opening socket…
13:31:39 | 00000 | CUSTOM | 59898 | Nach true
13:31:40 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:40 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 120.17
13:31:40 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2221.82
13:31:40 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.34
13:31:40 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2597.33
13:31:40 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:40 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:40 | 49352 | MESSAGE | Client Socket | Closing socket…
13:31:40 | 00000 | CUSTOM | 59898 | Nach false
13:31:40 | 59898 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:46 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:46 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:46 | 49352 | MESSAGE | Client Socket | Opening socket…
13:31:46 | 00000 | CUSTOM | 59898 | Nach true
13:31:46 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:46 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 121.07
13:31:46 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2221.44
13:31:46 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.55
13:31:46 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2598.06
13:31:46 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:47 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:47 | 49352 | MESSAGE | Client Socket | Closing socket…
13:31:47 | 00000 | CUSTOM | 59898 | Nach false
13:31:47 | 59898 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:53 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:31:53 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:53 | 49352 | MESSAGE | Client Socket | Opening socket…
13:31:53 | 00000 | CUSTOM | 59898 | Nach true
13:31:53 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:53 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 120.03
13:31:53 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2223.19
13:31:53 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 255.99
13:31:53 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2599.21
13:31:53 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:54 | 57326 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:31:54 | 30435 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 1] = 119.56
13:31:54 | 44132 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 2] = 2222.47
13:31:54 | 53502 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Phase 3] = 256.03
13:31:54 | 24478 | MESSAGE | VariableManager | [Scripte\Strom auslesen\Gesamt] = 2598.06
13:31:54 | 49352 | MESSAGE | Client Socket | Applied settings
13:31:54 | 49352 | MESSAGE | Client Socket | Closing socket…
13:31:54 | 57326 | DEBUG | ScriptEngine | Executed ScriptID: Scripte\Strom auslesen\Auslesescript ~ Sender: RegisterVariable
13:32:00 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:00 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:07 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:07 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:14 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:14 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:21 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:21 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:28 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:28 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:35 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:35 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:42 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:42 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:49 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:49 | 49352 | MESSAGE | Client Socket | Applied settings
13:32:56 | 59898 | DEBUG | ScriptEngine | Executing ScriptID: Scripte\Strom auslesen\Socket OpenClose ~ Sender: TimerEvent
13:32:56 | 49352 | MESSAGE | Client Socket | Applied settings
13:33:08 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:08 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:15 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:15 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:22 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:22 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:29 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…
13:33:29 | 00000 | ERROR | ScriptEngine | Too many scripts at once. Dropping execution…

Hallo,

mir fällt als erstes auf, dass dein Skript alle 7 Sekunden ausgeführt wird. Ist das so korrekt oder sollte es alle 15 Sekunden ausgeführt werden?

Ich kann mir vorstellen, dass Linux unglücklich ist wenn du ständig einen Socket öffnest und dann wieder schließt, versuch die Zeit mal testweise etwas hoch zu setzen.

Überprüfe auch mal unter den PHP-Informationen (Ansicht hinzufügen -> PHP-Informationen) ob sich dein Skript oder ein anderes Skript aufhängt.

Gruß,
gucky

Unglückliches Linux… das war gut…

Ja du hast Recht, ich hatte erst 15 Sekunden und hatte dann mit der Zeit experimentiert… Werde den Code mal einbauen und schauen was passiert.

Danke schon mal für die Hilfe !!

Gruß

Jürgen

Hallo juwo1811,

ich habe das gerade mal versucht nachzustellen und unser Z-Wave LAN Gateway Socket alle 3 Sekunden mit deinem Skript geöffnet und geschlossen. Der ist damit ziemlich glücklich und es hängt sich gar nichts auf.

Du benutzt den Socket ja zwischen dem öffnen und schließen. Eventuell wird noch etwas abgerufen während der Socket geschlossen wird und es entsteht aus irgendwelchen Gründen ein Deadlock. Du könntest testweise noch das IPS_Sleep etwas erhöhen (z.B. verdoppeln).

Gruß,
gucky

Hallo gucky,

ich werde es versuchen. Danke für den Tipp.

VG

Jürgen