Hallo liebe IPS-Gemeinde,
sicherlich haben einige von Euch die Umstellung auf die neue Version bereits vollzogen.
Ich wundere mich nur, dass es bei (fast) allen so reibungslos abgegangen ist. :eek:
Mein größtes Problem ist der Wegfall der namensgebundenen Variablenbehandlung. :mad: In fast allen Scripten habe ich generische Routinen, welche über die aufrufende Variable/Instanz eine ganze Reihe von Variablen behandeln, ohne jede einzelne bekannt zu machen.
Wenn ich die Umstellung durchführen will, muss ich die gesamte Konzeption, Aufteilung und Systematik in IPS ändern. Rund 70% aller Scripte bearbeiten Variablen über das Zerlegen und Zusammensetzen der Namen. (optimierter Code)
Ich habe als Alternative zu Rainers „Generalsuche“ quick & dirty eine rekursive (in der Tiefe begrenzte) Funktion zur Namenssuche als Ersatz für IPS_GetVariableID() geschrieben. Allerdings bedingt dies sinnvollerweise, dass die gesuchte Variable unterhalb des aufrufenden Scriptes zu finden ist.
Hier kommt das nächste Problem:
Die Instanzen sind nach räumlicher Aufteilung (Wohnungen/Arbeitsbereiche/Etagen usw.) angeordnet. Die Scripte liegen in „Aufgabenbereichen“ wie Beleuchtung, Heizung… da hierbei ein Script die Instanzen und Vars aus den verschiedenen räumlichen Kategorien bearbeitet. z. B. ein kleines Script für alle Heizungsregler.
Ich kann keinen konzeptionellen Ersatz für diese Möglichkeit erkennen, optimierten Code zu schreiben. Oder soll ich jetzt jede Variable mit jeder ID einzeln handhaben? Dazu müsste ich ca. 70% aller Scripte neu schrieben und wurde den Code extrem aufblähen. Außerdem müsste eine einzelne Änderung mehrfach ausgeführt werden. Dabei habe ich mir über die restlichen Änderungen noch keine Gedanken gemacht.
Auf Deutsch: diese Änderungen zerstören aus meiner Sicht die Möglichkeit, effizienten, zusammengefassten Code zu schreiben.
Wenn jemand ähnliche Probleme hat und ich denke, wer schon länger dabei ist hat sie ganz sicher, dann interesiert mich Eure Vorgehensweise.
Grüße
Fabian
PS: das Script im Anhang bearbeitet mehrere Variablen von 10 FHTs, hier würde sich der Aufwand potenziell vervielfachen…
Switch_Heizung.ips.zip (1.31 KB)