예제 #1
0
        private static ISwitchMqttEntityConfiguration CreateSwitchMqttEntityConfiguration(ISwitch switchEntity, ISwitchEntityDefinition switchEntityDefinition)
        {
            var ecb = new SwitchMqttEntityConfigurationBuilder()

                      // BaseMqttEntityConfigurationBuilder
                      .WithEntity(switchEntity)
                      .WithEntityDefinition(switchEntityDefinition)
                      .WithDiscoveryTopic("test/discovery") // -> CreateDefaultDiscoveryMessage
                      .WithDiscoveryMessageQualityOfServiceLevel(MqttQualityOfServiceLevel.ExactlyOnce)
                      .WithRetainedDiscoveryMessages(false)

                      // .WithDiscoveryMessage(mb => mb.WithPayload("test"))

                      // .WithDeleteMessage(mb => mb.WithPayload("test"))

                      // Abstract
                      .WithDefaultCommandHandlers()

                      // BaseMqttStatefulEntityConfigurationBuilder
                      .WithStateMessageQualityOfServiceLevel(MqttQualityOfServiceLevel.ExactlyOnce)
                      .WithRetainedStateMessages(false)
                      .WithDefaultStateChangeHandlers()
                      .Build();

            return(ecb);
        }
예제 #2
0
        public static IHomeAssistantMqttConfigurationBuilder AddSwitch(
            this IHomeAssistantMqttConfigurationBuilder configurationBuilder,
            Func <ISwitchMqttEntityConfigurationBuilder, ISwitchMqttEntityConfigurationBuilder> configurator)
        {
            ISwitchMqttEntityConfigurationBuilder builder = new SwitchMqttEntityConfigurationBuilder();

            builder = configurator(builder);

            configurationBuilder.ServiceCollection.AddSingleton(sp =>
            {
                var entityConfiguration = builder.Build();
                return(entityConfiguration);
            });

            return(configurationBuilder);
        }
예제 #3
0
        public static IHomeAssistantMqttConfigurationBuilder AddSwitch(
            this IHomeAssistantMqttConfigurationBuilder configurationBuilder,
            Func <ISwitchMqttEntityConfigurationBuilder, ISwitchMqttEntityConfigurationBuilder> configurator)
        {
            configurationBuilder.TryRegisterEntityBindingManager <ISwitchMqttEntityConfiguration, ISwitch, ISwitchEntityDefinition>();

            ISwitchMqttEntityConfigurationBuilder builder = new SwitchMqttEntityConfigurationBuilder();

            builder = configurator(builder);

            configurationBuilder.ServiceCollection.AddSingleton(sp =>
            {
                var entityConfiguration = builder.Build();
                return(entityConfiguration);
            });

            return(configurationBuilder);
        }