Seite 5 von 6
Re: Rules
Verfasst: 8. Feb 2019 10:35
von mamoel
Entferne bitte mal die Zeile
und das zugehörige "}"
Dann laufen lassen und das Log dazu posten.
Re: Rules
Verfasst: 8. Feb 2019 10:50
von peter-pan
Hallo Matze,
das Item in deinem . items -File heisst String Luft_Wohnzimmer "Luftfeuchtigkeit Wohnzimmer", in der Sitemap hast du es aber als Luft_Wohzimmer definiert. Da fehlt das "n".
Das andere schauen wir dann mal, wenn du den Log postest.
Gruss - Peter
Re: Rules
Verfasst: 8. Feb 2019 14:14
von matze.lingen
mamoel hat geschrieben: ↑8. Feb 2019 10:35
Entferne bitte mal die Zeile
und das zugehörige "}"
Dann laufen lassen und das Log dazu posten.
Hier die Log ausgabe nach der Änderung:
Code: Alles auswählen
2019-02-08 14:04:31.042 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'default.sitemap'
2019-02-08 14:06:40.245 [INFO ] [.eclipse.smarthome.model.script.bot1] - Temperaturänderung erkannt.
2019-02-08 14:06:40.246 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Stal_rule': An error occurred during the script execution: index=1, size=1
2019-02-08 14:07:33.892 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'default.rules'
2019-02-08 14:11:29.703 [INFO ] [.eclipse.smarthome.model.script.bot1] - Temperaturänderung erkannt.
2019-02-08 14:11:29.704 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Stal_rule': An error occurred during the script execution: index=1, size=1
Re: Rules
Verfasst: 8. Feb 2019 14:38
von mamoel
Die Ferndiagnose gestaltet sich schwieriger als gedacht...
Nur um sicher zu gehen - ändere bitte mal die zwei entsprechenden zwei Zeilen auf
Code: Alles auswählen
val Number nTemp = Stall_Temp.state as Number
val Number nTempPrev = previousState as Number
Anschließend bitte wieder den passenden Logfile-Auszug posten.
Re: Rules
Verfasst: 8. Feb 2019 20:34
von peter-pan
Hallo Matze,
bitte probiere mal Folgendes. Bitte speichere die nachstehendene Rule mal in deinem Rules -Ordner.
Code: Alles auswählen
rule "Temp_Stal_y_rule"
when
Item Stall_Temp changed
then
var Number nTemp = Stall_Temp.state as Number
var Number nTempPrev = previousState as Number
logInfo("bot6", "Neuer Wert: " + nTemp)
logInfo("bot6", "Letzter Wert: " + nTempPrev)
if(Stall_Temp.state instanceof Number) {
logInfo("bot6","Temperaturstatus ist vom Typ Number.") //ist das nicht der Fall, wird auch nichts ausgeführt
/*
if(nTemp <= -10 && nTempPrev > -10) {
logInfo("bot6", "Temperatur unter -10")
//sendTelegram("bot6", "Stall Temperatur ist nun {}",nTemp)
return;
}
if(nTemp <= -5 && nTempPrev > -5) {
logInfo("bot6", "Temperatur unter -5")
//sendTelegram("bot6", "Stall Temperatur ist nun {}",nTemp)
return;
}
if(nTemp <= 0 && nTempPrev > 0) {
logInfo("bot6", "Temperatur unter 0")
//sendTelegram("bot6", "Stall Temperatur ist nun {}",nTemp)
return;
}
*/
}
else logInfo("bot6","Da stimmt was nicht.")
end
Der innere If-Teil ist hier auskommentiert. Es sollte also nur die ersten drei Logs. in deinem Logger ausgegeben werden.
Am besten speicherst du diese Rule unter einem neuen Namen (z.B. bot6.rules) ab. Dann solltest auch in frontail (logger) bei Filter (oben rechts ) nur die relevanten Informationen bekommen, wenn du hier
bot6 eingibst. Es sollten dann alle Änderungen die dein item
Stall_Temp macht, auch in der Rule protokolliert werden.
Gruss -Peter
P.S. Die Meldung mit dem
Luft_Wohzimmer sollte jetzt auch weg sein, oder ?
Re: Rules
Verfasst: 9. Feb 2019 07:51
von matze.lingen
So ich hab nun beides gemacht, einmal eine neue Rule hinzugefügt mit den infos von Peter-Pan und die Werte angepasst wie mamoel es wollte das Ergebnis nach einem Temperatur Update ist:
Code: Alles auswählen
2019-02-09 07:42:46.425 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'default.rules'
peter-pan hat geschrieben: ↑8. Feb 2019 20:34
P.S. Die Meldung mit dem
Luft_Wohzimmer sollte jetzt auch weg sein, oder ?
Ja das entfernen meines dämlichen Rechtschreibfehlers hat den Fehler im Log beseitigt

Habe dabei noch einen 2ten gefunden und nun lässt sich sogar mein Rollo im Wohnzimmer bedienen
Edit:
Nun ist doch noch mehr passiert:
Code: Alles auswählen
2019-02-09 07:42:46.425 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'default.rules'
2019-02-09 07:55:54.240 [INFO ] [.eclipse.smarthome.model.script.bot1] - Temperaturänderung erkannt.
2019-02-09 07:55:54.242 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Stal_rule': An error occurred during the script execution: index=1, size=1
2019-02-09 07:55:54.243 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 7.20
2019-02-09 07:55:54.244 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 7.30
2019-02-09 07:55:54.246 [INFO ] [.eclipse.smarthome.model.script.bot6] - Temperaturstatus ist vom Typ Number.
2019-02-09 08:13:31.766 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'samsungtv:tv:0ee6b280_00fa_1000_8f62_5cf6dc46b39a' to inbox.
2019-02-09 08:15:14.634 [INFO ] [.eclipse.smarthome.model.script.bot1] - Temperaturänderung erkannt.
2019-02-09 08:15:14.684 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Stal_rule': An error occurred during the script execution: index=1, size=1
2019-02-09 08:15:14.684 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 7.10
2019-02-09 08:15:14.689 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 7.20
Gruß
Matze
Re: Rules
Verfasst: 9. Feb 2019 11:18
von peter-pan
Hallo Matze,
lässt du deine Rules (die, die das Item Stall_Temp triggern) gleichzeitig laufen ? Wenn ja, bitte mal eine stoppen und checken, bei welcher der Fehler
[ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Temp_Stal_rule': An error occurred during the script execution: index=1, size=1
gemeldet wird.
Gruss Peter
Re: Rules
Verfasst: 9. Feb 2019 12:08
von matze.lingen
peter-pan hat geschrieben: ↑9. Feb 2019 11:18
Hallo Matze,
lässt du deine Rules (die, die das Item Stall_Temp triggern) gleichzeitig laufen ? Wenn ja, bitte mal eine stoppen und checken, bei welcher der Fehler
gemeldet wird.
Gruss Peter
Habe jetzt nur deine Regel drin die andere ist aus.
Code: Alles auswählen
2019-02-09 11:22:01.459 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'default.rules'
2019-02-09 11:44:23.393 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 8.20
2019-02-09 11:44:23.394 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 8.10
2019-02-09 11:44:23.395 [INFO ] [.eclipse.smarthome.model.script.bot6] - Temperaturstatus ist vom Typ Number.
2019-02-09 11:49:13.825 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 8.30
2019-02-09 11:49:13.826 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 8.20
2019-02-09 11:49:13.828 [INFO ] [.eclipse.smarthome.model.script.bot6] - Temperaturstatus ist vom Typ Number.
2019-02-09 11:54:06.193 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 8.40
2019-02-09 11:54:06.194 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 8.30
2019-02-09 11:54:06.195 [INFO ] [.eclipse.smarthome.model.script.bot6] - Temperaturstatus ist vom Typ Number.
Ist wohl irgendwas an der Regel. Deine läuft.
Re: Rules
Verfasst: 9. Feb 2019 13:02
von mamoel
Sieht doch gut aus. Jetzt würde ich den auskommentierten Bereich wieder dazu nehmen. Also das /* und das */ wieder entfernen.
Re: Rules
Verfasst: 9. Feb 2019 13:09
von peter-pan
Hallo Matze,
das hab ich mir fast gedacht, da dein Item Stall_Temp als Number deklariert ist und nicht als Quantity. Allerdings kriege ich mit einem "instanceof Quantity<T>" auch immer so komische Meldungen, selbst wenn ich das Item als solches (z.B Number:Temperature) deklariert habe.
So jetzt kannst du ja langsam deine Rule wieder "frei lassen" und die ersten zwei Auskommentierungen (/* u. */) wieder rausnehmen. Dann sind die "inneren
If's wieder aktiv. Allerdings sind dann immer noch die Telegramme auskommentiert.
Ich habe bei den If's mit "return" gearbeitet, aber das muss so nicht unbedingt sein. Wenn du die Logs
Code: Alles auswählen
2019-02-09 11:44:23.393 [INFO ] [.eclipse.smarthome.model.script.bot6] - Neuer Wert: 8.20
2019-02-09 11:44:23.394 [INFO ] [.eclipse.smarthome.model.script.bot6] - Letzter Wert: 8.10
2019-02-09 11:44:23.395 [INFO ] [.eclipse.smarthome.model.script.bot6] - Temperaturstatus ist vom Typ Number.
nicht mehr brauchst, einfach auskommentieren.
So jetzt ist natürlich deine Kreativität, bzw. deine Wünsche, wie diese If's funktionieren sollen gefragt. Da nur du weisst, was da genau rauskommen soll.
Viel Spass noch
Gruss - Peter
P.S. Hab grad gesehen, das @mamoel dir bereits gepostet hat.