Hallo,
sorry, ich muss für meine Frage etwas ausholen:
ich habe mir für IPS-v1 ein Vista-Sidebar-Widget gebaut. Dieses holt via Ajax regelmäßig aus dem IPS eine Geräteliste mit Stati und Schaltmöglichkeiten in HTML-Form. Das ganze erfüllt eine ähnliche Funktion wie der Quickswitch, nur über die Sidebar bequemer zu bedienen.
Natürlich soll sich die Geräteliste im Widget automatisch auf Grundlage der IPS-Konfiguration erzeugen.
Im alten IPS lag dazu ein Script, dass beim ersten Aufruf über die Instanzen iteriert (IPS_GetInstanceIDs) und über ‚GetModuleInstance‘ das Stück XML aus der settings.xml abholt. Das habe ich mit dem PHP-XML-Parser zerlegt, in PHP-Objekte für meine unterschiedlichen FS20-Geräte umgewandelt und in der HTTP-Session abgelegt. Zur Unterscheidung der Gerätetypen habe ich den MODULENAME ausgewertet („FS20TX“, „FHT“, …).
So weit - so hässlich
Jetzt versuche ich die IPS-V2-Migration, wo es den „GetModuleInstance“ nicht mehr gibt. Jetzt iteriere ich also über die ‚IPS_GetObjectList‘ und hole mir mit ‚IPS_GetObject‘ die Instanzen mit Typ 1=Instanz. (Wenn ich die Doku richtig verstehe, muss ich dann durch die IPS_GetChildren-Liste mit Objekt-Typ 2 und habe die Variable-IDs für die Weiterverarbeitung …)
Das ist schon wesentlich schöner
Die Schleife liefert also alle Instanzen, obwohl nur bestimmte Gerätekategorien im Widget erscheinen sollen.
Bislang war der MODULENAME statisch, jetzt kann ich bei Einrichung einer Instanz einen Namen vergeben. Gebe ich also statt dem Default ‚FHT80b‘ ‚Heizung‘ ein, kann ich im Script nicht mehr erkennen, was es für eine Gerätekategorie ist.
Wie kann ich also die Gerätegattung rausfinden, auch wenn der Name keiner Konvention entspricht ?
(Danke übrigens für das neue Bemerkungsfeld pro Instanz, in dem ich jetzt eine schöne Beschreibung abspeichern kann. Leider kann ich das Feld nur bei der Anlage der Instanz befüllen, im Änderungsmodus wurde das Feld dafür vergessen und sollte noch aufgenommen werden !!!)
Viele Grüße
mts75