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); }
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!")); }