Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.
Moderatoren: seppy , udo1toni
Hille
Beiträge: 49 Registriert: 2. Jan 2018 13:59
Answers: 0
Beitrag
von Hille » 17. Jan 2018 11:53
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?
hr3
Beiträge: 210 Registriert: 23. Mai 2017 21:41
Answers: 0
Beitrag
von hr3 » 17. Jan 2018 12:31
Hille
Beiträge: 49 Registriert: 2. Jan 2018 13:59
Answers: 0
Beitrag
von Hille » 17. Jan 2018 12:41
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"}
hr3
Beiträge: 210 Registriert: 23. Mai 2017 21:41
Answers: 0
Beitrag
von hr3 » 17. Jan 2018 12:58
Gemeint ist nur die Zeile in rules nicht das Item.
Hille
Beiträge: 49 Registriert: 2. Jan 2018 13:59
Answers: 0
Beitrag
von Hille » 17. Jan 2018 13:38
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
hr3
Beiträge: 210 Registriert: 23. Mai 2017 21:41
Answers: 0
Beitrag
von hr3 » 17. Jan 2018 14:53
das funktioniert bei mir
Code: Alles auswählen
val State = Integer::parseInt(Temp_Mail.state.toString)
Hille
Beiträge: 49 Registriert: 2. Jan 2018 13:59
Answers: 0
Beitrag
von Hille » 17. Jan 2018 15:35
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
Hille
Beiträge: 49 Registriert: 2. Jan 2018 13:59
Answers: 0
Beitrag
von Hille » 17. Jan 2018 16:46
Habe es nun hinbekommen. Die Konfiguration der mail.cfg hat gefehlt. Danke nochmal für die Unterstützung.