Seite 2 von 2

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 14:52
von drevil75
So, diese Woche bin ich auf Dienstreise und komm nur langsam voran.
Deswegen hat es jetzt etwas gedauert.

Ich habe alles Mögliche probiert, ohne Erfolg.
Inzwischen habe ich nun alle items-Files deaktiviert (umbenannt) und ein neues test.items mit 2 ganz einfachen Switchen angelegt.
Meine Konfig sieht nun so aus.

ITEMS: (test.items)

Code: Alles auswählen

Switch test1 "test1 [%s]"
Switch test2 "test2 [%s]"
Sitemap: (test.sitemap)

Code: Alles auswählen

   sitemap test label="test"
{
    Frame label="test" {
        Switch item=test1 label="test1"
        Switch item=test2 label="test2"
        }
}
rules: (test.rules)
rule "test"

when
Item test1 changed from OFF to ON
then
test2.sendCommand("ON")
end

Sobald ich die test.rules speicher, kommen wieder massenhaft Fehlermeldungen (siehe erster Post).

Wenn ich den Switch test1 in der sitemap schalte, kommen wieder die Javameldungen aus dem ersten Post + am Ende, das ist mir bisher nicht aufgefallen, kommt noch folgende Meldung.

Fehlermeldung: (openhab.log)

Code: Alles auswählen

2020-07-16 14:42:28.233 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test': The name 'test2' cannot be resolved to an item or type; line 6, column 2, length 5
 
Dasselbe steht auch drin, wenn ich ein test2.state via log ausgeben lassen will und auch wenn ich den <shellyitemname>.sendCommand(UP) ausführe.
Sieht für mich irgendwie nach einer defekten rule-Engine oder Installation aus.
Denke nicht, dass ich einen Fehler in den Items oder Rules hab.



Hier nochmal eine vollständige Fehlermeldung.

Code: Alles auswählen

2020-07-16 14:42:28.207 [ERROR] [xbase.resource.BatchLinkableResource] - resolution of uriFragment '|::0.2.0.2.0.0.6::0::/1' failed.
java.lang.NullPointerException: null
	at org.eclipse.smarthome.model.script.ScriptServiceUtil.getActionServices(ScriptServiceUtil.java:111) ~[?:?]
	at org.eclipse.smarthome.model.script.scoping.ActionClassLoader.loadClass(ActionClassLoader.java:37) ~[?:?]
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_252]
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_252]
	at org.eclipse.xtext.common.types.access.impl.ClassFinder.forName(ClassFinder.java:41) ~[?:?]
	at org.eclipse.xtext.common.types.access.impl.ClassFinder.forName(ClassFinder.java:15) ~[?:?]
	at org.eclipse.xtext.common.types.access.impl.AbstractClassFinder.forName(AbstractClassFinder.java:43) ~[?:?]
	at org.eclipse.xtext.common.types.access.reflect.ReflectionTypeProvider.findClassByName(ReflectionTypeProvider.java:155) ~[?:?]
	at org.eclipse.xtext.common.types.access.reflect.ReflectionTypeProvider.doFindTypeByName(ReflectionTypeProvider.java:116) ~[?:?]
	at org.eclipse.xtext.common.types.access.reflect.ReflectionTypeProvider.findTypeByName(ReflectionTypeProvider.java:109) ~[?:?]
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:59) ~[?:?]
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:54) ~[?:?]
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getElements(AbstractTypeScope.java:73) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope.getElements(AbstractScope.java:137) ~[?:?]
	at org.eclipse.xtext.scoping.impl.ScopeBasedSelectable.getExportedObjects(ScopeBasedSelectable.java:40) ~[?:?]
	at org.eclipse.xtext.scoping.impl.ImportScope.getLocalElementsByName(ImportScope.java:154) ~[?:?]
	at org.eclipse.xtext.scoping.impl.ImportScope.getSingleLocalElementByName(ImportScope.java:142) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:105) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:108) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:108) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:108) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.TypeLiteralScope.getLocalElementsByName(TypeLiteralScope.java:48) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.AbstractSessionBasedScope.getElements(AbstractSessionBasedScope.java:174) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.AbstractSessionBasedScope$1.get(AbstractSessionBasedScope.java:180) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.AbstractSessionBasedScope$1.get(AbstractSessionBasedScope.java:177) ~[?:?]
	at org.eclipse.xtext.scoping.impl.AbstractScope$ParentIterable.iterator(AbstractScope.java:60) ~[?:?]
	at com.google.common.collect.FluentIterable$3$1.get(FluentIterable.java:296) ~[?:?]
	at com.google.common.collect.FluentIterable$3$1.get(FluentIterable.java:293) ~[?:?]
	at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.java:77) ~[?:?]
	at com.google.common.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1330) ~[?:?]
	at com.google.common.collect.Iterators$5.computeNext(Iterators.java:635) ~[?:?]
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141) ~[?:?]
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136) ~[?:?]
	at com.google.common.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1321) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.getLinkingCandidates(AbstractTypeComputationState.java:412) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer._computeTypes(XbaseTypeComputer.java:1226) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer.computeTypes(XbaseTypeComputer.java:112) ~[?:?]
	at org.eclipse.smarthome.model.script.jvmmodel.ScriptTypeComputer.computeTypes(ScriptTypeComputer.java:38) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.doComputeTypes(AbstractTypeComputationState.java:121) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.computeTypes(AbstractTypeComputationState.java:109) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState$1.getActualType(AbstractTypeComputationState.java:403) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.FeatureScopes.createFeatureCallScopeForReceiver(FeatureScopes.java:215) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.FeatureScopes.createFeatureCallScope(FeatureScopes.java:92) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.AbstractFeatureScopeSession.createFeatureCallScope(AbstractFeatureScopeSession.java:177) ~[?:?]
	at org.eclipse.xtext.xbase.scoping.batch.AbstractFeatureScopeSession.getScope(AbstractFeatureScopeSession.java:48) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.ScopeProviderAccess.getCandidateDescriptions(ScopeProviderAccess.java:142) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.getLinkingCandidates(AbstractTypeComputationState.java:409) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer._computeTypes(XbaseTypeComputer.java:1226) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer.computeTypes(XbaseTypeComputer.java:112) ~[?:?]
	at org.eclipse.smarthome.model.script.jvmmodel.ScriptTypeComputer.computeTypes(ScriptTypeComputer.java:38) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.doComputeTypes(AbstractTypeComputationState.java:121) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.computeTypes(AbstractTypeComputationState.java:109) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer._computeTypes(XbaseTypeComputer.java:491) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.computation.XbaseTypeComputer.computeTypes(XbaseTypeComputer.java:118) ~[?:?]
	at org.eclipse.smarthome.model.script.jvmmodel.ScriptTypeComputer.computeTypes(ScriptTypeComputer.java:38) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.doComputeTypes(AbstractTypeComputationState.java:121) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractTypeComputationState.computeTypes(AbstractTypeComputationState.java:109) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractRootTypeComputationState.computeTypes(AbstractRootTypeComputationState.java:32) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver._computeTypes(LogicalContainerAwareReentrantTypeResolver.java:827) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.computeTypes(LogicalContainerAwareReentrantTypeResolver.java:711) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.computeMemberTypes(LogicalContainerAwareReentrantTypeResolver.java:897) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver._computeTypes(LogicalContainerAwareReentrantTypeResolver.java:886) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.computeTypes(LogicalContainerAwareReentrantTypeResolver.java:705) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.computeTypes(LogicalContainerAwareReentrantTypeResolver.java:697) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver.resolve(DefaultReentrantTypeResolver.java:164) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver.reentrantResolve(DefaultReentrantTypeResolver.java:139) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$LazyResolvedTypes.resolveTypes(CachingBatchTypeResolver.java:80) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$2.process(CachingBatchTypeResolver.java:57) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$2.process(CachingBatchTypeResolver.java:53) ~[?:?]
	at org.eclipse.xtext.util.concurrent.IUnitOfWork$Void.exec(IUnitOfWork.java:37) ~[?:?]
	at org.eclipse.xtext.util.OnChangeEvictingCache.execWithoutCacheClear(OnChangeEvictingCache.java:128) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver.doResolveTypes(CachingBatchTypeResolver.java:53) ~[?:?]
	at org.eclipse.xtext.xbase.typesystem.internal.AbstractBatchTypeResolver.resolveTypes(AbstractBatchTypeResolver.java:69) ~[?:?]
	at org.eclipse.xtext.xbase.resource.BatchLinkingService.resolveBatched(BatchLinkingService.java:60) ~[?:?]
	at org.eclipse.xtext.xbase.resource.BatchLinkingService.resolveBatched(BatchLinkingService.java:41) ~[?:?]
	at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getEObject(BatchLinkableResource.java:117) ~[?:?]
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:223) ~[?:?]
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:203) ~[?:?]
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:259) ~[?:?]
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1477) ~[?:?]
	at org.eclipse.xtext.xbase.impl.XAbstractFeatureCallImplCustom.getFeature(XAbstractFeatureCallImplCustom.java:48) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:857) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]
	at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:81) ~[?:?]
	at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:313) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_252]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_252]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_252]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_252]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
2020-07-16 14:42:28.233 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test': [b]The name 'test2' cannot be resolved to an item or type[/b]; line 6, column 2, length 5
Die Trigger im "when"-Statement funktionieren, auch die shelly-Trigger.
Egal was im "then"-Statement steht, schlägt fehl.

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 14:55
von drevil75
ein Nachtrag:

irgendwie hab ich was falsches bei der Rule im letzten Post kopiert.
Meine aktuelle test.rules sieht so aus.

Code: Alles auswählen

rule "test"

when
        Item test1 changed from OFF to ON
then
        test2.sendCommand(ON)
end

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 15:18
von udo1toni
Wie bearbeitest Du die Dateien?

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 15:27
von drevil75
meistens direkt in der Konsole.
Die aus dem letzten Post habe ich aber mit Visual Studio Code bearbeitet, in der Konsole aber immer wieder verändert.
Korrupte Dateien oder eher das Linefeed hatte ich auch schon im Verdacht. Muss bei den Dateien eine bestimmte Formatierung vorliegen?

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 16:26
von udo1toni
Die Dateien müssen mit UTF-8 codiert sein (NICHT! UTF-8 BOM).

Als Zeilenumbruch sollte LF verwendet werden, aber CR-LF sollte auch funktionieren.

Für Einrückungen sollte man Leerzeichen verwenden (VSCode kann statt <Tab> automatisch 4 Leerzeichen einfügen und die führenden Tabs (zum Zeilenbeginn) auch automatisch umwandeln.

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 16. Jul 2020 16:30
von drevil75
Ok. Probiere ich heute Abend gleich aus und geb Bescheid.

Re: Fehlermeldungen sobald in Rule in then etwas eingetragen wird.

Verfasst: 19. Jul 2020 12:24
von drevil75
Mahlzeit,

ich hab nun alles Mögliche probiert.
Die Dateien komplett neu erstellt, in utf-8, LF, genauestens darauf geachtet, dass die Einrückungen korrekt sind, ohne Erfolg bzw. keiner Änderung.

Da ich ein Docker-Fan bin, hab ich mir fix eine neue Instanz in Docker zum Testen erstellt, funktioniert.
Dieselben Dateien funktionieren dort, ohne Fehlermeldungen zu erzeugen.

Die Ursache für das Ganze weiß ich zwar nun immer noch nicht. Ich sitze nun aber schon Tage an dem Problem und werd jetzt den einfachen Weg mit einer neuen Instanz gehen. Keine Ahnung was an der Installation kaputt ist. Aus der Fehlermeldung werd ich auch nicht wirklich schlau.
Da ich neu in dem Thema war/bin, hab ich am Anfang sehr viel mit den Bindings experimentiert. Evtl. habe ich dabei etwas geschrottet.

Den Thread können wir gerne als 'Solved' schließen.

Vielen Dank für die schnellen Antworten! So geht Forum!
Grüße und einen schönen Sonntag
Mirko