Systemstart rule triggert alle paar Minuten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
BO80
Beiträge: 37
Registriert: 18. Mär 2019 07:47
Answers: 0

Systemstart rule triggert alle paar Minuten

Beitrag von BO80 »

Hallo Zusammen,
ich hab mal wieder ein Problem entdeckt.
Meine Systemstart Rule welche bestimmte Werte setzt und Relais schaltet triggert alle paar Minuten, was ich im Log Viewer sehen kann.
Hat jemand vielleicht eine Idee woran das liegt, ansonsten läuft alles stabil.



Code: Alles auswählen

var Timer tsystem = null

rule "Systemstarted"


when

  System started
    
then
logInfo("Systemstart", "Rule triggert")

tsystem = createTimer(now.plusMinutes(1), [ |


  channel1.sendCommand(OFF)     //  Brenner Freigabe
  channel2.sendCommand(OFF)     //  Speicher Ladepumpe
  channel3.sendCommand(OFF)     //  Umschaltventil
  channel4.sendCommand(ON)     //  Zirkulation
  channel5.sendCommand(OFF)     //  Solarmumpe
  channel6.sendCommand(OFF) 
  channel7.sendCommand(OFF) 



  Abgasmessung.sendCommand(OFF)
  Sommerbetrieb.sendCommand(OFF)
  Heizung_freigabe.sendCommand(OFF)

 

  if (Untere_Schalttemperatur_Oelheizung.state == NULL || Untere_Schalttemperatur_Oelheizung.state == "") Untere_Schalttemperatur_Oelheizung.postUpdate(35)
  if (Obere_Schalttemperatur_Oelheizung.state == NULL || Obere_Schalttemperatur_Oelheizung.state == "") Obere_Schalttemperatur_Oelheizung.postUpdate(60)
  if (min_Umschalttemperatur_Ventil.state == NULL || min_Umschalttemperatur_Ventil.state == "") 
  min_Umschalttemperatur_Ventil.postUpdate(60)


  ]) 
end

BO80
Beiträge: 37
Registriert: 18. Mär 2019 07:47
Answers: 0

Re: Systemstart rule triggert alle paar Minuten

Beitrag von BO80 »

Der Log Viewer zeigt sonst keine Fehler an, welche auf einen Neustart hindeuten könnte...

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Systemstart rule triggert alle paar Minuten

Beitrag von udo1toni »

Also, mal abgesehen von der eigenwilligen Formatierung :) bedeutet "System started" nicht, dass das System neu gestartet ist, sondern, dass das rules-File neu geladen wurde. Das passiert nicht nur bei Änderungen an der Datei, es reicht schon, dass der Datumsstempel der Datei verändert wird.

Es ist also die Frage, was sonst noch so auf dem System passiert.

Das Setzen der Number Items solltest Du besser etwas anders formulieren:

Code: Alles auswählen

        if(!(Untere_Schalttemperatur_Oelheizung.state instanceof Number)) 
            Untere_Schalttemperatur_Oelheizung.postUpdate(35)
        if(!(Obere_Schalttemperatur_Oelheizung.state instanceof Number))
            Obere_Schalttemperatur_Oelheizung.postUpdate(60)
        if(!(min_Umschalttemperatur_Ventil.state instanceof Number)) 
            min_Umschalttemperatur_Ventil.postUpdate(60)
instanceof ist wahr, wenn der erste Parameter Teil des zweiten Parameters ist. Das Negieren muss für den Boolean Wert geschehen, weshalb hier Klammern vonnöten sind. Dafür werden aber alle ungültigen Werte abgefangen (z.B. auch UNDEV)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

BO80
Beiträge: 37
Registriert: 18. Mär 2019 07:47
Answers: 0

Re: Systemstart rule triggert alle paar Minuten

Beitrag von BO80 »

Danke für die Info, das werde ich auf jedenfall umsetzten!
Aber wie bekomme ich die rule dazu nur bei einem System Start zu triggern?

Gesendet von meinem ELE-L29 mit Tapatalk


Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Systemstart rule triggert alle paar Minuten

Beitrag von udo1toni »

Gar nicht... finde heraus, was den falschen Trigger auslöst.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

BO80
Beiträge: 37
Registriert: 18. Mär 2019 07:47
Answers: 0

Re: Systemstart rule triggert alle paar Minuten

Beitrag von BO80 »

Welche funktion hat den das "!" ?

Code: Alles auswählen

if(!(Untere_Schalttemperatur_Oelheizung.state instanceof Number)) 
            Untere_Schalttemperatur_Oelheizung.postUpdate(35)
Welche Möglichkeit gibt es denn außer der Log Info um den Trigger zu finden?
bin gerade etwas Ratlos wo ich da ansetzen soll?

Tokamak
Beiträge: 183
Registriert: 20. Aug 2019 08:37
Answers: 4
Wohnort: Aachen

Re: Systemstart rule triggert alle paar Minuten

Beitrag von Tokamak »

Wie Udo schon schrieb, wird die Rules-Datei neu gelesen, wenn sich der Zeitpunkt der letzten Änderung ändert. Das triggert "System started".
Beoabachte daher den Datumsstempel der betreffenden Rules-Datei.

Dann wird das System Started-Ereignis auch ausgelöst, wenn sich Items ändern. Das ist meiner Erfahrung nach nicht immer ganz sauber, soll heißen, es besteht - zumindest für mich - kein klarer Zusammenhang zwischen den Items und den Rules-Dateien, bei denen dann "System Started" ausgelöst wird.

Wenn du häufig die Items-Dateien änderst, kann das auch eine Ursache sein.

Zudem ist OH nicht frei von Fehlern. Hast du mal nachgesehen, ob ein Restart von OH das Problem löst?
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Systemstart rule triggert alle paar Minuten

Beitrag von udo1toni »

logInfo erzeugt lediglich eine Logmeldung. Was den Trigger ausgelöst hat, erfährst Du dadurch nicht. Das ! bedeutet "NICHT". Es macht als aus true false und umgekehrt.
Schau in Deine Logs, ob (aus welchem Grund auch immer) die Datei, in der die Rule gespeichert ist, regelmäßig neu geladen wird, oder ob es sonst Ereignisse gibt, welche System started nach sich ziehen könnten (z.B. Änderungen an Items)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten