Clientsocket alle 3h neustarten

Guten Morgen,

in Bezug auf nachfolgenden Thread

möchte ich gerne den Clientsocket für die PV-Anlage regelhaft alle 3 Stunden neustarten, damit der Fehler „Slave_Device_Busy“ verschwindet und die Daten aktualisiert werden.
Hierbei müsste zwischen deaktivieren und aktivieren 3 Sekunden liegen, damit die Fehlermeldung verschwindet.

Könnte mir jemande den entsprechenden Code für ID 39367 zur Verfügung stellen? Per Chat-GPT bekomme ich irgendwie nur Grütze, welche mir nicht weiterhilft.

Danke!

Hi,
das könnten verschiedene Sachen sein.

Bei meinen Marantz, Denon und andere Sachen benutze ich:

@IPS_SetProperty(39367 , "Open", false);
@IPS_ApplyChanges(39367 );
IPS_Sleep(5000);
@IPS_SetProperty(39367 , "Open", true);
@IPS_ApplyChanges(39367 );

Um Device Monitor und andere Sachen zu schalten benutze ich:

@IPS_SetProperty(39367 , "Active", false);
@IPS_ApplyChanges(39367 );
IPS_Sleep(5000);
@IPS_SetProperty(39367 , "Active", true);
@IPS_ApplyChanges(39367 );

Ralf

1 „Gefällt mir“

vielen Dank für die Hilfe!!
Mit dem obigen Coding funktioniert es so wie ich es mir gedacht habe :slight_smile:
Jetzt noch ein zyklisches Ereignis und ich habe hoffentlich deutlich weniger Fehler von meiner PV-Anlage :wink:

Ich wollte sowas auch mal machen, hat bei mir aber be Dauerschleife erzeugt.

Du sagst ein zyklische Ereignis, d.h. du deaktivierst ja zyklisch und aktivierst ja zyklisch wieder, verstehe ich das richtig?

Wäre es nicht besser den socket zyklisch auf Fehler zu prüfen und dann bei Fehler dieses Skript auszuführen?

Ich lass die Schnittstelle mit dem obigen Skript alle 3h deaktivieren und dann nach 3 Sekunden wieder aktivieren.
So habe ich eigentlich keine Dauerschleife.

Das ganze ist zyklisch so eingestellt, dass es jeden Tag alle 3 Stunden ausgeführt wird.
Das Problem bei mir ist, dass der Socket keinen Fehler hat und nur die Meldung „SLAVE_DEVICE_BUSY“ ausgegeben wird.
Nach dem deaktivieren und aktivieren der Schnittstelle läuft es wieder fehlerfrei und bisher auch ohne irgendwelche anderen Fehler

Ok der socket ist quasi in Farbe grau, statt rot.

Aber irgendwie müsste es da eine Lösung geben.

Ich habe das Problem mit Modbus und mit dem Voip Sockets.

Wie gesagt, ich habs mal übers Event-Control versucht das oben genannte Skript zu starten, aber das erzeugte bei mir eine Dauerschleife.

Wäre cool wenn sich hier jemand meldet und sagt wie es übers Event Control, richtig gemacht wird…

Wenn du das Event Control nutzen willst, musst du im Script den aktuellen Zustand aus der dazugehörigen Systemvariable berücksichtigt.
Wenn nicht, dann ist klar das du eine Endlosschleife gebaut hast.
Die Variable $_IPS[‚STATUS‘] liefert den Wert vom Zustand der Instanz durch welchen das EventControl das Script gestartet hat.

Wobei du eigentlich, wenn die Instanz ClientSocket rot wird, du gar nix machen musst. Das muss IPS selbst reparieren.
Michael

1 „Gefällt mir“

Ich glaube ich habe den Status nicht auf „OK“ geprüft und somit rannte die Schleife so lange sie wollte.

Wobei du eigentlich, wenn die Instanz ClientSocket rot wird, du gar nix machen musst. Das muss IPS selbst reparieren

Da habe ich jetzt nachgeschaut und ich glaube du meinst das hier:

Hier habe ich oft Probleme wenn ich an meinen SPS, n Änderungen mache, das sich die nicht mehr verbinden, oder es eben lange dauert.
Jetzt mal mit 1 Minute getestet und es funktioniert.

Bei Voip muss ich mir noch was überlegen, weil die Voip Instanzen sind aus irgendwelchen Gründen in letzter Zeit immer wieder mal „grau“ geworden.

Da muss ich aber mit einem Script arbeiten, weil wenn ich per Console die Instanz deaktiviere dann soll die Instanz ja nicht durch das Skript wieder aktiviert werden.
Teste ich mal aus…