Seite 1 von 1

Probleme rules

Verfasst: 17. Jan 2018 11:53
von Hille
Ich möchte, beim Überschreiten einer bestimmten Temperatur, ein Mail versenden (die Temperatur wird korrekt in der Sitemap angezeigt).

Code: Alles auswählen

rule "Temp_Mail"
when
    Item Temp_Mail changed

then
var State = Temp_Mail.state as DecimalType
if (State >= 20) {
  sendMail("mail.domain.tld","Temperatur wurde überschritten")
}
end
Hier noch das item

Code: Alles auswählen

String Temp_Mail "Temperatur [%s °C]" {channel="exec:command:temp_mail:output"}
Nun erhalte ich folgende Meldung im Log

Code: Alles auswählen

[ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Mail': Could not cast 25 to org.eclipse.smarthome.core.library.types.DecimalType; line 8, column 13, length 30
Vermutlich, weil das item als String definiert wurde. Wie müsste ich nun die rules ändern?

Re: Probleme rules

Verfasst: 17. Jan 2018 12:31
von hr3

Re: Probleme rules

Verfasst: 17. Jan 2018 12:41
von Hille
Ich habe das in den rules und item angepasst. Leider bekomme ich nun keine Ausgabe der Temperatur mehr

Code: Alles auswählen

Number Temp_Mail "Temperatur [%.0f °C]" {channel="exec:command:temp_mail:output"}

Re: Probleme rules

Verfasst: 17. Jan 2018 12:58
von hr3
Gemeint ist nur die Zeile in rules nicht das Item.

Re: Probleme rules

Verfasst: 17. Jan 2018 13:38
von Hille
hr3 hat geschrieben: 17. Jan 2018 12:58 Gemeint ist nur die Zeile in rules nicht das Item.
Hatte ich falsch verstanden, habe es geändert. Nun kommt folgende Meldung

Code: Alles auswählen

[ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Mail': Could not cast 27 to java.lang.Number; line 7, column 13, length 25

Re: Probleme rules

Verfasst: 17. Jan 2018 14:53
von hr3
das funktioniert bei mir

Code: Alles auswählen

val State = Integer::parseInt(Temp_Mail.state.toString)

Re: Probleme rules

Verfasst: 17. Jan 2018 15:35
von Hille
Habe ich geändert. Nun sieht die rule so aus

Code: Alles auswählen

rule "Temp_Mail"
when
    Item Temp_Mail changed

then

val State = Integer::parseInt(Temp_Mail.state.toString)
if (State >= 20) {
  sendMail("mail@domain.tld","Temperatur wurde überschritten")
}
end
Folgende Meldung ist nun im Log

Code: Alles auswählen

Rule 'Temp_Mail': An error occurred during the script execution: index=2, size=2
P.S. kurze Ergänzung, nach einem Reboot kommt diese Meldung

Code: Alles auswählen

The name 'sendMail' cannot be resolved to an item or type

Re: Probleme rules

Verfasst: 17. Jan 2018 16:46
von Hille
Habe es nun hinbekommen. Die Konfiguration der mail.cfg hat gefehlt. Danke nochmal für die Unterstützung.