Example #1
0
        public static MqttClientOptionsBuilder ConfigureHassConnectedEntityServiceLastWill(this MqttClientOptionsBuilder builder, IServiceProvider provider)
        {
            HassMqttTopicBuilder             topicBuilder = provider.GetRequiredService <HassMqttTopicBuilder>();
            HassConnectedEntityServiceConfig config       = provider.GetRequiredService <IOptions <HassConnectedEntityServiceConfig> >().Value;

            return(builder.WithWillMessage(new MqttApplicationMessage
            {
                Topic = topicBuilder.GetServiceTopic(config.DeviceId, config.EntityId, "state"),
                Payload = Encoding.UTF8.GetBytes(config.ProblemMessage),
                Retain = true
            }));
        }
        public HassConnectedEntityService(IOptions <HassConnectedEntityServiceConfig> options,
                                          IManagedMqttClient mqttClient,
                                          MqttEvents mqttEvents,
                                          HassMqttManager hassMqttManager,
                                          HassMqttTopicBuilder topicBuilder)
        {
            _config          = options.Value;
            _mqttClient      = mqttClient;
            _mqttEvents      = mqttEvents;
            _hassMqttManager = hassMqttManager;

            StateTopic = topicBuilder.GetServiceTopic(_config.DeviceId, _config.EntityId, "state");
        }