public async Task SetMqttBinarySensorStateAsync(string objectId, BinarySensorState state) { var topic = BuildMqttTopic(_mqttDiscoveryPrefix, DeviceType.BinarySensor, objectId, "state"); var publishResult = await _mqttClient.PublishAsync(topic, state.ToString().ToUpperInvariant()); if (publishResult.ReasonCode != MQTTnet.Client.Publishing.MqttClientPublishReasonCode.Success) { throw new HomeAssistantException($"Failed to publish MQTT message: {publishResult.ReasonCode} {publishResult.ReasonString}"); } }
public BinarySensor(BinarySensorState initialValue = BinarySensorState.Unknown) { _binarySensorSubject = new BehaviorSubject <BinarySensorState>(initialValue); Values = _binarySensorSubject.AsObservable(); }