udo1toni hat geschrieben: ↑11. Aug 2023 17:20
ja, da fehlt ein val...
Die Anführungszeichen hingegen sind Quatsch. strName+" fertig!!!" ist das Gleiche wie ""+strName+" fertig!!!", denn "" ist ein leerer String, an den ein anderer String angehängt wird (mittels +). Somit ist der zweite String das Ergebnis dieser Verkettung, denn der erste String ist ja nun mal leer.
Irgendwie ist aber das val vor der Zuweisung der lokalen Konstante mailAction flöten gegangen, es muss
val mailAction = getActions("mail","mail:smtp:mailprovider")
heißen.
Guten Morgen,
ja das mit den Anführungszeichen hatte ich mir schon gedacht - hatte ja auch nicht funktioniert
Das fehlende 'val' hätte ich wohl nie gesehen
Vielen Dank für deine kompetente Hilfe
Wenn ich nochmal Fragen darf - wieso muss im vorletzten Codeblock 'strName' nochmals definiert werden? das wurde doch zuvor schon erledigt...? Wo ist da mein Denkfehler?
strName ist eine lokale Variable. (die heißt dann non final)
Die von Dir vermutlich gemeinte Stelle im Code befindet sich innerhalb eines Lambdas.
Gewöhnlich ist es nicht möglich, innerhalb eines Lambdas auf non-finale Variablen von außerhalb des Lambdas zuzugreifen.
Es gibt Ausnahmen von dieser Regel, ich bin mir aber an dieser Stelle nicht sicher, wie sich openHAB hier verhält. Letztlich sind es drei Zeilen Code die nicht weh tun, aber sicherstellen, dass die Rule sich wie gewünscht verhält (hoffentlich...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet