Doku der IPS_GetStatusVariableIdents ?

Kann mir jemand auf die Sprünge helfen, wo ich die Funktion IPS_GetStatusVariableIdents in der Online Doku finde?

Wenn ich auf die Befehlsreferenz gehe, sollte ich diese doch mit der Suchfunktion finden können?

Es gibt jede Menge „IPS_Get*“, aber die IPS_GetStatusVariableIdents finde ich leider nicht.

jwka

Ich suche zudem die Doku für:

IPS_GetInstancesByModuleID($guid)

–> http://www.ip-symcon.de/forum/f52/status-vs-statusvariable-8181/index2.html#post67683

Danke
jwka

Diese Funktion ist jetzt IPS_GetInstanceListByModuleID ( string $ModulID ).
Hier kannst Du Dir alle Instanz ID´s eines bestimmten Modultyps anzeigen lassen. z.B. alle Mediaplayerinstanzen.
Die Modultypen bekommmst Du mit IPS_GetModuleList () .

Es wäre zudem hilfreich wenn Du etwas genauer sagst was Du eigentlich machen willst. So können wir Dir besser helfen.

Hallo Ferengi-Master,

danke für die Antwort. Ist ein bischen umständlich, zu erklären, was ich erreichen will. Grundsätzlich bin ich gerade dabei, meinen Programmierstiel aus anderen Sprachen an IPS/PHP anzugleichen bzw. meine bisherigen Stile dort wiederzuverwenden (wenn möglich).

Im Moment geht es mir darum, wiederverwendbaren Code zu schreiben.

In einem (globalen) Array will ich Aliasse für Objekt-Ids von Instanzen halten. Über die Aliasse (Erste Lampe Essen Decke == EZ.0.01), die sich auch im Namen der Instanz finden kann ich dann leicht ein include pflegen, mit dem ich dann gesamten Rest (also z.B. das Setzen oder Lesen von Stati, Daten, Intensitäten etc.) von der Objekt-Id ableiten kann.

Dazu brauche ich aber eine Methode, mich am Objektbaum (zuverlässig) „runter“ zu hangeln, um auf die Properties zu kommen.

Bin da kürzlich ziemlich reingefallen, weil ich mit „IPS_GetObjectIDByName“ gearbeitet habe, sich die Namen der Object Properties (z.B. Intensity) aber von IPS Version zu Version geändert haben (IntensityVariable–> Intensity --> Intensität) und ich, weil ich die Instanzen über einen größeren Zeitraum angekegt habe, all diese unterschiedlichen Namen im Baum habe.

War das verständlich? Hmmm. Hab ja eingangs schon gesagt: schwer zu erklären, mein Problem …

Bin aber über jede Hilfe dankbar.
Grüße
jwka

Ok, ich denke ich verstehe was Du willst. Ein einheitliche Namenskonvention von der Instanz über das Objekt zur Variablen. Das macht jeder so auf seine Weise. Ich finde es sollte nicht zu kryptisch sein. Ortsangabe ist hier wohl am besten. Außerdem ist immer auf die Beziehung ID<=>Name zu achten. Habe auch ein include Script für alle meine wichtigen Instanzen.

Mein Hauptproblem ist momentan, dass ich mit V2 starte, aber viele Beispiele und vor allem die Suchfunktion dann Code aus V1 hochbringt, der in V2 teilweise einfach nicht mehr funzt.

Das ist für nen Anfänger teilweise sehr schwierig.

Die Doku ist m.E. einfach zu dünn und oft gibt die Suchfunktion (auf der IPSymcon Doku page) einfach keine (für den Anfänger) verwertbaren Hinweise oder Beispiele.

So sucht man sich teilweise einfach den Wurm, wenn einen nicht jemand sagt „heisst jetzt xyz“.

Grüße
jwka

Die Funktionsbeschreibung musst Du „sprechend“ lesen, wie bei vielen anderen Funktionen auch.
Ob eine Funktion existiert und welche Signatur sie hat erfährt man, indem man ihren Namen im Skripteditor eingibt und Strg+Space drückt.

IPS_GetStatusVariableIdents(InstanceID: Integer): Array
Liefert ein Array mit den Idents der Statusvariablen der durch die übergebenen Instanz-ID zu identifizierenden Instanz.

Für die Funktion IPS_GetInstanceListByModuleID($guid)

brauche ich die ID für die verschiedenen Module. Kann mir jemand sagen, wo ich diese ID’s finde und ob die

$guid = „{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}“;

in JEDEN FALL die ID für die FS20 Module ist oder ob das auch von Setup zu Setup variieren kann?

Danke
jwka

Eine frische Liste kannst du dir immer selber generieren:
IPS_GetModuleList - IP-Symcon :: Automatisierungssoftware

Die ID sind fest. Für immer.

paresy

GUIDs sind fest. Du kannst alle davon mit IPS_GetModuleList() bekommen, siehe Beispiel:

foreach(IPS_GetModuleList() as $guid)
{
  $module = IPS_GetModule($guid);
  echo $module['ModuleName']." = ".$guid."
";
}

Wenn Du Strg+Space im Skripteditor benutzt, brauchst Du in IPS nach der Einarbeitung und mit etwas Programmiererfahrung keine Dokumentation für die Funktionen mehr, da die alle sprechend benannt sind. Dann reicht die Eingabe von IPS_GetM oder ähnlichem gefolgt von der Tastenkombination und Du findest eigentlich alles, was Du suchst.

Die Modultypen bekommmst Du mit IPS_GetModuleList () .

Ich könnte behaupten man könnte die Beiträge auch lesen…:rolleyes:

@Paresy, @Horst,

danke, das hat mir jetzt sehr geholfen, im Wald die Bäume zu sehen.

Ich denke gerade über ein Tutorial nach, um die Neulinge „an der Hand zu nehmen“.

Mal sehen, vielleicht schaffe ich es, sowas zu schreiben, weil ich alles, was ich tue und wo ich in Fallen reindappe in einer Datenbank dokumentiere.

Dieser Thread könnte somit geschlossen werden.

@Ferengi-Master:

Ja, und ich habe es auch gelesen. Nur habe ich den Bogen von

„Modultypen“

zu

$ModulID

nicht genommen. Bin da halt noch zu arg Anfänger.

Danke
jwka