Seite 1 von 1

openHAB führt keine rules mehr aus

Verfasst: 2. Sep 2017 06:02
von echicor
Hallo zusammen,

ich bin noch relativ neu im Thema openHAB und versuche gerade meine Programme von der CCU2 stück für stück auf openHAB2 zu übertragen. Das hat auch am Anfang relativ gut funktioniert bis ich auf meinem Ubuntu16.04LTS System openHAB wegen eines Fehlers neu installieren musste. Bis dahin wurden die rules auch immer ausgeführt. Allerdings wird nun seit der Neuinstallation von openHAB keine rule mehr ausgeführt, auch nicht neue rules welche ich testweise angelegt habe.

Eine rule, welche vorher immer funktioniert hat ist für einen programmierten Wecker und sieht wie folgt aus:
//////////////////////////////////////////////////////////////////////////////////
// Enhält alle notwendigen Regeln zum Steuern des Weckers im Schlafzimmer //
//////////////////////////////////////////////////////////////////////////////////
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
import org.joda.time.*
import java.nio.channels.Channel
//////////////////////////////////////////////////////////////////////////////////
// Muss nur temporär benutzt werden für erstes Initialisieren von Items //
// da diese ab erstmaliger Benutzung in der mapDB gespeichert werden. Werden //
// die nicht persistiert hier Defaultwerte hinterlegen //
//////////////////////////////////////////////////////////////////////////////////
rule "Initialization Wecker"
when
System started
then
postUpdate(weckerZeitStunde, 06)
postUpdate(weckerZeitMinute, 00)
postUpdate(weckerMontag, ON)
postUpdate(weckerDienstag, ON)
postUpdate(weckerMittwoch, ON)
postUpdate(weckerDonnerstag, OFF)
postUpdate(weckerFreitag, ON)
postUpdate(weckerSamstag, ON)
postUpdate(weckerSonntag, OFF)
postUpdate(weckerMaxHelligkeit, 100)
postUpdate(weckerDimmerSleep, 5)
end
///////////////////////////////////////////////////////////////////////////////
rule "Wecker - Aenderung der Konfiguration"
when
Item weckerZeitStunde received update or
Item weckerZeitMinute received update
then
var weckerStunde = weckerZeitStunde.state as DecimalType
var weckerMinute = weckerZeitMinute.state as DecimalType

var String weckerText = ''
if (weckerStunde.intValue < 10) weckerText = '0'
weckerText = weckerText + weckerStunde.intValue + ':'
if (weckerMinute.intValue < 10) weckerText = weckerText + '0'
weckerText = weckerText + weckerMinute.intValue

postUpdate(weckerZeitMessage, weckerText)
end
///////////////////////////////////////////////////////////////////////////////
rule "Wecker - prüfen"
when
Time cron "0 0/1 * * * ?" // minütlicher Aufruf
then
var weckerStunde = (weckerZeitStunde.state as DecimalType).intValue
var weckerMinute = (weckerZeitMinute.state as DecimalType).intValue
var weckerHelligkeit = (weckerMaxHelligkeit.state as DecimalType).intValue
var weckerWartezeit = 1000 * (weckerDimmerSleep.state as DecimalType).intValue
//logInfo('rules','helligkeit: ' + weckerHelligkeit +' wartezeit ' + weckerWartezeit)

if (
(now.getHourOfDay.intValue == weckerStunde) && (now.getMinuteOfHour.intValue == weckerMinute)
&& (
((weckerMontag.state == ON) && now.getDayOfWeek.intValue == 1) ||
((weckerDienstag.state == ON) && now.getDayOfWeek.intValue == 2) ||
((weckerMittwoch.state == ON) && now.getDayOfWeek.intValue == 3) ||
((weckerDonnerstag.state == ON) && now.getDayOfWeek.intValue == 4) ||
((weckerFreitag.state == ON) && now.getDayOfWeek.intValue == 5) ||
((weckerSamstag.state == ON) && now.getDayOfWeek.intValue == 6) ||
((weckerSonntag.state == ON) && now.getDayOfWeek.intValue == 7)
)
) {
logInfo ('rules','Wecker wird aktiviert...')
// Wecker nur notwendig, wenn Licht aus ist
if (Licht_OG_Schlafzimmer.state < weckerHelligkeit) {
var Number dimmer = 0
while (dimmer < weckerHelligkeit) {
// Licht auf Dimmstufe schalten
sendCommand(Licht_OG_Schlafzimmer, dimmer.intValue)
createTimer(now.plusSeconds(1))[|sendCommand (TV_OG_Schlafzimmer,ON)]
// Konfigurierte Anzahl an Sekunden warten
Thread::sleep(weckerWartezeit)
// prüfen ob zwischenzeitlich Dimmerhelligkeit manuell veraendert wurde und damit der Wecker ausgemacht wurde
var dimmerStatus = (Licht_OG_Schlafzimmer.state as DecimalType).intValue
if (dimmer == dimmerStatus) {
dimmer = dimmer + 1
logInfo('rules', 'Wecker: Dimmer plus 1 gesetzt auf ' + dimmer)
} else {
dimmer = 100 // Abbruchbedingung
logInfo('rules', 'Wecker: Abbruch durch Tastendruck')
}
}
logInfo('rules', 'Wecker abgeschlossen, Zielhelligkeit erreicht')
} else {
logInfo('rules', 'Wecker nicht gestartet da Licht bereits heller als Ziel-Helligkeit des Weckers. Helligkeit Licht: ' + Licht_OG_Schlafzimmer.state)
}
} else {
logInfo('rules','Wecker nicht aktiviert, Bedingung für Wecker trifft nicht zu')
}
end
Aber auch eine Testrule, welche so simple wie möglich gehalten wurde, wird gar nicht ausgeführt:
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
import org.joda.time.*
import java.nio.channels.Channel
///////////////////////////////////////////////////////////////////////////////
rule "Test"
when Item Licht_Esszimmer_TV changed from OFF to ON
then sendCommand(Licht_Esszimmer_Wandleuchten, ON)
end
Leider erkenne ich nicht woran der Fehler liegt und wäre hier für Hilfe äußerst dankbar.

Danke
echicor

Re: openHAB führt keine rules mehr aus

Verfasst: 2. Sep 2017 10:58
von alkaline
echicor hat geschrieben: 2. Sep 2017 06:02

//////////////////////////////////////////////////////////////////////////////////
// Enhält alle notwendigen Regeln zum Steuern des Weckers im Schlafzimmer //
//////////////////////////////////////////////////////////////////////////////////
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
import org.joda.time.*
import java.nio.channels.Channel
Die Importe sind nicht mehr zulässig und nicht mehr notwendig, entferne die org.openhab.core.library.types.* etc.
Schau mal hier:
http://docs.openhab.org/tutorials/migration

Re: openHAB führt keine rules mehr aus

Verfasst: 3. Sep 2017 19:17
von echicor
Hi alkaline,

danke, obwohl es vor der Neuinstallation auch damit lief hab ich sie nun rausgenommen und alles funktioniert wieder.

Danke ;-)