da meine Installation so langsam wächst, komme ich an den Punkt, dass ich auch mal alle Geräte mit gemeinsamem Merkmal ansprechen will.
Beispiele:
alle Fenster
alle Rollläden
alle Fenster und Rollläden im Süden
alle Lampen
alle Bewegungsmelder
alle Batterieinstanzen im Erdgeschoss
…
Was ich gesucht habe, ist eine Art Merkmalsverwaltung/Tags, die in den Eigenschaften an die jeweilige Instanz gehängt werden. Zugriff könnte dann über $Array=IPS_GetInstanceListByTag(„Fenster“, „Süden“) oder so erfolgen.
Was ich gefunden bzw. mir überlegt habe:
Kategorien anlegen. Damit sind die Instanzen dann aber nicht kreuzweise verknüpfbar (meine Bsp. 1-3)
Manuell Array anlegen. Irgendwie nicht das, was ich mir beim Thema Automatisierung vorstelle.
per Variable unterhalb der Instanz. Dies dürfte zügig den Variablenverbrauch in die Höhe treiben.
per Profil. Eigentlich schick, aber wieder nur eine Ebene und keine kreuzweise Verknüpfung abbildbar.
automatisiert eine SQLite füllen. Sieht für mich momentan nach dem brauchbarsten Weg aus. Allerdings drängt sich für mich hier die Frage auf, ob so etwas nicht auch im Standard Sinn machen würde.
Vielleicht habe ich ja auch einfach nur einen Knopf übersehen. Auf jeden Fall würde ich mich über weitere Denkanstöße sehr freuen.
Hallo Bruno, Danke für deinen Hinweis. Da muss ich wohl meine Liste von oben erweitern:
IPSComponent (aus IPSLibrary). Wenn ich den Doku-Thread richtig verstanden habe, ermöglicht dies in der Tat in erster Ebene die gerätenahe Gruppierung („Alle Lichtschalter“). Was ich aber noch nicht finden konnte sind künstliche Gruppen („Batteriegeräte“) sowie die Erweiterung um ein weiteres Merkmal ("… im Süden").
Gibt was für Beschattung (IPSShadowing) Rolläden, usw. mit dem Merkmal Süden. Was Du mit den Fenstern im Süden machen willst verstehe ich nicht. Für Homematic-Komponenten gibt es ein Skript und ein paar alte Skripte für Batteriegeräte bzw. Warnmeldungen davon (nicht Library).
IPSComponent ist eine reine Abstraktions Ebene für den Hardware Layer. Er ermöglicht den IPSLibrary Modulen einen einheitlichen Zugriff auf die Hardware Instanzen der diversern Hersteller. Ist also eher keine Gruppierung - für das gibts IPSLight, IPSShadowing usw…
ich würde dir dafür eine einfache Sache vorschlagen, die aber sicherlich nicht besonders elegant ist.
Es ähnelt der Variante „Variable“, ist jedoch für jedes Objekt bereits vorhanden.
Schau mal unter „IPS_SetInfo“ in der Doku nach. Hier kannst Du alle Eigenschaften hinterlegen, die Du brauchst und dann einfach eine Schleife über alle Objekte mit „IPS_GetObject“ und „ObejctInfo“ und einem Stringvergleich sicherlich alle betreffenden Objekte bzw. deren IDs in ein Array packen.
Aber automatisiert ist das auch nicht, da das Taggen je doch irgendwie manuell gemacht werden muss. Woher sonst weiß IPS die Himmelsrichtung oder ob es sich um eine Schrank-, Raum-, Haus bzw. Wohnungstür handelt. Da ist es sicher einfacher ein Include-Script zu nehmen, wo du noch schön den ObjectIDs Konstantennamen zuordnen kannst.
Diese Info einfach in ein Script welches Du immer in dein Script inkludierst. So kannst du einfach = leserlich über die Klarnamen auf die IDs bzw. ein Array drauf zugreifen.