Seite 2 von 2
Re: Denkfehler
Verfasst: 21. Jun 2021 19:04
von Snatsch
Passiert irgendwie auch nichts
Code: Alles auswählen
rule "Betriebsdruck Heizung"
when Item heatQuellen_systemPressure changed
then
if ((heatQuellen_systemPressure.state as Number).floatValue < 1.5) {
logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! ")
Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")
}
end
Re: Denkfehler
Verfasst: 21. Jun 2021 19:10
von Snatsch
jetzt habe ich es so gemacht wie @KellerK1nd es geschrieben hat und bekomme im Log die Meldung "Validation issues found in configuration model 'Heizung_Warnung_wenig_Druck.rules', using it anyway:"
Re: Denkfehler
Verfasst: 21. Jun 2021 19:14
von peter-pan
...so jetzt bauen wir noch ein Log ein. Due hast doch einen LogViewer (frontail) oder ?
Code: Alles auswählen
rule "Betriebsdruck Heizung"
when Item heatQuellen_systemPressure changed
then
logInfo("Heizung", "Rule triggert ! Wert : {} ", heatQuellen_systemPressure.state )
if ((heatQuellen_systemPressure.state as Number).floatValue < 1.5) {
logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! ")
Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")
}
end
Dann muss eine Info im Log kommen, wenn sich der Status ändert, egal wie sich der Status ändert.
Re: Denkfehler
Verfasst: 21. Jun 2021 19:36
von Snatsch

Der Status wird sich ja jetzt nicht ändern. Sonnst müsste ich aus der Heizung ja Wasser ablassen.
Der Wert ist ja jetzt schon bei 1,3 also müsste die Rule doch gleich auslösen wenn ich sie aktiviere oder ?
Re: Denkfehler
Verfasst: 21. Jun 2021 19:38
von Snatsch
ist eventuell das when falsch ? weil es ändert sich ja nichts
Re: Denkfehler
Verfasst: 21. Jun 2021 20:15
von peter-pan
...also die Regel trigger normalerweise nur, wenn sich der Status des triggernden Items ändert, dass wird wahrscheinlich der Grund dafür sein, dass die Rule auch nicht triggert. Nun gibt es zwei Möglihkeiten, die Rule zum Triggern zu bewegen.
Ein Weg wäre ein Dummy-Switch-Item anzulegen und diese Item als zusätzlichen Trigger zu verwenden.
Die zweite Möglichkeit ist in der MainUI unter "Einstellungen -> Rules" nach der Regel "Betriebsdruck Heizung" zu schauen. Die klickst du an und siehst dann unten links den Button "Run Now (Ctrl-R). Auf den klickst du, dann sollte deine Rule auch anlaufen.
Hier nochmal die Regel:
Code: Alles auswählen
rule "Betriebsdruck Heizung"
when
Item heatQuellen_systemPressure changed
then
logInfo("Heizung", "Rule triggert ! Wert : {} ", heatQuellen_systemPressure.state )
if(!(heatQuellen_systemPressure.state instanceof Number)) {
logWarn("Betriebsdruck.Heizung", "liefert keinen gültigen Zahlenwert")
return;
}
if((heatQuellen_systemPressure.state as Number).floatValue < 1.5) {
logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! ")
Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")
}
end
Ich habe die erste If-Anweisung nochmal in geschweifte Klammern gesetzt.
Re: Denkfehler
Verfasst: 21. Jun 2021 20:49
von Snatsch
ja die Rule wird getriggert. Im Log steht
2021-06-21 20:45:47.249 [INFO ] [rg.openhab.core.model.script.Heizung] - Rule triggert ! Wert : 1.2
2021-06-21 20:45:47.259 [INFO ] [rg.openhab.core.model.script.Heizung] - Achtung in der Heizung muß Wasser aufgefüllt werden !
vielen Dank für euere Hilfe, denn ohne die wäre ich aufgeschmissen

Re: Denkfehler
Verfasst: 21. Jun 2021 20:59
von peter-pan

. freut mich, dass es jetzt klappt. Die "logInfos" kannst du ja rausschmeissen, wenn du merkst, dass die Rule richtig triggert und sie dich stören.
Re: Denkfehler
Verfasst: 21. Jun 2021 21:14
von Snatsch
stört mich nicht

denn so oft sollte die Rule eigentlich nicht getriggert werden

oder ich habe ein Loch in der Heizung
