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