Grundsätzlich hat Peri das ja geschrieben:
Bei meinem ~5 Jahre alten Symcon haben sich im laufe der Zeit etliche Fehler / Defekte / Leichen eingeschlichen. So geht z.B. …
Und so ging es mir auch, allerdings nach fast 12 Jahren gewachsener Umgebung und einem teilweise durch „Anfängerfehler“ verhunzten Objektbaum. Auch Test-Scripte, Versuche und Dinge die ich nicht mehr nutze sammeln sich natürlich an.
Außerdem wächst man an seinen eigenen Scripten, soll heißen die ersten Scripte lassen eher den Eindruck entstehen „Was habe ich da verbrochen?“ :eek:
Ich habe eine Zeit lang (leider fast ein Jahr) zwei Systeme parallel betrieben, das Alte nahezu nicht mehr geändert und alles auf dem Neuen weiterentwickelt.
D.h. ich habe oben im Objektbau angefangen und in kleinen Schritten Struktur für Struktur (Raum) manuell kopiert bzw. neu angelegt, IDs angepasst Scripte optimiert und konsolidiert bzw. wo es besser war in einzelne Scripte aufgeteilt. Z.B. habe ich heute üblicherweise alle IDs und sonstigen Einstellmöglichkeiten in Variablen am Anfang des Scripts. Damit muss ich beim nächsten Mal nur an einer Stelle ändern.
Manche Dinge sind heute über Module möglich, somit habe ich auch dadurch einzelne Scripte und Funktionen verändert bzw. abgelöst.
Problematisch ist das nur, wenn IOs oder bestimmte „Endgeräte“ nur einmal möglich sind, also z.B. IPS-868 oder Enocean, dann habe ich alles, was dazugehört umgestellt und dann im neuen Symcon den IO zugeordnet.
Für mich war es immer wichtig das Meldungsfenster „nebenbei“ laufen zu lassen, um zu sehen ob ich alle erwischt habe oder ob doch noch irgendwo Fehler auftauchen, z.B. nicht getauschte IDs oder ähnliches.
Ich habe auch noch konsequenter als in den ersten Jahren meine „GlobalDefinesAndFunctions“ genutzt, die in nahezu jedes Script importiert wird. Dadurch habe ich Konstanten, z.B.
define ('SqueezeServer', 12454 /*[Logitech Media Server]*/); // Logitech Media Server
$AudioURLs = Array(...
oder oft verwendete Funktionen an einer Stelle
function SetStatusMeldungen($MessageDB, $Sender, $Meldung) {
...
und muss nicht jedesmal suchen, wo ich mal was eingebaut hatte. Das bleibt eine Wunschvorstellung :D.
Also mit dem Parallelbetrieb, etwas Zeit und nicht zu viel auf einmal ist der Umzug gut lösbar .