# SageGlass (BACnet) > Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26 > Index: https://www.symcon.de/de/llms.txt Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sageglass-bacnet/ _Benötigt Symcon >= 6.0_ Dieses Modul erlaubt die Einbindung SageGlass SIM II Controller über BACnet/IP. ### Funktionsumfang - Integriert die Ansteuerung von SageGlass Zonen und zeigt den aktuellen Zustand inkl. der übermittelten Lux-Werte an. ### Voraussetzungen - IP-Symcon Enterprise ab Version 6.0 mit BACnet Erweiterung ### Software-Installation - Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'SageGlass'-Modul installieren. ### Einrichten in IP-Symcon - Es wird empfohlen alle BACnet Objekte auf dem SageGlass SIM II Controller automatisch erstellen zu lassen, wodurch die einzelnen Datenpunkte in IP-Symcon verfügbar gemacht werden. Im zweiten Schritt kann nachfolgendes Skript verwendet werden, um die SageGlass Instanzen für die Zonen zu erstellen, welche die Informationen schöner aufbereiten. Es ist auch möglich die Verknüpfungen manuell durchzuführen, indem alle Eigenschaften auf die korrekten BACnet Objekte verknüpft werden. Die Namen der Eigenschaften entsprechen dabei den Beschreibungen der BACnet Objekte und sollten auf die "Preset Value" Variable verknüpft werden. ```php zone information // e.g. Sensor 1 (Vertical) is used for Zone 10, Zone 20 and Zone 25 $sensorVertical = [ 1 => [10, 20, 25] ]; $sensorHorizontal = []; $zones = 250; for ($i = 1; $i <= $zones; $i++) { $variableTintID = searchBACnet(2 /* Analoge Value */, $i + 1 /* Zone 1 = 2 */); $automodeStateID = searchBACnet(2 /* Analoge Value */, $i + 2001 /* Zone 1 = 2002 */); $luxLevelSetPointID = searchBACnet(2 /* Analoge Value */, $i + 4001 /* Zone 1 = 4002 */); $statusID = searchBACnet(0 /* Analoge Input */, $i + 4000 /* Zone 1 = 4001 */); // Search for the our sensor the vertical sensor matrix $verticalSensorID = searchSensorID($i, $sensorVertical); if ($verticalSensorID) { $verticalSensorID = searchBACnet(0 /* Analoge Input */, $verticalSensorID + 2000 /* Sensor 1 = 2001 */); } // Search for the our sensor the vertical sensor matrix $horizontalSensorID = searchSensorID($i, $sensorHorizontal); if ($horizontalSensorID) { $horizontalSensorID = searchBACnet(0 /* Analoge Input */, $horizontalSensorID + 2000 /* Sensor 1 = 2001 */); } if (!@IPS_GetObjectIDByIdent("SageGlassZone" . $i)) { if ($variableTintID && $automodeStateID && $luxLevelSetPointID && $verticalSensorID && $horizontalSensorID && $statusID) { echo "Creating Zone " . $i . "..." . PHP_EOL; $id = IPS_CreateInstance("{67CEA419-A625-703E-2BE6-BF51B3C913B9}"); IPS_SetName($id, "Zone " . $i); IPS_SetIdent($id, "SageGlassZone" . $i); IPS_SetProperty($id, "VariableTint", $variableTintID); IPS_SetProperty($id, "AutomodeState", $automodeStateID); IPS_SetProperty($id, "LuxLevelSetPoint", $luxLevelSetPointID); IPS_SetProperty($id, "Status", $statusID); IPS_SetProperty($id, "SensorVertical", $verticalSensorID); IPS_SetProperty($id, "SensorHorizontal", $horizontalSensorID); IPS_ApplyChanges($id); } } } function searchSensorID($zone, $sensorMatrix) { foreach($sensorMatrix as $sensor => $matrix) { foreach($matrix as $sensorZone) { if ($zone == $sensorZone) { return $sensor; } } } return 0; } function searchBACnet($objectType, $instanceNumber) { $ids = IPS_GetInstanceListByModuleID("{CD5D5D10-3743-DA88-F16C-8B65CF4103F9}"); foreach ($ids as $id) { if ((IPS_GetProperty($id, "ObjectType") == $objectType) && (IPS_GetProperty($id, "InstanceNumber") == $instanceNumber)) { return IPS_GetObjectIDByIdent("PresentValue", $id); } } return 0; } ```