Seite 1 von 1

Lösung: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closure

Verfasst: 26. Jan 2025 08:33
von Lux73
Ich habe mittlerweile viele von diesen [INFO] Meldungen beim starten meines OpenHAB im Logfile:

Code: Alles auswählen

Validation issues found in configuration model 'XXX.rules', using it anyway:
There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures into a typed context.
There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures into a typed context.
There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures into a typed context.
There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures into a typed context.
komischweise NUR bei Updates oder wenn ich openhab-cli clean-cache ausgeführt hatte :?

diese Fehlermeldungen zogen sich mittlerweile durch sehr viele meiner +30 Rules

Letztlich habe ich die Logeinträge immer wieder aus dem Augen verloren bzw. ignoriert weil nach dem zweiten Start keine Fehler mehr aufgetreten sind und alles problemlos lief ^^

Die Forensuche bei openhab.org verlief auch nicht gerade erhellend, u.a. weil der Thread aus 2018/19 viel zu alt war, hat mich aber auf die richtige Spur gebracht :mrgreen:

ich nutze ziemlich viele Gruppenitems wie z.B.:

Code: Alles auswählen

gHue_Bad_Dim.members.filter[ i|i.state != 0 ].forEach[ s|s.sendCommand(0) ]   				- Dimmer
gLicht_WZ.members.filter[ i|i.state != OFF ].forEach[ s|s.sendCommand(OFF) ]				- Switch
gBewegungssensor.members.filter[ i|i.state != 'aktiviert' ].forEach[ s|s.postUpdate('aktiviert') ]	- String
welche funktionieren, aber so eben auch nach löschen des Cache einmalig für diese kruden Logeinträge sorgen

die - ziemlich einfache Lösung - ist dem Befehl jeweils das Item Type innerhalb des Lambdas mitzugeben:

Code: Alles auswählen

gHue_Bad_Dim.members.filter[ NumberItem i|i.state != 0 ].forEach[ NumberItem s|s.sendCommand(0) ]
gLicht_WZ.members.filter[ SwitchItem i|i.state != OFF ].forEach [ SwitchItem s|s.sendCommand(OFF) ]
gBewegungssensor.members.filter[ StringItem i|i.state != 'aktiviert' ].forEach [ StringItem s|s.postUpdate('aktiviert') ]
und schon ist und bleibt das Logfile selbst nach Cache löschen absolut leer 8-)