Exemplo n.º 1
0
def set_modes():
    if not is_active():
        return

    modes = Zone.objects.get_modes()
    client = ControllerProxy(PILOTWIRE_IP_PORT)

    try:
        client.modes = modes
    except PilotwireModesInconsistent as pwerr:
        logger.error(pwerr)
        return

    logger.info("Modes set on pilotwire controller : %s",
                pformat(client.modes))
Exemplo n.º 2
0
def setpilotwire():
    logger = logging.getLogger("setpilotwire")
    modes = Zone.objects.get_modes()
    pwclient = ControllerProxy()

    controller_status = pwclient.check_status()
    if controller_status != "active":
        logger.error("Failed to connect to pilotwire controller : %s", controller_status)
        return

    try:
        pwclient.modes = modes
    except PilotwireModesInconsistent as pwerr:
        logger.error(pwerr)
        return

    logger.info("Modes set on pilotwire controller : %s", pformat(modes))
Exemplo n.º 3
0
def update_status():
    redis = StrictRedis.from_url(settings.REDIS_URL)
    pwclient = ControllerProxy(PILOTWIRE_IP_PORT)

    old_status = redis.get(REDIS_KEY)
    if old_status is not None:
        old_status = old_status.decode()

    status = pwclient.check_status()
    redis.set(REDIS_KEY, status, ex=90)

    if status != old_status:
        log_message = "Pilotwire controller status changed from {} to {}"
        log_message = log_message.format(old_status, status)
        if status == 'active':
            log_message += ", going to set pilotwire modes"
            logger.info(log_message)
            set_modes()
        else:
            logger.error(log_message)
            mail_admins("Pilotwire controller connection error", log_message)
 def test_unreachable_status(self):
     client = ControllerProxy('127.0.0.0:8888')
     assert client.check_status() == 'unreachable'