Hvac zoning app

can you all help get the code done?
ventStatus will not change to Close if desired temperature reached for a Vent.

ecobee Suite Smart Vents` automates one or more vents to reach/maintain a target temperature that you specify or from a specified thermostat. It uses one or more temperature devices, and opens/closes vents based upon current temperature, target temperature and thermostat operating state. this what I'm look to do with the.

definition(
    name: "Ecobee Smart Vent Controller",
    namespace: "yourNamespace",
    author: "yourName",
    description: "Control Ecobee Smart Vents based on temperature readings for multiple rooms.",
    category: "Convenience",
    iconUrl: "",
    iconX2Url: ""
)

preferences {
    (1..20).each { roomNum ->
        section("Room ${roomNum} Setup:") {
            input "room${roomNum}Sensor", "capability.temperatureMeasurement", title: "Room ${roomNum} Temperature Sensor", required: false
            input "room${roomNum}Vents", "capability.switch", title: "Room ${roomNum} Ecobee Smart Vents", multiple: true, required: false
            input "room${roomNum}TargetTemp", "number", title: "Room ${roomNum} Target Temperature (°F)", required: false
        }
    }
}

def installed() {
    subscribeToTemperatureSensors()
    log.info "Ecobee Smart Vent Controller installed"
}

def updated() {
    unsubscribe()
    subscribeToTemperatureSensors()
    log.info "Ecobee Smart Vent Controller updated"
}

def subscribeToTemperatureSensors() {
    (1..20).each { roomNum ->
        def sensor = settings["room${roomNum}Sensor"]
        if (sensor) {
            subscribe(sensor, "temperature", "room${roomNum}TemperatureHandler")
        }
    }
}

(1..20).each { roomNum ->
    // Dynamic method generation for room temperature handlers
    def methodName = "room${roomNum}TemperatureHandler"
    this."$methodName" = { evt -> 
        handleRoomTemperature(evt, roomNum) 
    }
}

def handleRoomTemperature(evt, roomNum) {
    def currentTemp = evt.doubleValue
    def targetTemp = settings["room${roomNum}TargetTemp"]
    log.info "Room ${roomNum}: Current temperature is ${currentTemp}°F, Target temperature is ${targetTemp}°F"

    if (currentTemp < targetTemp) {
        openRoomVents(roomNum)
    } else {
        closeRoomVents(roomNum)
    }
}

def openRoomVents(roomNum) {
    def vents = settings["room${roomNum}Vents"]
    if (vents) {
        vents.each { vent ->
            if (vent.currentSwitch == "off") {
                vent.on()
                log.info "${vent.displayName} opened in Room ${roomNum}"
            }
        }
    }
}

def closeRoomVents(roomNum) {
    def vents = settings["room${roomNum}Vents"]
    if (vents) {
        vents.each { vent ->
            if (vent.currentSwitch == "on") {
                vent.off()
                log.info "${vent.displayName} closed in Room ${roomNum}"
            }
        }
    }
}

that is code I have so far using chatgpt.com

What vents do you have? @storageanarchy's Ecobee Suite comes with a helper app for Keen Smart Vents.

In have it install but can not figure out how to setup room by room zoning?

If bad room 75 then open the Vent until the tamp it 69 then close then Vent.

I had the EcobeeSetZoneWithSchedule code at one time.