Seite 2 von 2

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 8. Feb 2026 02:44
von udo1toni
Ah. Eventuell ist das eigentliche Problem, dass das Group Item zu Beginn noch nicht fertig initialisiert ist.
Doof, es scheint da ein Timing-Problem zu geben.

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 8. Feb 2026 19:38
von TomW80
Und was kann ich dagegen tun?
Kann ich die Rule verzögert aktivieren?

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 9. Feb 2026 10:57
von udo1toni
Es gäbe die Möglichkeit, die Datei, in der die Rule liegt umzubenennen und erst nach dem Systemstart (durch ein Script auf Betriebssystemebene) auf den "korrekten" Namen zu setzen (also die Dateiendung auf .rules ändern)
Das ist allerdings nicht wirklich schön... Ob das hilft, kann man aber leicht im Vorfeld testen, also Datei umbenennen (z.B. meine.rules.off), openHAB (neu-) starten, einen Moment abwarten, bis das System normal läuft, Datei umbenennen (im Beispiel nach meine.rules). Funktioniert das sauber, kann man im systemd Service ein prestart script verankern, welches die Datei abschaltet und in openHAB selbst ein script einrichten, welches nach Systemstart die Datei aktiviert.

Absurde Idee: Wie hast Du das Group Item definiert? Eventuell könnte es helfen, das Group Item zu löschen und neu zu erzeugen. Aber das ist ein Stück weit Stochern im Nebel.

Ich würde ja auf das englische Forum verweisen, befürchte aber, dass von dort vor allem der Rat kommen wird, die Rule in JavaScript oder einer anderen Scriptsprache zu programmieren (was natürlich ein gangbarer Weg ist, aber auch nicht wirklich zufriedenstellend).

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 9. Feb 2026 21:43
von TomW80
Ich versuche es mal im englischen Forum.

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 10. Feb 2026 09:53
von udo1toni
Witzigerweise ist der "Fehler" gerade gestern bei mir aufgetreten, und zwar ebenfalls nach einem Neustart (im Zusammenhang mit dem Update auf OH 5.1.2). Allerdings reichte es bei mir aus, openHAB einmalig neu zu starten, beim Neustart war der Fehler wieder weg.
Also, recht eindeutig ein Timing Problem. Nun wäre vor allem die Frage, warum der Fehler bei Dir persistiert :)

Re: There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures in

Verfasst: 14. Feb 2026 11:12
von TomW80
Hier nun die Lösung -> https://community.openhab.org/t/new-err ... /167918/13

Code: Alles auswählen

if(Temperaturen_all.members.exists[it.state as Number <= minTemp] && nNotifications == 0)
    {    
        nNotifications = 1

        if(now.hour >= 22 || now.hour < 7)                               // keine Nachricht zwischen 22 Uhr und 07 Uhr versenden
            logInfo("Raumtemperatur","Nachricht nicht gesendet, da es Nacht ist")
        else if(Kontakte.state as Number == 0)
            logInfo("Raumtemperatur","Nachricht nicht gesendet, da kein Fenster mehr offen ist")
        else
            Temperaturen_all.members.forEach[
              val tempvalue = it.state as Number
              if (tempValue <= minTemp) return;
              meldeText = 'Die Temperatur im Raum ' + it.name.replaceAll('KG_','Kellergeschoß_').replaceAll('EG_','Erdgeschoß ').replaceAll('OG_','Obergeschoß ').replaceAll('_Temp',' ').replaceAll('Kind2_XTemp','Theo ').replaceAll('SpeisXTemp','Speis ') + 'ist kleiner als ' + minTemp.toString + ' °C! Aktuell: ' + tempvalue.toString + ' °C'
              val actions = getActions("pushover", "pushover:pushover-account:***")         //Pushover
              actions.sendMessage("Information", meldeText)
            ]
        tFenstertemp = createTimer(now.plusMinutes(15)) [ nNotifications = 0 ]
    }