"Enable" für Instanzen / Objekte

Ich denke, dass es recht hilfreich - sowohl zum Testen als auch im Falle defekter Objekte - sein könnte, wenn man eine Instanz schlicht „disablen“ könnte.

Beispiel:
Ich habe gerade einen defekten Rolladen. Dieser Aktor wird aber von einer ganzen Reihe von Scripten bedient.

Könnte ich diesen eine Aktor - manuell oder per Script - „disablen“, so wären alle Scripte normal funktionsfähig, aber „der Aktor löst einfach nicht aus“.

Nach Reparatur wird die Instanz wieder auf „enabled“ gesetzt und fertig.

Gleiches gilt natürlich für Tests von Scripten. Man könnte alles testen (ggf. sogar inclusive Statusänderungen in IPS) ohne den ganzenHaushalt zu stören.

Man könnte es auch ggf. „Simulation Mode“ nennen …

jwka

… finde ich gut … ich bin auch schon über das Problem gestolpert.

Würde ich auch sehr begrüßen.

gute Idee, Problem bei defektem Rolladen hatte ich auch schon. Auch zum Testen wäre das wirklich klasse.

Hab mir als Workaround damals geholfen, indem ich die Adresse der Instanz auf eine „Mondadresse“ gesetzt habe, also einen (bei mir) nicht existierenden Wert. Könnte mir vorstellen, dass das die Basis einer recht einfach und schnell umzusetzenden Lösung sein könnte, ohne das „alle die Instanzen verwendenden Programme“ (also intern, nicht nur Scripts) auf eine Auswertung des Enabled-Status umgestellt werden müssen. Vielleicht per „disabled“ die ID per *(-1)-Operation einfach auf negativ switchen? Der negativer „ID-Adressraum“ ist ja noch frei?

Verbliebe als offene Definition das künftige Verhalten der Befehle, die z.B. vorhandene Instanzen auflisten. Sollen die nun welche im „Disabled“-Status mit auflisten oder nicht? Um zB. genau diesen ggf. programmgesteuert aufheben zu können, muß das möglich sein. Bei reiner operativer Anwendung dagegen nicht.

In ähnlicher Problematik (ansprechen von Zustandsdaten-Objekte in CRM-Systemen) verwenden wir genau dafür optionale „force“-Parameter (= "zeig die Dinger auch an, wenn sie im disabled-, gelöscht- oder sonstwas -Status stehen), andere Status als „disabled“ per Bitmuster, Default = „alles normal aktiv“ = 0. Gespeichert wird das in einem extra Integer-Feld, dass an jedem Objekt extra vorhanden ist, übrigens ebenso wie weitere, z.B. zur Löschvormerkung oder als „in Anwendung frei verwendbares temporäres Statusfeld“, welches sich bei größeren Berechnungen ganz gut macht.

Ganz so einfach ist das also sicher nicht vom Aufwand der Umsetzung her, wenn man es sich genau durchdenkt. Lohnt sich aber sicher und wäre für die Verwendung wirklich toll! - Übrigens nicht nur für Instanzen, sondern eigentlich wenn schon, dann auch gleich für alle Objekte (Variablen, Events…).

Think big - act small, sollte da die Devise sein.

Im Moment gibt es ganz klar ein Issue bei Automatismen, die Instanzen ansprechen, deren Geräte gerade „kaputt gehen können“ - z.B. ein hängender Rolladen.

Und da wäre mit dem einfachen disablen schon sehr viel geholfen.

jwka