How do I add a single temperature reading to a user input

This seems so easy but everything I tried is returning errors.

In my thermostat smartapp after the user selects a temperature input, the next input is to enter the temperature setpoint.

What I want to do is display that single temperature reading from the temperature input that was just selected in on the mobile app screen to help me determine what setpoint I want to enter. Easy stuff I would think?

I looked at @krlaframboise code for Simple Device Viewer and also PlantLink-DirectMonitor by @sidjohn1 for examples on how to do this for my use of just a single temperature point in my thermostat app. but the method they use for dynamically getting all the devices I just couldn’t follow. I couldn’t find examples in the ST documentation to learn from either.

Can somebody help? I am not sure of the correct syntax to use I guess because everything I try returns errors.

The Simple Device Viewer doesn’t use the value of one input to populate another input. I think you need to use something like submit on change (I can’t remember the actual command). I know that the feature didn’t always work right when using the Android app, but I’m not sure if they’ve fixed that yet.

The SmartApp CoRE does what you’re trying to a lot, but since that SmartApp is about 10,000 lines, trying to figure it out from there probably isn’t a good suggestion.

So how do I just get the value of a temperature like you did when you display the entire list of all temperature devices? All I need to do is display that one temperature on the mobile app like you do but not all my temperature devices.

I’ll review your code and get back to you later this evening.

1 Like

Yes I agree. I think it goes in the input line 62 for the Temperature Sensor input
submitOnChange: true

Thanks Kevin!

What I was hoping to achieve is something like this screen shot shows

Just do something like:

section("Select a room temperature sensor to control the Evap Cooler..."){
    input "tempSensor", "capability.temperatureMeasurement", multiple:false, title: "Temperature Sensor", required: true, submitOnChange: true
}

if (tempSensor) {
    section("Enter the desired room temperature (${tempSensor.currentTemperature})..."){
        input "setpoint", "decimal", title: "Room Setpoint Temp", defaultValue: tempSensor.currentTemperature, required: true
    }
}
2 Likes

I’m on it tonight! Thanks so much for looking at it

UPDATE:

@krlaframboise again you have come through! That was it! I wasn’t so close too. I didn’t have submitOnchange and I had improper syntax. :smile:

So is the purpose for having the IF in there is for a technique to prevent null errors from crashing the smartapp?

2 Likes