IO Instanzen öffnen/schließen

Hi,
ich benutze öfter ein Konstrukt wie:

IPS_SetProperty(27306, „Open“, false);
IPS_ApplyChanges(27306);

Um eine IO-Instanz zu schließen damit Anzahl der Meldungen im Error-Log zu Minimieren. Führe ich jetzt

IPS_SetProperty(27306, „Open“, false);
IPS_ApplyChanges(27306);

erneut aus kommt „cannot apply changes“. Die Meldung ist einerseits überflüssig aber auch richtig und hilfreich um Scriptfehler zu finden. Schöner wären Meldungen wie
Instanz already closed aber auch analog beim Öffnen
Instanz already opened.

So ist die Meldung eindeutiger und auch beim Öffnen würde man auf Programmierfehler hingewiesen werden.

Ralf

Wo kommt denn diese Meldung? Eigentlich kannst du einen geschlossenen Socket so oft du willst weiter schließen.

EDIT: Grad ausprobiert. Geht hier super.

paresy

Hi,
„cannot apply changes“ konnte ich jetzt auch nicht reproduzieren. Ich bekam jetzt „no route to host“ bei der selben Situation. Muss ich mal im Auge behalten. Bei meinem Test ist das Timing natürlich nicht das selbe wie bei einer Kombination von Scripten.

Trotzdem wären genauere Meldungen statt nur true und false nicht schlecht und könnten bei Fehlersuche helfen.

Wenn man z.B. ein 2tes Mal „Open“, false aufruft könnte es einen Fehler in der Logik der Scripte geben wie z.B. 2 Scripte mit dem selben Trigger, was bei mir bis vor ein paar Tagen der Fall war.

Ralf

Welche Instanz betrifft es genau?
Das ist bestimmt ein IO von einem PHP Modul, oder?
Michael

Hi Michael,
ja von Modulen. Bei mir sind es Marantz, Denon und Logitech Harmony. Ich habe 5 Anlagen in denen diese Geräte vorhanden sind und 22-23 Stunden sind 80% davon per Schalter ausgeschaltet. Da IPS weiß welches System Strom hat warum nicht die Instanzen ruhig stellen um Rechenlast und Log-File zu entlasten?

Ralf

Dann solltest du deinen Wunsch und deine Fehlermeldungen in den entsprechenden Themen der Module platzieren.
Weil die Module erzeugen dann auch diese Meldungen. Symcon selber kann da nix für :slight_smile:
Michael

Hi Michael,
können Module auch was anderes als true oder false an das Script zurück liefern? Mir ging ja auch darum das man von z.B. IPS_ApplyChanges mehr als nur Boolean zurück bekommt um in eigenen Scripten besser auf unterschiedliche Fehler reagieren zu können.

Ralf

Theoretisch bestimmt. Aber ich glaube das nutzt keiner und gemäß Doku wäre zwar boolean Pflicht, aber selbst da nutzte ich das gar nicht.
Aber auch wenn das übernehmen selber funktioniert hat und true zurück gibt, heißt das nicht das die Instanz funktioniert.
Dafür gibt es den Instantstatus.
Den wiederum solltest du nicht direkt nach einen IPS_Applychanges abfragen, sondern nur über das EventControl an ein Script übergeben.
Michael