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
        }));
    }
Exemplo n.º 2
0
    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");
    }