public override void Process(UponorResponseContainer values) { // Average temperature if (!values.TryGetValue(UponorObjects.System(UponorSystem.AverageRoomTemperature), UponorProperties.Value, out object val)) { return; } string deviceId = HassUniqueIdBuilder.GetUhomeDeviceId(); ISensorContainer sensor = HassMqttManager.GetSensor(deviceId, "average_temperature"); MqttStateValueTopic sender = sensor.GetValueSender(HassTopicKind.State); sender.Value = val; }
public override void Process(UponorResponseContainer values) { // Outdoor sensors foreach (int controller in _systemDetails.GetAvailableOutdoorSensors()) { if (!values.TryGetValue(UponorObjects.Controller(UponorController.MeasuredOutdoorTemperature, controller), UponorProperties.Value, out object val)) { continue; } string deviceId = HassUniqueIdBuilder.GetControllerDeviceId(controller); ISensorContainer sensor = HassMqttManager.GetSensor(deviceId, "outdoor_sensor"); MqttStateValueTopic sender = sensor.GetValueSender(HassTopicKind.State); sender.Value = val; } }
public override void Process(UponorResponseContainer values) { // Software versions foreach (int controller in _systemDetails.GetAvailableControllers()) { if (!values.TryGetValue(UponorObjects.Controller(UponorController.ControllerSwVersion, controller), UponorProperties.Value, out object val)) { continue; } string deviceId = HassUniqueIdBuilder.GetControllerDeviceId(controller); ISensorContainer sensor = HassMqttManager.GetSensor(deviceId, "controller"); MqttStateValueTopic sender = sensor.GetValueSender(HassTopicKind.State); MqttAttributesTopic attributes = sensor.GetAttributesSender(); sender.Value = "discovered"; attributes.SetAttribute("sw_version", val); } }
public override void Process(UponorResponseContainer values) { foreach ((int controller, int thermostat) in _systemDetails.GetAvailableThermostats()) { string deviceId = HassUniqueIdBuilder.GetThermostatDeviceId(controller, thermostat); // Temperature ISensorContainer sensor = HassMqttManager.GetSensor(deviceId, "temperature"); MqttStateValueTopic sender = sensor.GetValueSender(HassTopicKind.State); if (values.TryGetValue(UponorObjects.Thermostat(UponorThermostats.RoomTemperature, controller, thermostat), UponorProperties.Value, out float floatVal)) { if (IsValid.Temperature(floatVal)) { sender.Value = floatVal; } else { _logger.LogWarning("Received an invalid temperature of {Value} for {Device}", floatVal, deviceId); } } } }