ich verwende seit neustem openhab für meine Hausautomatisierung mit Homematic und KNX.
Ich habe mir nun eine Steckdose mit Leistungsmessung gegönnt, sodass ich eine Nachricht erhalte, wenn die Waschmaschine fertig ist.
Es hatte mal funktioniert - aber nun klappt es irgendwie nicht mehr. Ich vermute, dass es an der Timer-Funktion liegt. Diese ist mir leider noch etwas unklar in der Verwendung.
Vielleicht findet von euch einer der Fehler bei der folgenden Regel:
Code: Alles auswählen
import org.openhab.model.script.actions.Timer
val String filename = "waschmaschine.rules"
var Timer timerFinished = null
val Number MODE_OFF = 0
val Number MODE_STANDBY = 1
val Number MODE_ACTIVE = 2
val Number MODE_FINISHED = 3
rule "Waschmaschine Überwachung: Init"
when
System started
then
logInfo(filename, "Waschmaschine: System started")
createTimer(now.plusSeconds(180)) [|
if (Waschmaschine_Current < 8) opState_Waschmaschine.postUpdate(MODE_OFF)
else if (Waschmaschine_Current > 100) opState_Waschmaschine.postUpdate(MODE_ACTIVE)
else opState_Waschmaschine.postUpdate(MODE_STANDBY)
]
timerFinished = null
end
/*
* Waschmaschine
* Aus: 0-10mA
* Standby/Fertig: 34mA
* Aktiv: bis 11000mA (gesehener Mindestwert: 434mA)
*/
rule "Waschmaschine Überwachung: Verbrauchszuordnung"
when
Item Waschmaschine_Current changed
then
if (Waschmaschine_Current.state < 8)
{
opState_Waschmaschine.postUpdate(MODE_OFF)
logInfo(filename, "Waschmaschine (OFF) Current: " + Waschmaschine_Current.state)
timerFinished = null
}
else if (Waschmaschine_Current.state > 100)
{
opState_Waschmaschine.postUpdate(MODE_ACTIVE)
logInfo(filename, "Waschmaschine (ACTIVE) Current: " + Waschmaschine_Current.state)
if (timerFinished !== null)
{
timerFinished.cancel()
}
}
else
{
if (opState_Waschmaschine.state == MODE_OFF)
{
opState_Waschmaschine.postUpdate(MODE_STANDBY)
logInfo(filename, "Waschmaschine (STANDBY) Current: " + Waschmaschine_Current.state)
}
else if (opState_Waschmaschine.state == MODE_ACTIVE)
{
logInfo(filename, "Waschmaschine (ACTIVE->FINISHED?) Current: " + Waschmaschine_Current.state)
if(timerFinished === null || timerFinished.hasTerminated)
{
timerFinished = createTimer(now.plusMinutes(3), [|
timerFinished = null
opState_Waschmaschine.postUpdate(MODE_FINISHED)
logInfo(filename, "Waschmaschine: finished") ])
}
}
}
end
rule "Waschmaschine Überwachung: Benachrichtigung"
when
Item opState_Waschmaschine changed
then
if (opState_Waschmaschine.state == MODE_FINISHED)
{
logInfo(filename, "Waschmaschine: fertig")
pushover("Waschmaschine ist fertig!")
}
end
Code: Alles auswählen
09:56:02.965 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 354.00
09:56:10.837 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 190.00
09:56:18.884 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 39.00
09:56:23.892 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 48.00
09:58:13.993 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 3963.00
09:58:21.827 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 2387.00
09:58:29.826 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 39.00
09:58:37.860 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 2389.00
09:58:45.822 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 39.00
09:58:53.823 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 2014.00
....
11:54:38.611 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 1446.00
11:55:44.684 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 1344.00
11:56:52.991 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 1332.00
11:59:26.687 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 871.00
11:59:29.024 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 365.00
11:59:34.616 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 378.00
11:59:52.687 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 532.00
12:00:01.824 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 191.00
12:00:08.991 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 58.00
12:00:16.606 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 191.00
12:00:24.695 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 38.00
12:00:34.691 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 335.00
12:00:42.609 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 36.00
12:00:54.679 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 1886.00
12:01:02.611 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 38.00
12:01:13.678 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE) Current: 1676.00
12:01:21.608 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 55.00
12:01:50.390 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 35.00
12:09:36.331 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (ACTIVE->FINISHED?) Current: 34.00
19:20:08.957 [INFO ] [ome.model.script.waschmaschine.rules] - Waschmaschine (OFF) Current: 0.00
Meine Erwartung, dass der Timer zuschlägt wäre um 12:04:21 Uhr - oder verstehe ich da etwas falsch?