Beispiel #1
0
        private string TranslateToLoxoneOperation(LoxoneMessage.ControlBlinds.BlindCmd command)
        {
            switch (command)
            {
            case LoxoneMessage.ControlBlinds.BlindCmd.FullDown:
                return("fulldown");

            case LoxoneMessage.ControlBlinds.BlindCmd.FullUp:
                return("fullup");

            case LoxoneMessage.ControlBlinds.BlindCmd.Stop:
                return("stop");
            }
            return(String.Empty);
        }
Beispiel #2
0
        private void ProcessModeController(AlexaDirective directive)
        {
            string name       = directive.Header.Name;
            string instance   = directive.Header.Instance;
            string targetMode = directive.Payload["mode"]?.ToString();

            log.Info("Processing MopdeController request with name '{0}' for instance '{1}' targetting '{2}'", name, instance, targetMode);

            if (instance == "Blinds.BlindTargetState")
            {
                if (name == "SetMode")
                {
                    LoxoneMessage.ControlBlinds.BlindCmd command = LoxoneMessage.ControlBlinds.BlindCmd.FullUp;
                    switch (targetMode)
                    {
                    case "BlindTargetState.FullUp":
                        command = LoxoneMessage.ControlBlinds.BlindCmd.FullUp;
                        break;

                    case "BlindTargetState.FullDown":
                        command = LoxoneMessage.ControlBlinds.BlindCmd.FullDown;
                        break;

                    case "BlindTargetState.Stop":
                        command = LoxoneMessage.ControlBlinds.BlindCmd.Stop;
                        break;
                    }
                    this.loxoneDispatcher.Tell(new LoxoneMessage.ControlBlinds(AlexaUuidTranslator.ToLoxoneUuid(directive.Endpoint.EndpointId), command));
                    var response = CreateResponse(directive.Header.CorrelationId, directive.Endpoint.EndpointId);
                    response.Context.Properties.Add(new AlexaProperty("Alexa.ModeController", "mode", targetMode, DateTime.Now));
                    SendResponseToAlexa(response);
                    return;
                }
            }

            SendResponseToAlexa(CreateError(directive.Endpoint.EndpointId, AlexaErrorType.INVALID_DIRECTIVE, $"Directive {name} for instance {instance} is not implemented!"));
        }