Code: Alles auswählen
logInfo("pwm","Heizphase: {} Länge: {} Sekunden",sHeiz,nTime)
Code: Alles auswählen
logInfo("pwm","Heizphase: {} Länge: {} Sekunden",sHeiz,nTime)
Code: Alles auswählen
2019-12-06 16:41:19.397 [INFO ] [lipse.smarthome.model.script.heizung] - Komfort
2019-12-06 16:41:19.408 [INFO ] [lipse.smarthome.model.script.heizung] - Komfort
2019-12-06 16:41:19.478 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Timer wird ausgeführt!
2019-12-06 16:41:19.483 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Pulsphase: true
2019-12-06 16:41:19.489 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Pulslänge: 0
2019-12-06 16:41:19.494 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Heizphase: OFF Länge: 600 Sekunden
Code: Alles auswählen
2019-12-06 16:50:30.144 [INFO ] [lipse.smarthome.model.script.heizung] - Komfort
2019-12-06 16:51:19.502 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Timer wird ausgeführt!
2019-12-06 16:51:19.511 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Pulsphase: false
2019-12-06 16:51:19.523 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Pulslänge: 30
2019-12-06 16:51:19.537 [INFO ] [g.eclipse.smarthome.model.script.pwm] - Heizphase: OFF Länge: 420 Sekunden
2019-12-06 16:51:19.546 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2019-12-06T16:41:19.475+01:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
Code: Alles auswählen
//---------------------------------------------------
// Heizung Esszimmer
//---------------------------------------------------
// Globale Variablen werden zu Beginn der Datei definiert
var Boolean bOn_HE = false //
var Number nPWM = 0 // ON in %
rule "Init Heizung"
when
System started or
Time cron "0 00 21 * * ?"
then
Heizung_E_Soll.postUpdate(21.0)
Heizung_E_Soll_N.postUpdate(18.0)
end
//----------------------------------------------------
//Essimmer Einschaltbedingung über Zeit
//----------------------------------------------------
rule "Heizung Tag"
when
Time cron "0 45 5 ? * MON-FRI" or // Werktags 05:45:00 Uhr
Time cron "0 0 8 ? * SAT-SUN" // Wochenende 08:00:00 Uhr
then
HeizungMode.postUpdate(ON) //Heizung Tag an wenn ON Komfort
end
rule "Heizung Nacht"
when
Time cron "0 0 20 * * ?" // Täglich 20:00:00 Uhr
then
HeizungMode.postUpdate(OFF) //Heizung Nacht an wenn OFF
end
//----------------------------------------------------
//Esszimmer Soll/ist Vergleich Temperatur und setzen von Puls Variablen
//----------------------------------------------------
rule "Heizung WZ Ist/Soll vergleich"
when
Item Sonoff86Temp changed or // Istwert Temp
Item Heizung_E_Soll changed or // Sollwert Heizung
Item Heizung_E_Soll_N changed or // Sollwert Nacht Heizung
Item HeizungMode changed
then
val Number wtsi_E = (Sonoff86Temp.state as Number).doubleValue // Temperatur Ist
var Number nSoll = (Heizung_E_Soll_N.state as Number).doubleValue // erstmal Temperatur Soll Nacht setzen
if(HeizungMode.state == ON) {
logInfo("heizung", "Komfort")
nSoll = (Heizung_E_Soll.state as Number ).doubleValue // Falls Komfort, Temperatur Soll Tag setzen
}
nPWM = 0 // erst mal PWM 0
if(wtsi_E < nSoll) nPWM = 0 // Ist > Soll minus 0,5 bis Soll
if(wtsi_E < nSoll - 0.5) nPWM = 50 // Ist => Soll minus 0,5 - 1 Grad
if(wtsi_E < nSoll -1 ) nPWM = 100 // ansonsten
end
//------------------------------------------------------------------
// Stuerung Heizungsventil
//------------------------------------------------------------------
rule "Ventil Esszimmer"
when
(nPWM = 0) or
(nPWM = 50) or
(nPWm =100) and
(bOn_HE = false) //Variable
then
sendCommand (Heizung_E, ON) // erstmal Heizung an
if(nPWM = 0) // Heizung aus bei Wert 0
{logInfo("Heizung", "Aus")
sendCommand (Heizung_E, OFF)
}
if(nPWM =50)
{logInfo("Heizung", "50%") // Heizung 50%
tP5?.cancel // falls Timer bereits vorhanden, entfernen
tP5 = createTimer(now.plusSeconds(300) // Timer 5min
sendCommand (Heizung_E, OFF) // Heizung aus
bOn_HE = true // Variabel setzen
}
if(bOn_HE = true)
{logInfo("Heizung", "Aus 5min")
tP55?.cancel // falls Timer bereits vorhanden, entfernen
tP55 = createTimer(now.plusSeconds(300)
bOn_HE = false // Variable rücksetzen
}
end
Code: Alles auswählen
2019-12-15 12:29:31.027 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'E_heizung copy.rules' has errors, therefore ignoring it: [63,5]: no viable alternative at input '('
[64,5]: no viable alternative at input '('
[65,5]: no viable alternative at input '('
[77,6]: missing ')' at 'sendCommand'
[84,6]: missing ')' at 'bOn_HE'
Code: Alles auswählen
when
(nPWM = 0) or
(nPWM = 50) or
(nPWm =100) and
(bOn_HE = false) //Variable
then
Okay hab das aufpeter-pan hat geschrieben: ↑15. Dez 2019 13:48 Schau dir mal die Trigger-Bedingungen hier an:das wird nicht funktionieren.Code: Alles auswählen
when (nPWM = 0) or (nPWM = 50) or (nPWm =100) and (bOn_HE = false) //Variable then
rule "Ventil Esszimmer"
when
Item Sonoff86Temp changed
then
Code: Alles auswählen
//------------------------------------------------------------------
rule "Ventil Esszimmer"
when
Item Sonoff86Temp changed // Temperatur hat sich geändert
then
sendCommand (Heizung_E, ON) // erstmal Heizung an
if(nPWM = 0) // Heizung aus bei Wert 0
{logInfo("Heizung", "Aus")
sendCommand (Heizung_E, OFF)
}
if(nPWM =50) and (bOn_HE = false)
{logInfo("Heizung", "50%") // Heizung 50%
tP5?.cancel // falls Timer bereits vorhanden, entfernen
tP5 = createTimer(now.plusSeconds(300)) // Timer 5min
sendCommand (Heizung_E, OFF) // Heizung aus
bOn_HE = true // Variabel setzen
}
if(bOn_HE = true)
{logInfo("Heizung", "Aus 5min")
tP55?.cancel // falls Timer bereits vorhanden, entfernen
tP55 = createTimer(now.plusSeconds(300))
bOn_HE = false // Variable rücksetzen
}
habs gerade geändert
Code: Alles auswählen
==> /var/log/openhab2/openhab.log <==
2019-12-15 15:14:35.320 [INFO ] [lipse.smarthome.model.script.Heizung] - 50%
2019-12-15 15:14:35.325 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Ventil Esszimmer': An error occurred during the script execution: index=1, size=1
Code: Alles auswählen
{logInfo("Heizung", "50%") // Heizung 50%