Esempio n. 1
0
        private AlexaEndpoint ParseControlToEndpoint(Control c)
        {
            string uuid = AlexaUuidTranslator.ToAlexaId(c.LoxoneUuid);

            if (c.Type == ControlType.LightControl)
            {
                AlexaEndpoint ep = new AlexaEndpoint()
                {
                    EndpointId           = uuid,
                    ManufacturerName     = "Loxone / Aloxi by ZoolWay",
                    Description          = $"Lichtschalter via Loxone in {c.RoomName}",
                    FriendlyName         = c.FriendlyName,
                    AdditionalAttributes = GenerateBasicAdditionalAttributes(c),
                    DisplayCategories    = new[] { "LIGHT" },
                    Capabilities         = new AlexaEndpointCapability[] { new PowerControllerCapability(), new GenericAlexaCapability() },
                };
                AddOperationsToAdditionalAttributes(c.Operations, ep.AdditionalAttributes);
                return(ep);
            }
            else if (c.Type == ControlType.LightDimmableControl)
            {
                AlexaEndpoint ep = new AlexaEndpoint()
                {
                    EndpointId           = uuid,
                    ManufacturerName     = "Loxone / Aloxi by ZoolWay",
                    Description          = $"Dimmer via Loxone in {c.RoomName}",
                    FriendlyName         = c.FriendlyName,
                    AdditionalAttributes = GenerateBasicAdditionalAttributes(c),
                    DisplayCategories    = new[] { "LIGHT" },
                    Capabilities         = new AlexaEndpointCapability[] { new PowerLevelControllerCapability(), new PowerControllerCapability(), new GenericAlexaCapability() },
                };
                AddOperationsToAdditionalAttributes(c.Operations, ep.AdditionalAttributes);
                return(ep);
            }
            else if (c.Type == ControlType.BlindControl)
            {
                AlexaEndpoint ep = new AlexaEndpoint()
                {
                    EndpointId           = uuid,
                    ManufacturerName     = "Loxone / Aloxi by ZoolWay",
                    Description          = $"Jalousie via Loxone in {c.RoomName}",
                    FriendlyName         = c.FriendlyName,
                    AdditionalAttributes = GenerateBasicAdditionalAttributes(c),
                    DisplayCategories    = new[] { "INTERIOR_BLIND" },
                    Capabilities         = new AlexaEndpointCapability[] { new ModeControllerCapabilityForBlinds(), new GenericAlexaCapability() },
                };
                AddOperationsToAdditionalAttributes(c.Operations, ep.AdditionalAttributes);
                return(ep);
            }
            return(null);
        }