Timer in OH3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20
Answers: 0

Timer in OH3

Beitrag von Markus_JE »

GUten Morgen zusammen,

ich bin gerade dabei die Regeln in die neue UI zu übertragen.
Wie kann denn ein Timer in der neuen UI erstellt werden?

Anbei mein "alter Code".

Code: Alles auswählen

var Timer timer = null
    rule "Weihnachtsbeleuchtung"
when
       Time cron " 0 30 16 ? * * "
       //Item XXX changed to ON //FUNKTIONIERT
       //Channel "astro:sun:home:civilDusk#event" triggered START
       
then 

if (Weihnachtsbeleuchtung_Automatik.state != ON) return;  // wenn Schalter aus(nicht an) , keine Aktionen
        {
        logInfo("FILE", "Weihnachtsbeleuchtung EIN, Timer wird gestartet")
        SteckdoseBalkon.sendCommand(ON)
            timer = createTimer(now.plusMinutes(490), [|
            logInfo("FILE", "Timer abgelaufen Weihnachtsbeleuchtung wird ausgeschaltet")
            SteckdoseBalkon.sendCommand(OFF)
            timer = null
            ])
        }      
end

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: Timer in OH3

Beitrag von ThomasW »

Hallo Markus,

du kannst den Timer ganz einfach in der UI erstellen:

lege eine neue Rule an
als trigger die Zeit auswählen und dann ein Script (Rule DSL)ausführen lassen

Code: Alles auswählen

if (Weihnachtsbeleuchtung_Automatik.state != ON) return;  // wenn Schalter aus(nicht an) , keine Aktionen
        {
        logInfo("FILE", "Weihnachtsbeleuchtung EIN, Timer wird gestartet")
        SteckdoseBalkon.sendCommand(ON)
           createTimer(now.plusMinutes(490), [|
            logInfo("FILE", "Timer abgelaufen Weihnachtsbeleuchtung wird ausgeschaltet")
            SteckdoseBalkon.sendCommand(OFF)
           
            ])
        }      
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20
Answers: 0

Re: Timer in OH3

Beitrag von Markus_JE »

ok das versuche ich gleich nochmals.
Meine Rules starten auch nicht von alleine. Was kann denn hier für eine Ursache sein?
Nach manuellem starten funktioniert es.

Ist eine andere Rule um Aussen Temp auf KNX zu bringen. Mit dem stet könnte etwas falsch sein vermute ich.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: WetterAussenTemperature
      state: changed
      previousState: ""
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-2
            if(WetterAussenTemperature.state instanceof Number)
                WetterAussenTemperature_knx.sendCommand((WetterAussenTemperature.state as Number).floatValue)
    type: script.ScriptAction

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

Re: Timer in OH3

Beitrag von udo1toni »

So wie ich es sehe darf previousState gar keinen Inhalt haben, sonst triggert die Rule nur, wenn das Status von "" auf etwas anderes wechselt.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20
Answers: 0

Re: Timer in OH3

Beitrag von Markus_JE »

HAllo Udo,
ich meine irgendwo gelesen zu haben das der Timer auch anders gestezt werden muss.
Kannst du mir sagen wie?

Sollte doch nicht mehr
createTimer(now.plusMinutes(240) heissen sonders anders?!?

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

Re: Timer in OH3

Beitrag von udo1toni »

Doch, dieser Ausdruck müsste weiterhin so möglich sein.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: Timer in OH3

Beitrag von ThomasW »

Es geht weiterhin so über die Rule das benutze ich bei mir.

Du kannst alternativ im Item Add Metadata und da Expiration Timer verwenden dann schaltet sich dein Item nach der eingestellten Zeit auf den von dir gewünschten Wert

habe damit noch keine Erfahrung gemacht kann dir dazu nicht mehr sagen.
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20
Answers: 0

Re: Timer in OH3

Beitrag von Markus_JE »

aber ich bekomme seltsamerweisse diese Meldung im Logging.

{

logInfo("FILE", "Licht EIN, Timer wird gestartet")

BeleuchtungTreppeneingangHaus.sendCommand(ON)

timer = createTimer(now.plusMinutes(5), [|

logInfo("FILE", "Timer abgelaufen Licht wird ausgeschaltet")

BeleuchtungTreppeneingangHaus.sendCommand(OFF)

timer = null

])

}

Cannot refer to the non-final variable timer inside a lambda expression; line 8, column 338, length 5

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: Timer in OH3

Beitrag von ThomasW »

Sehe deinen Fehler du musst entweder noch vorher die Variable ergenzen

Code: Alles auswählen

var Timer timer = null
oder in deinem code timer = entfernen
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20
Answers: 0

Re: Timer in OH3

Beitrag von Markus_JE »

Hi,

mein Script sieht nun so aus aber bekomme folgednde Fehlermeldung im Logging.

Code: Alles auswählen

 {
        logInfo("FILE", "Licht EIN, Timer wird gestartet")
        BeleuchtungTreppeneingangHaus.sendCommand(ON)
            timer = createTimer(now.plusMinutes(240), [|
            logInfo("FILE", "Timer abgelaufen Licht wird ausgeschaltet")
            BeleuchtungTreppeneingangHaus.sendCommand(OFF)
            ])
            }
Fehler:
2021-01-12 19:17:01.065 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Treppenbeleuchtung_Hauseingang' failed: {

logInfo("FILE", "Licht EIN, Timer wird gestartet")

BeleuchtungTreppeneingangHaus.sendCommand(ON)

timer = createTimer(now.plusMinutes(240), [|

logInfo("FILE", "Timer abgelaufen Licht wird ausgeschaltet")

BeleuchtungTreppeneingangHaus.sendCommand(OFF)

])

}

The method timer(Timer) is undefined; line 4, column 128, length 5

Antworten