Ich habe folgende rule mit Openhab 1.2. benutzt, seit meinem update auf 1.3.1 bekome ich eine Java exception. Die rule benutze ich um das Licht im Zimmer meines Sohnes auszuschalten wenn er es vergisst.
Ich finde keine Fehler in der Rule.
RULE *********************************
EXCEPTION *********************************
07:50:40.146 ERROR o.o.c.s.ScriptExecutionThread[:70] - Error during the execution of rule 'Olivier Dim or switch off when not used': Ambiguous methods [protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateAssignment(org.eclipse.xtext.xbas e.XAssignment,org.eclipse.xtext.xbase.interpreter. IEvaluationContext,org.eclipse.xtext.util.CancelIn dicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateBlockExpression(org.eclipse.xtext .xbase.XBlockExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateBooleanLiteral(org.eclipse.xtext. xbase.XBooleanLiteral,org.eclipse.xtext.xbase.inte rpreter.IEvaluationContext,org.eclipse.xtext.util. CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateCastedExpression(org.eclipse.xtex t.xbase.XCastedExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateClosure(org.eclipse.xtext.xbase.X Closure,org.eclipse.xtext.xbase.interpreter.IEvalu ationContext,org.eclipse.xtext.util.CancelIndicato r), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateConstructorCall(org.eclipse.xtext .xbase.XConstructorCall,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected org.eclipse.xtext.xbase.interpreter.IEvaluationRes ult org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateDoWhileExpression(org.eclipse.xte xt.xbase.XDoWhileExpression,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateForLoopExpression(org.eclipse.xte xt.xbase.XForLoopExpression,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateIfExpression(org.eclipse.xtext.xb ase.XIfExpression,org.eclipse.xtext.xbase.interpre ter.IEvaluationContext,org.eclipse.xtext.util.Canc elIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateInstanceOf(org.eclipse.xtext.xbas e.XInstanceOfExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateMemberFeatureCall(org.eclipse.xte xt.xbase.XMemberFeatureCall,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateNullLiteral(org.eclipse.xtext.xba se.XNullLiteral,org.eclipse.xtext.xbase.interprete r.IEvaluationContext,org.eclipse.xtext.util.Cancel Indicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateNumberLiteral(org.eclipse.xtext.x base.XNumberLiteral,org.eclipse.xtext.xbase.interp reter.IEvaluationContext,org.eclipse.xtext.util.Ca ncelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateReturnExpression(org.eclipse.xtex t.xbase.XReturnExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateStringLiteral(org.eclipse.xtext.x base.XStringLiteral,org.eclipse.xtext.xbase.interp reter.IEvaluationContext,org.eclipse.xtext.util.Ca ncelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateSwitchExpression(org.eclipse.xtex t.xbase.XSwitchExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateThrowExpression(org.eclipse.xtext .xbase.XThrowExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateTryCatchFinallyExpression(org.ecl ipse.xtext.xbase.XTryCatchFinallyExpression,org.ec lipse.xtext.xbase.interpreter.IEvaluationContext,o rg.eclipse.xtext.util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateTypeLiteral(org.eclipse.xtext.xba se.XTypeLiteral,org.eclipse.xtext.xbase.interprete r.IEvaluationContext,org.eclipse.xtext.util.Cancel Indicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateVariableDeclaration(org.eclipse.x text.xbase.XVariableDeclaration,org.eclipse.xtext. xbase.interpreter.IEvaluationContext,org.eclipse.x text.util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateWhileExpression(org.eclipse.xtext .xbase.XWhileExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator)] for params [null, org.eclipse.xtext.xbase.interpreter.impl.DefaultEv aluationContext@1f561c9, org.eclipse.xtext.util.CancelIndicator$1@e70f9f][/CODE]
Ich finde keine Fehler in der Rule.
RULE *********************************
Code:
rule "Olivier Dim or switch off when not used" when Item Light_FF_Child_Ceiling received command then //if(receivedCommand==DECREASE) // return //when Item Sequencer_FF_Bad changed to ON //if((Light_FF_Child_Ceiling.state instanceof DecimalType && Light_FF_Child_Ceiling.state as DecimalType == 0 && timerLightDim_FF_Child_Ceiling != null) if(receivedCommand instanceof DecimalType && receivedCommand as DecimalType == 0 || receivedCommand instanceof OnOffType && receivedCommand == OFF || Light_FF_Child_Ceiling.state instanceof DecimalType && Light_FF_Child_Ceiling.state as DecimalType == 0){ //do nothing if off or switched off println ("Olivier Dim or switch off when not used - no action needed") if(timerLightDim_FF_Child_Ceiling != null) timerLightDim_FF_Child_Ceiling.cancel() } else { current_time = java::util::Calendar::getInstance(TimeZone::getTimeZone("GMT")) var Number hour = current_time.get(java::util::Calendar::HOUR_OF_DAY) if(dateDimOlivierLastinMillisecs + 1000 < current_time.getTimeInMillis()){ println ("Olivier Dim or switch off when not used - adding - updating timer") dateDimOlivierLastinMillisecs = current_time.getTimeInMillis(); var Integer delay; if(hour >= 0 && current_time.before(SunRiseDate)){ dimvalue = 1; delay = 900; } else if(current_time.after(SunRiseDate) && current_time.before(SunSetDate) ){ dimvalue = 0; delay = 3600; } else { return; } if(timerLightDim_FF_Child_Ceiling==null) { // first ON command, so create a timer to turn the light off again say("Started timer Olivier") timerLightDim_FF_Child_Ceiling = createTimer(now.plusSeconds(delay)) [| postUpdate(Light_FF_Child_Ceiling, dimvalue) ] } else { // subsequent ON command, so reschedule the existing timer timerLightDim_FF_Child_Ceiling.reschedule(now.plusSeconds(delay)) } } } end
07:50:40.146 ERROR o.o.c.s.ScriptExecutionThread[:70] - Error during the execution of rule 'Olivier Dim or switch off when not used': Ambiguous methods [protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateAssignment(org.eclipse.xtext.xbas e.XAssignment,org.eclipse.xtext.xbase.interpreter. IEvaluationContext,org.eclipse.xtext.util.CancelIn dicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateBlockExpression(org.eclipse.xtext .xbase.XBlockExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateBooleanLiteral(org.eclipse.xtext. xbase.XBooleanLiteral,org.eclipse.xtext.xbase.inte rpreter.IEvaluationContext,org.eclipse.xtext.util. CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateCastedExpression(org.eclipse.xtex t.xbase.XCastedExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateClosure(org.eclipse.xtext.xbase.X Closure,org.eclipse.xtext.xbase.interpreter.IEvalu ationContext,org.eclipse.xtext.util.CancelIndicato r), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateConstructorCall(org.eclipse.xtext .xbase.XConstructorCall,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected org.eclipse.xtext.xbase.interpreter.IEvaluationRes ult org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateDoWhileExpression(org.eclipse.xte xt.xbase.XDoWhileExpression,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateForLoopExpression(org.eclipse.xte xt.xbase.XForLoopExpression,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateIfExpression(org.eclipse.xtext.xb ase.XIfExpression,org.eclipse.xtext.xbase.interpre ter.IEvaluationContext,org.eclipse.xtext.util.Canc elIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateInstanceOf(org.eclipse.xtext.xbas e.XInstanceOfExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateMemberFeatureCall(org.eclipse.xte xt.xbase.XMemberFeatureCall,org.eclipse.xtext.xbas e.interpreter.IEvaluationContext,org.eclipse.xtext .util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateNullLiteral(org.eclipse.xtext.xba se.XNullLiteral,org.eclipse.xtext.xbase.interprete r.IEvaluationContext,org.eclipse.xtext.util.Cancel Indicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateNumberLiteral(org.eclipse.xtext.x base.XNumberLiteral,org.eclipse.xtext.xbase.interp reter.IEvaluationContext,org.eclipse.xtext.util.Ca ncelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateReturnExpression(org.eclipse.xtex t.xbase.XReturnExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateStringLiteral(org.eclipse.xtext.x base.XStringLiteral,org.eclipse.xtext.xbase.interp reter.IEvaluationContext,org.eclipse.xtext.util.Ca ncelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateSwitchExpression(org.eclipse.xtex t.xbase.XSwitchExpression,org.eclipse.xtext.xbase. interpreter.IEvaluationContext,org.eclipse.xtext.u til.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateThrowExpression(org.eclipse.xtext .xbase.XThrowExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateTryCatchFinallyExpression(org.ecl ipse.xtext.xbase.XTryCatchFinallyExpression,org.ec lipse.xtext.xbase.interpreter.IEvaluationContext,o rg.eclipse.xtext.util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateTypeLiteral(org.eclipse.xtext.xba se.XTypeLiteral,org.eclipse.xtext.xbase.interprete r.IEvaluationContext,org.eclipse.xtext.util.Cancel Indicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateVariableDeclaration(org.eclipse.x text.xbase.XVariableDeclaration,org.eclipse.xtext. xbase.interpreter.IEvaluationContext,org.eclipse.x text.util.CancelIndicator), protected java.lang.Object org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._evaluateWhileExpression(org.eclipse.xtext .xbase.XWhileExpression,org.eclipse.xtext.xbase.in terpreter.IEvaluationContext,org.eclipse.xtext.uti l.CancelIndicator)] for params [null, org.eclipse.xtext.xbase.interpreter.impl.DefaultEv aluationContext@1f561c9, org.eclipse.xtext.util.CancelIndicator$1@e70f9f][/CODE]
Kommentar