Array im Objektbaum?

Gibt’s die Möglichkeit, mehrere Werte (in meinem Fall wären das sogar Konstanten) in Form eines Arrays im Objektbaum anzulegen? Das Anlegen mehrerer Variablen um diese dann mit einer Loop auszulesen ist zwar eine Lösung, aber sowohl beim Auslesen wie beim Angelegn ein wenig mühselig.

Danke
jwka

Warum nimmst Du keinen String und speicherst Deine Konstanten dort und holst Sie dir dann mittels explode ins array?

Grundsätzlich gute Idee, die ich in anderen Systemen auch so ähnlich realisiert habe - ich würde das im Objektbaum sogar am liebsten gleich in den Namen des Elements packen (Sichtbarkeit des Werts im Falle einer Konstanten)

Zwei Probleme aus meiner Erfahrung in anderen Systemen:

1.) Was ist die maximale Länge eines StringValues in IPS?

2.) Egal, welchen Delimiter ich mir überlege, (es sei denn, ich nehme das erste Zeichen als Delimiter) wird irgendwann als Element vorkommen.

Frage zusätzlich:
Wie lang können Bezeichnungen im Objektbaum sein?

jwka

Ich würde gerne nochmals nerven, und die Limits des IPS besser kennen lernen [hallo Paresy/steiner, kannst Du/Ihr bitte mal ein paar Hinweise geben … gerne auch Kommentare wie „da geht mehr, aber Laufzeit steigt exponentiell“).

  • Maximale Länge eines Objektnamens

  • können maximal Lange Objekte noch verlinkt/„vereventet“ werden (Name dort ist ja Link:/Ereignis… plus Name des Objekts)

  • Maximale Länge einer Variablen mit Textinhalt

  • maximale Anzahl Events im IPS „as such“

  • maximale Anzahl Events pro Script

  • Objekte / Instanzen je Kategorie / Objektbaum-Ast

Danke
jwka

Das Maximum hast du erreicht, wenn dein System es nicht mehr verarbeiten kann. Wir limitieren nichts. Wenn du zahlen brauchst, teste es aus.

Das einzige was du beachten solltest, dass du in Variablen nur lesbaren Text halten solltest. Binärdaten machen dir die Settings.xml kaputt.

paresy

PS: Und wie immer: Ich weiß nicht wofür du das alles wissen brauchst, aber zu guten Zwecken kann es nicht sein.

@Paresy:

Also ich führe erstmal - nicht wissentlich - etwas schlimmes im Schilde, frage mich gerade, was Du in dieser Hinsicht wohl vermuten tust??? (Zitat: „aber zu guten Zwecken kann es nicht sein.“)

Ich weiss nicht , wie lange Du im IT Umfeld tätig bist, aber meine Erfahrung in fast drei Dekaden war leider bisher immer, dass JEDES IT-System (nicht selten unerwartet blöde) Begrenzungen hat.

Und das Schlimmste ist (wenn man beabsichtigt, ein System sehr ernsthaft einzusetzen), diese nicht zukennen, weil man dann u.U. Designs macht, die sich - schlimmstenfalls erst sehr spät - als nicht tragbar herausstellen. Dann war viel Arbeit für die Füß.

Und das versuche ich zu vermeiden.

Ich beabsichtige (immer noch), IPS nicht nur privat, sondern auch in Projekten für Kunden einzusetzen. Mein privates Setup ist da nur die Testspielwiese.

Okey. Ich versuche mal meine Antwort etwas auszuweiten.

Ein Limit gibt es immer. Klar. Mein Problem ist einfach nur, dass ich sehe, dass du endlos Fragen stellst, die mir für ein Projekt in IP-Symcon noch nie jemand gestellt hat - geschweige denn ich daran gedacht habe, dass ich sie mir stellen müsste. Das merkst du auch an den zögerlichen Antworten seitens der Forum-User.

Du suchst mit deinen Fragen das Loch im Ganzen. Und teilweise verstehe ich auch das Bedürfnis deinerseits, dass du auf Nummer sicher gehen willst.

Nur bin ich mir so ziemlich sicher, dass es dich im Endeffekt klar erwischen wird, wenn du zufällig eine Kleinigkeit vergessen hast zu Fragen, oder meine Antwort eine Vorgehensweise deinerseits nicht beachtet hat und diese in meiner Antwort nicht berücksichtigt wurde.

Diese „Angst“ Meinerseits halte ich auch für Begründet, da jeder neue Post von dir, mir mehr Sorgen macht, was du überhaupt alles mit IP-Symcon machen willst. Mir scheint, als wolltest du den Baukasten für eine Raketensimulation haben wollen, um naher doch nur den Partykracher damit zu simulieren.

Ich habe schon so einige neue System benutzen müssen. Und das einzige was es wirklich gebracht hat war - Einfach mal Anfangen. Das erste Projekt das damit machen. Hinterher weiß man, was vielleicht nicht ganz so 100%ig geklappt hat. Das kann man dann hinterher besser machen. Du hast aber bestimmt schon Stunden deiner und meiner Zeit verbraucht - von denen ich mir leider sehr unsicher bin, ob Sie überhaupt nützlich sind. Deswegen zögere ich auch weitere Antworten zu geben. Es mag patzig von mir klingen - Du musst aber auch meinen Standpunkt verstehen, dass ich meine Zeit auch anderweitig nutzen kann und will, als dir die Laufzeitkomplexizität jeder einzelnen Funktion von IP-Symcon zu erklären.

Entsprechend werde ich persönlich nur noch Antworten, wenn ich es für Sinnvoll erachte, was hier übrigens der Fall sein wird: http://www.ip-symcon.de/forum/f52/backup-per-script-event-8299/index2.html

Wir versuchen IP-Symcon so flexibel wie Möglich zu gestalten. Das Bottleneck über das du dir eigentlich nur Gedanken machen musst, ist, schafft meine CPU die ganzen Events/Variablenänderungen über SOAP an meine Konsole zu schicken. Es ist alles eine Frage der CPU Power die du IP-Symcon bietest.

-Denk daran, dass alles in XML gespeichert wird. = Wenn du XML inkompatible Zeichen verwendet, kann es passieren, dass es IP-Symcon lahmlegt.
-Denk daran, dass die XML immer größer wird, was beim Speichern und Laden viel Zeit kostet. Da du zwischendurch speichern willst, wird es besonders teuer, wenn du in String VIEL Daten speicherst.
-Je mehr Nodes dein Baum hat, desto Länger dauern alle Funktionen die auf dem Baum operieren. Da gibt es keine Magie. Das sind ganz normale Bäume auf deren Childs mit O(n) zugegriffen wird.
-Auf alle IDs kannst du mit O(1) zugreifen. Nutze das. Alles andere ist langsamer.

Wir haben User, die tausend Instanzen, Variablen und Skripte haben. Da werden deine 100 ja wohl, fast egal was du als erfahrender Programmierer programmierst, das System nicht einfach tot bekommen.

Falls ja - Wir sind hier. Wir sehen uns das Problem an. Und ich wette, dass wir eine gute Lösung dafür finden können und IP-Symcon auch noch irgendwo optimieren können für noch größere Anforderungen. Mein Gefühl sagt mir aber, dass es dein Projekt noch lange nicht an die Grenzen bringen wird.

paresy

PS: Dieser Post hat mich jetzt ungefähr 30min gekostet, die ich lieber für das Fixen von wirklich vorhandenen Bugs im Archiv Modul genutzt hätte.

Hallo Paresy,

erstmal danke für das ausführliche Post. Ich weiss durchaus zu schätzen, wenn das jemand macht. Sei sicher, dass ich - wenn ich weiter drin bin - auch helfen werde, anderen Benutzern zu helfen. Im FS20 Hardware-Bereich mache ich das ja schon - auch in anderen Foren.

Hier nochmal eine Begründung, warum ich so tief stochere: Ich bin in Deutschland im Bereich der Domotik tätig - kommend von der Musikverteilung („Multiroom“). Sowohl in BRD als auch hier in Spanien will ich den Bereich stark ausbauen und u.a. auch Leute (Elektriker, Programmierer) einstellen.

IPS screene ich gerade unter diesem Blickwinkel als das universelle Backend, über das ich alles andere Steuern will. Ich denke da (Steiner weiss das) auch darüber nach, ein universelles Frontend zu entwickeln bzw. entwickeln zu lassen (oder zu übernehmen, wenn ich über etwas entsprechendes stolpere), das dann auf Win, Linux und auch Handheld Devices laufen soll.

Sind alle Sachen fertig, will ich das alles dann professionell vertreiben (lassen), das geht hin bis zur Kapitalisierung via Chancenkapital. Ich habe entsprechenden Background, habe schliesslich eine Softwarefirma vom 10 Mann Laden auf einen internationalen Konzern mit 150 Leuten inclusive Tochtergesellschaften im Ausland und IPO gebracht (deshalb muss ich auch soviel „wieder“ lernen, war fast 10 Jahre als GF/Vorstand mehr für Verträge und Bilanzen zuständig als für die Programmierung und habe daher doch einiges verlernt).

Ja, das mag vielleicht ein bischen über das raus gehen, was andere bisher gemacht haben.

Vielleicht tröstet Dich das ein bischen: Ich investiere sehr viele Stunden und Tage, ich bin sicher, allein dieses Jahr noch viele Wochen im IPS, um da ein besseres Gefühl zu bekommen.

Mein Haus hier ist das Abfallprodukt bei der Suche nach einem vermarktungsfähigen und tragfähigen Produkt-Set.

Ich hoffe, dass das für Dein Verständnis hilft.
jwka