def dispatchEvent(zoneEvent, event, enforceItemInZone = True): ''' Dispatches an event to the ZoneManager. If the event is not processed, create a debug log. ''' triggeringItem = itemRegistry.getItem(event.itemName) if not _mutableZoneManager.dispatchEvent(zoneEvent, events, triggeringItem, enforceItemInZone): PE.logDebug('Event {} for item {} is not processed.'.format(zoneEvent, event.itemName))
def onSwitchIsChanged(event): triggeringItem = itemRegistry.getItem(event.itemName) if switch_manager.isSwitchOn(triggeringItem): if not _mutableZoneManager.onSwitchTurnedOn(events, triggeringItem): PE.logDebug('Switch on event for {} is not processed.'.format( event.itemName)) else: if not _mutableZoneManager.onSwitchTurnedOff(events, triggeringItem): PE.logDebug('Switch off event for {} is not processed.'.format( event.itemName))
def turnOffSwitch(): zone = self.getZoneManager().getContainingZone(self) (occupied, device) = zone.isOccupied([Fan, Light], 60) if not occupied: events.sendCommand(self.getItemName(), "OFF") PE.logDebug("{}: turning off {}.".format( zone.getName(), self.getItemName())) else: self.timer = Timer(self.durationInMinutes * 60, turnOffSwitch) self.timer.start() PE.logDebug("{}: {} is in use by {}.".format( zone.getName(), self.getItemName(), device))
def resetFailedAutoReportDevices(): devices = [] for z in self.getZones(): [devices.append(d) for d in z.getDevices() \ if d.isAutoReport() and \ not d.wasRecentlyActivated(inactiveIntervalInSeconds)] if len(devices) > 0: itemNames = [] for d in devices: itemNames.append(d.getItemName()) d.resetValueStates() PE.logWarning( "AutoReport Watchdog: {} failed auto-report devices: {}". format(len(devices), itemNames)) else: PE.logDebug( "AutoReport Watchdog: no failed auto-report devices") # restart the timer self.autoReportWatchDogTimer = Timer(timerIntervalInSeconds, resetFailedAutoReportDevices) self.autoReportWatchDogTimer.start()
def onNetworkDeviceConnected(event): if not _mutableZoneManager.onNetworkDeviceConnected(events, itemRegistry.getItem(event.itemName)): PE.logDebug('Network device connected event for {} is not processed.'.format( event.itemName))