Hallo.
Erstmal ein dickes Lob für openHAB.
Ich betreibe aktuell recht viele Homematic Komponenten und sondiere gerade die Möglichkeiten die mir openHAB bietet wenn ich jegliche Logik die heute innerhalb der Homematic-Welt läuft konsequent in openHAB nachbilde.
Aktuell suche ich einen Script-Befehl der ein Äquivalent zu dem Homematic Befehl dom.GetObject("ObjectName") darstellt.
Hintergrund:
Meine Rollladen-Steuerung erlaubt es für jeden Raum Einstellungen vorzunehmen, ob dieser an der Automatik teilnimmt oder nicht.
Die Items sehen dann so aus:
In der Sitemap so:
Nun wollte ich ein Script erstellen das aufgerufen wird wenn zum Beispiel alle Rollläden herunterfahren sollen.
Also laufe ich per ForEach durch die Gruppe Rollladen_Modis und würde mir dann gerne aus dem Namen dieses Items das der Gruppe des Raums holen...
Ich habe im Quellcode gesehen das es eine ItemRegistry gibt. Kann man irgendwie aus einer Rule bzw. einem Script auf eine Instanz dieser Registry zugreifen?
Viele Grüsse
openHomie
Erstmal ein dickes Lob für openHAB.
Ich betreibe aktuell recht viele Homematic Komponenten und sondiere gerade die Möglichkeiten die mir openHAB bietet wenn ich jegliche Logik die heute innerhalb der Homematic-Welt läuft konsequent in openHAB nachbilde.
Aktuell suche ich einen Script-Befehl der ein Äquivalent zu dem Homematic Befehl dom.GetObject("ObjectName") darstellt.
Hintergrund:
Meine Rollladen-Steuerung erlaubt es für jeden Raum Einstellungen vorzunehmen, ob dieser an der Automatik teilnimmt oder nicht.
Die Items sehen dann so aus:
Code:
Number RollladenModus_EG_Wohnzimmer "RollladenModus Wohnzimmer" <rollershutter_mode> (Rollladen_Modis, EG_Wohnzimmer) Number RollladenModus_EG_Kueche "RollladenModus Küche" <rollershutter_mode> (Rollladen_Modis, EG_Kueche) etc...
Code:
Switch item=RollladenModus_EG_Wohnzimmer mappings=[0="AUS", 1="AN"] bzw. so: Switch item=RollladenModus_OG_Bad mappings=[0="AUS", 1="AN", 2="Nur Beschattung"]
Also laufe ich per ForEach durch die Gruppe Rollladen_Modis und würde mir dann gerne aus dem Namen dieses Items das der Gruppe des Raums holen...
Code:
Rollladen_Modis.members.forEach(currentBlind| { logInfo(currentBlind.name, "State = " + currentBlind.state) if (currentBlind.state == 1){ // den Prefix "RollladenModus_" abschneiden... var roomName = currentBlind.name.substring(currentBlind.name.indexOf("_") + 1) logInfo(roomName, " Wir dürfen ...") //Hier fehlt mir so etwas wie: var room = GetObject(roomName) } } )
Viele Grüsse
openHomie
Kommentar