[RELEASE] Home Assistant Device Bridge (HADB)

Can you please try replacing the "componentSetSpeed" function in your current Parent Driver with the following one? I have added fan_on and fan_off commands in addition to the set_percentage call to Home Assistant to see if this help with your LocalTuya devices. If this works, then I'll add it to the GitHub repo.

def componentSetSpeed(ch, speed) {
    if (logEnable) log.info("received setSpeed request from ${ch.label}, with speed = ${speed}")
    int percentage = 0
    switch (speed) {
        case "off":
            percentage = 0
            break
        case "low":
        case "medium-low":
            percentage = 25
            break
        case "on":
        case "auto":
        case "medium":
            percentage = 50
            break
        case "medium-high":
            percentage = 75
            break
        case "high":
            percentage = 100
            break
        default:
            if (logEnable) log.info "No case defined for Fan setSpeed(${speed})"
    }
    state.id = state.id + 1
    entity = ch.name
    domain = entity.tokenize(".")[0]
    messPCT = JsonOutput.toJson([id: state.id, type: "call_service", domain: "${domain}", service: "set_percentage", service_data: [entity_id: "${entity}", percentage: "${percentage}"]])        
    if (logEnable) log.debug("messOn = ${messPCT}")
    interfaces.webSocket.sendMessage("${messPCT}")
    
    //added per user request to help will fan devices on Hass that do not turn on/off properly when set_percentage is called.
    if (percentage != 0) {
        messOn = JsonOutput.toJson([id: state.id, type: "call_service", domain: "${domain}", service: "turn_on", service_data: [entity_id: "${entity}"]])
        interfaces.webSocket.sendMessage("${messOn}")
    } else {
        messOff = JsonOutput.toJson([id: state.id, type: "call_service", domain: "${domain}", service: "turn_off", service_data: [entity_id: "${entity}"]])
        interfaces.webSocket.sendMessage("${messOff}")
    }
    
}
2 Likes