Seite 1 von 2
[gelöst] OH3-Regelfehler bei Mailversand
Verfasst: 24. Dez 2021 05:32
von scotty
Hallo Community,
die Ausführung einer Mail scheitert bei mir mit der Fehlermeldung
"Script execution of rule with UID 'meineRegel-1' failed: ID segment 'unity-mail.de' contains invalid characters. Each segment of the ID must match the pattern [\w-]*. in meineRegel".
Kann es sein, dass der Bindestrich nicht akzeptiert wird und wie setze ich dann das in der Meldung beschriebene Muster um? Demnach müsste ja auch in der Things-Datei entsprechend korrigiert werden.
Ich habe die Aktion so verstanden, dass die drei Segmente mail:smtp:unity-mail.de übereinstimmen müssen.
Wer kennt sich aus und kann mir weiterhelfen?
Hier der verwendete Code für die Rules:
Code: Alles auswählen
val mailActions = getActions("mail","mail:smtp:unity-mail.de")
val success = mailActions.sendMail("Empfänger", "Betreff", "Text")
Re: OH3-Regelfehler bei Mailversand
Verfasst: 24. Dez 2021 08:42
von bastler
du kannst dort einen beliebigen namen verwenden, zb (natürlich in then things und bei mailactions gleich)
Re: OH3-Regelfehler bei Mailversand
Verfasst: 24. Dez 2021 14:21
von scotty
Den Tipp habe ich befolgt, allerdings kommt jetzt eine andere Fehlermeldung:
Validation issues found in configuration model 'Abendbeleuchtung_ein.rules', using it anyway: The value of the local variable success is not used
Der Mailversand funktioniert so leider noch nicht. Gibt es noch weitere Ideen oder Vorschläge?
Re: OH3-Regelfehler bei Mailversand
Verfasst: 24. Dez 2021 14:33
von bastler
das ist keine fehlermeldung, das sagt nur dass du die variable "success" nicht verwendet hast. die regel sollte trotzdem funktionieren.
ich arbeite nicht mehr mir rules, aber hab in einer alten nachgesehen, hatte da
global ganz am anfang der rules-datei:
Code: Alles auswählen
// Global für email
val mailActions = getActions("mail","mail:smtp:mysmtpmail")
und dann in den rules zb
Code: Alles auswählen
mailActions.sendMail("meine_email_adresse@meine_domain.de","--mein betreff text--", "---mein mail text ---")
Re: OH3-Regelfehler bei Mailversand
Verfasst: 24. Dez 2021 15:09
von scotty
So hab ich es gemacht. Die Funktion scheint allerdings an dem dem Item zu scheitern. ich muss das mal genauer untersuchen.
Re: OH3-Regelfehler bei Mailversand
Verfasst: 25. Dez 2021 11:17
von int5749
Du brauchst die Ergebnisrückmeldung in eine Variable ja nur, wenn Du dir dies dann auch „anschaust“, also zum Beispiel in einem Log Eintrag. Also entweder schreibst Du die success.toString in ein Log, oder lässt es weg. Müsste aber so auch in der Source, wo Du das Code-Schnipsel gefunden hattest verwendet gewesen sein?
Wenn in einer Zeile ein Fehler ist, führt OH diese in der Regel nicht aus, also in diesem Fall => keine Mail
Da dieser Fehler nicht die gesamte rules Datei betrifft, kommt beim speichern: Da ist ein Fehler, aber ich (OH) nutzte die Datei trotzdem.
Probier mal einfach
Viele Grüße
Re: OH3-Regelfehler bei Mailversand
Verfasst: 25. Dez 2021 16:20
von scotty
Frohe Weihnachten!
Dein Vorschlag produziert den Fehler:
Code: Alles auswählen
2021-12-25 16:03:18.901 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'AbendbeleuchtungEin-1' failed: The name 'success' cannot be resolved to an item or type; line 18, column 55, length 7 in AbendbeleuchtungEin
Das Code-Schnipsel habe ich aus den Beispielen der Openhab -Doku bzw. abgeglichen mit dem Beitrag von @Bastler, weiter oben. In der Doku vermisse ich aber auch ein Item-Beispiel für smtp. Irgendwie habe ich da ein Verständnis-Problem. Egal welche Einträge ich auch verändere (things oder rules) eine Mail wird nicht erzeugt. Und die Meldungen in der openhab-log sind auch nicht immer sehr aufschlussreich für mich.
Re: OH3-Regelfehler bei Mailversand
Verfasst: 25. Dez 2021 16:32
von int5749
Dir auch frohe Weihnachten.
Und das weitere Rätselraten zu beenden, poste doch mal bitte die Items und Deine Rule? Evtl. kommen wir dem so auf die Spur.
VG
int5749
Re: OH3-Regelfehler bei Mailversand
Verfasst: 25. Dez 2021 20:09
von scotty
sorry, hat etwas länger gedauert.
things:
Code: Alles auswählen
Thing mail:smtp:samplesmtp [ hostname="smtp.unity-mail.de", sender="sender@unitybox.de", security="SSL", username="benutzername", password="password" ]
Channels werden hier nicht erzeugt.
rules:
Code: Alles auswählen
rule "Abendbeleuchtung einschalten"
when
Item Flag_Abendlicht received command "ON"
then
// logInfo("Flag_Abendlicht", "Abendbeleuchtung wurde eingeschaltet")
SteckerTischlampe.sendCommand(ON)
SteckerTreppe.sendCommand(ON)
FensterlampeRelayOutput0.sendCommand(ON)
Vitrine1RelayOutput0.sendCommand(ON)
tvLeuchteWhiteBrightness0.sendCommand(35)
kugelLeuchteWhiteBrightness0.sendCommand(35)
Flag_Abendlicht.postUpdate("ON")
val mailActions = getActions("mail","mail:smtp:samplesmtp")
val success = mailActions.sendMail("meine@mailadresse.de", "wichtige Meldung", "xyz hat die Abendbeleuchtung eingeschaltet")
// mailActions.sendMail("meine@mailadresse.de", "wichtige Meldung", "xyz hat die Abendbeleuchtung eingeschaltet")
logInfo("Flag_Abendlicht", "Mailactions says -" + success)
end
Bei dem Item Flag_Abendlicht handelt es sich um ein Dummy mit switch.
Re: OH3-Regelfehler bei Mailversand
Verfasst: 25. Dez 2021 20:25
von int5749
Dann versuch einmal entweder
Code: Alles auswählen
logInfo("Flag_Abendlicht", "Mailactions says - " + success.toString)
oder
Code: Alles auswählen
logInfo("Flag_Abendlicht", "Mailactions says - " + success.state.toString)
VG