Seite 1 von 1

Systemstart rule triggert alle paar Minuten

Verfasst: 5. Okt 2020 22:56
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

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 6. Okt 2020 20:49
von BO80
Der Log Viewer zeigt sonst keine Fehler an, welche auf einen Neustart hindeuten könnte...

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 13:29
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)

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 13:55
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


Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 15:58
von udo1toni
Gar nicht... finde heraus, was den falschen Trigger auslöst.

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 16:18
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?

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 17:19
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?

Re: Systemstart rule triggert alle paar Minuten

Verfasst: 7. Okt 2020 17:28
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)