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))
예제 #3
0
        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))
예제 #4
0
        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))