Getting "Ambiguous method overloading for method java.lang.Integer#div"

I'm receiving an error when trying to calculate a ratio on integers. I've tried several variations of variable types and have not found where I'm going wrong.

I think the operands are the result of subtracting two Epoch values. So I can't see where I'm going astray.

Any help would be appreciated.

John

def handlerAC(evt) {

    if(evt.value == "cooling"){
        state.coolStart = now()
    }
    else if(evt.value == "idle"){          // if idle we must be stopped.
        state.prev_coolStop = state.coolStop   // in ms
        state.coolStop = now()
        int onTIME = (state.coolStop - state.coolStart)
        int period = (state.coolStop - state.prev_coolStop)

        BigDecimal percentON = (onTIME/onPeriod) * 100  // line 74

        def percentONDevice = getChildDevice("percentONdeviceHandle_${app.id}")  // we need this becasue apps forget variables between runs.
        percentONDevice.reportAC_ON(percentON.toInteger())  // <<---------- this sends percentON to the device driver to create an event.
        percentONDevice.reportAC_Period(period.toInteger())  // <<---------- this sends period to the device driver to create an event.

        log.info "onTIME=$onTIME, onPeriod=$onPeriod, percentON=$percentON, OutsideTemp=${state.Temperature},  MasterBRTemp= ${state.MasterBRTemp}"
    }  //if idle
}  // handlerAC

you have a null value in some variable on line 74

Thank you, I'll do some more troubleshooting, however am I wrong in thinking the operands are the same as:

where is onPeriod defined?, i see period, but not onPeriod

1 Like

Oops !

Sorry, you shouldn't have to edit my typos.

But thank you for you observation.

John

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.