How to set device value on script

I would need to create function allowing me to change values on devices. Continued trials on on below topic
[Setting Logic Variable by HomeyScript - #53 by Eko_taas]

Example of myDevice (only part of actual AVD)

“_HiidenSite”: {
“devicecapabilities_text-custom_12.text6”: {
“title”: “currentOutTemp”,
“value”: -17.1
},

}

as wanted to use more title instead of cabability, made this code for testing reading by title (and working fine):

>   const devices = await Homey.devices.getDevices();
> 
> const sensorName = "_HiidenSite";
> const capabilityTitle = "currentOutTemp";
> 
>   for (const device of Object.values(devices)) {
>     if (device.name === sensorName) {
>       for (const capability of Object.values(device.capabilitiesObj)) {
>         if (capability.title === capabilityTitle) {
>           return capability.value; // Return the capability value (even if it's null)
>         }
>       }
>       return -1000; // Indicate capability title not found for the sensor
>     }
>   }
>   return -2000; // Indicate sensor not found

Now wanted to create code to update device value by title… but could only get working within script

//async function setSensorValueByTitle(sensorName, capabilityTitle, newValue) {
  // Get all devices
  const devices = await Homey.devices.getDevices();

const sensorName = "_HiidenSite";
const capabilityTitle = "currentOutTemp";
const newValue = -18.1;

  for (const device of Object.values(devices)) {
    if (device.name === sensorName) {
      for (const capability of Object.values(device.capabilitiesObj)) {
        if (capability.title === capabilityTitle) {
          capability.value = newValue; // Update the capability value with the new value
          device.capabilitiesObj.value = newValue
          return  newValue;
        }
      }
      return -1000; // Indicate capability title not found for the sensor
    }
  }
  return -2000; // Indicate sensor not found
//}

Was not able to figure out how to modify this to get it to Homey-level (and not only till this script)

device.capabilitiesObj.value = newValue

On earlier mentioned topic can see how to do that for variable, but what to do with when device?

Thanks in advance for any help…

You need to create a capability instance.

Thanks for good advice and direction to go… needed some help with AI to create code but helped a lot how to push it to correct direction :+1:

For records if someone else finds idea useful:

const devices = await Homey.devices.getDevices();

sensorName = "_HiidenSite";
capabilityTitle = "currentOutTemp";
newValue = "-18.2";


  for (const device of Object.values(devices)) {
    if (device.name === sensorName) {
      for (const capability of Object.values(device.capabilitiesObj)) {
        if (capability.title === capabilityTitle) {
          try {
            await device.setCapabilityValue(capability.id, newValue);
            console.log(`Changed '${capabilityTitle}' value to ${newValue} for ${sensorName}`);
            return newValue; // Indicate the value has been updated
          } catch (error) {
            console.error("Failed to update value:", error);
            return -999; // Indicate update failure
          }
        }
      }
      return -1999; // Indicate capability title not found for the sensor
    }
  }
  return -2999; // Indicate sensor not found

Changed ‘currentOutTemp’ value to -18.2 for _HiidenSite

———————————————————
:white_check_mark: Script Success

:leftwards_arrow_with_hook: Returned: “-18.2”

and

image