Rule mit Timer deaktivieren, wenn Item ON

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Ordnas
Beiträge: 11
Registriert: 5. Aug 2018 12:57
Answers: 0

Rule mit Timer deaktivieren, wenn Item ON

Beitrag von Ordnas »

Hallo Zusammen

ich habe mir eine Rule erstellt, wenn in der Druckerwarteschlange Dokuemnte zu ausdrucken liegen, soll er den Drucker einschalten. Danach sobald der Spooler leer ist nach 5 Minuten wieder ausschalten:

Code: Alles auswählen

var Timer Drucker01Timer = null
 
rule "Drucker01_Jobs"
when
  Item EG_Buero_Drucker01_JobsSpooler changed or
  Item Homematic_EG_Buero_Drucker01_Scanner_Dose_Status changed or
  Item EG_Buero_Drucker01_Status changed
then
 
  // Kontrollieren ob Druckjobs vorhanden sind
  if (EG_Buero_Drucker01_JobsSpooler.state != 0) {
    // Ja, es sind Druckjobs vorhanden
    logInfo("Drucker01_Jobs", EG_Buero_Drucker01_JobsSpooler.state+" queued job(s) found")
 
    // Abschalttimer reseten
    if (Drucker01Timer!==null) {
      logInfo("Drucker01", "Abschalttimer reseten")
      Drucker01Timer.cancel
      Drucker01Timer=null
    }
 
    // Drucker einschalten falls ausgeschaltet
    if (Homematic_EG_Buero_Drucker01_Dose_Status.state!=ON) {
      logInfo("Drucker01", "Drucker01 ein")
      sendCommand(Homematic_EG_Buero_Drucker01_Dose_Status,ON)
    } else {
      logInfo("Drucker01", "Drucker01 aus")
    }
  } else {
    // Keine Druckjobs vorhanden
    logInfo("Drucker01_Jobs", "Keine Druckjobs mehr vorhanden")
 
    // Drucker im Energiesparmodus?
    if (EG_Buero_Drucker01_Status.state==1) {
      logInfo("Drucker01", "Drucker01 ist im Energiesparmodus, ausschalten in 5 Minuten")
      // Drucker01 ausschalten in 5 minuten
      // Bei drucken wöhrend Timer läuft, Timer reset
      Drucker01Timer = createTimer(now.plusMinutes(5)) [|
        sendCommand(Homematic_EG_Buero_Drucker01_Dose_Status,OFF)
      ]
    } else {
      logInfo("Drucker01", "Drucker01 ist nicht mehr im ENergiesparmodus ("+EG_Buero_Drucker01_Status.state+"), warten auf Energiesparmodus")
 
      // Reset Timer wenn Druckjob oder Status ändert
        if (Drucker01Timer!==null) {
        logInfo("Drucker01", "Reset laufender Timer zum ausschalten")
        Drucker01Timer.cancel
        Drucker01Timer=null
      }
    }
  }
end
Das funktionert ziemlich gut und ist stabil.

Nun zu meinem Problem. Der betroffene Drucker, ist ein Kompi Gerät. Nun, wenn ich etwas einscannen möchte, und den Drucker einschalte, wird er nach 5 Minuten, wie in meiner Regel wieder ausgeschaltet, da ja keine Druckaufträge vorhanden sind.

Nun möchte ich ein Switch Item erstellen: Scannen. Welches eigentlich den Drucker einschaltet und den Timer bzw. die Rule aussschaltet. Bis ich den Scanner Switch wieder auf Off stelle.

Hat jemand eine Idee, wie ich das realisieren könnte? Am besten iergendwie, wenn Switch ON, Timer ausschalten. Das selbe Problem werde ich auch mit meinen Garagentore später haben. Denn da möchte ich auch einen Timer setzten, falls ich aber mal in der Garage eine längere Zeit arbeite, würde ich auch da gerne den TImer ausschalten können.

Vielen Dank für eurer Hilfe.

Gruss Sandro
2x Kodi, 4x Xiaomi Flower, 1x Yamaha RX-V500D, 2x Samsung TV, 1x Sony TV, 1x VU+ One, 1x DM7080, 1x DM8000, 1x MFC-Drucker, 4x UniFi AC-Pro, 2x Switch, 1x Alexa Echo, 2x Dot, 2x Sonos One, 1x Siemens (Backen, Steamer), 1x Siemens (Micro, Backen), 1x Galaxy S6 (Habpanel), 1x iPad-4 (Habpanel), 1x Netatmo Secuity, 3x Netatmo Presence, 1x Netatmo Weather, 1x Miele Gefrierschrank, 1x Harmony, 1x Ring, 1x Xiaomi Mi

Gardena: 3xSensoren, 3xWasser, MicroDrip und 3x Versenk-Regner
1x Husqvarna 420

Philipps HUE:
1x Bridge, 20x Color Spots, 16x Ambiance Spots, 2x Outdoor Pedestal, 5x Stripes, 4x Go

Homematic:
1x HM-ES-PMSw1-Pl-DN-R5,1x HmIP-FAL230-C10,4x HmIP-PSM-CH,4x HmIP-SMI,1x HmIP-SPDR,1x HmIP-SPI,3x HmIP-STH,2x HmIP-STHD,1x HmIP-SWD,4x HMIP-SWDO,1x HmIP-SWO-PL,3x HmIP-SWSD,2x HMIP-WRC2,5x HmIP-WTH-2,8x HM-LC-Sw1-FM,5x HM-LC-Sw2-FM,1x HM-LC-Sw4-WM,2x HM-PB-2-WM55-2,1x HM-Sec-SC-2,14x HM-Sec-SCo,3x HM-Sec-SD-2,1x HM-Sec-Sir-WM,1x HM-Sec-WDS-2,1x HM-Sen-MDIR-O-2,1x HM-Sen-Wa-Od

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

Re: Rule mit Timer deaktivieren, wenn Item ON

Beitrag von udo1toni »

Naja, Du musst halt den Scanner-Switch noch zusätzlich als Bedingung einbauen:

Code: Alles auswählen

if(EG_Buero_Drucker01_JobsSpooler.state != 0 || EG_Buero_Drucker01_Scannen.state ==ON)
Bedeutet: Falls mindestens ein Job anliegt ODER der Schalter für Scannen ON ist.

Dabei kann das Item EG_Buero_Drucker01_Scannen auch ohne Binding sein, also z.B. nur ein Schalter in der UI
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Ordnas
Beiträge: 11
Registriert: 5. Aug 2018 12:57
Answers: 0

Re: Rule mit Timer deaktivieren, wenn Item ON

Beitrag von Ordnas »

Super

vielen Dank. Funktioniert.

Manchmal überlegt man einfach zu weit.
2x Kodi, 4x Xiaomi Flower, 1x Yamaha RX-V500D, 2x Samsung TV, 1x Sony TV, 1x VU+ One, 1x DM7080, 1x DM8000, 1x MFC-Drucker, 4x UniFi AC-Pro, 2x Switch, 1x Alexa Echo, 2x Dot, 2x Sonos One, 1x Siemens (Backen, Steamer), 1x Siemens (Micro, Backen), 1x Galaxy S6 (Habpanel), 1x iPad-4 (Habpanel), 1x Netatmo Secuity, 3x Netatmo Presence, 1x Netatmo Weather, 1x Miele Gefrierschrank, 1x Harmony, 1x Ring, 1x Xiaomi Mi

Gardena: 3xSensoren, 3xWasser, MicroDrip und 3x Versenk-Regner
1x Husqvarna 420

Philipps HUE:
1x Bridge, 20x Color Spots, 16x Ambiance Spots, 2x Outdoor Pedestal, 5x Stripes, 4x Go

Homematic:
1x HM-ES-PMSw1-Pl-DN-R5,1x HmIP-FAL230-C10,4x HmIP-PSM-CH,4x HmIP-SMI,1x HmIP-SPDR,1x HmIP-SPI,3x HmIP-STH,2x HmIP-STHD,1x HmIP-SWD,4x HMIP-SWDO,1x HmIP-SWO-PL,3x HmIP-SWSD,2x HMIP-WRC2,5x HmIP-WTH-2,8x HM-LC-Sw1-FM,5x HM-LC-Sw2-FM,1x HM-LC-Sw4-WM,2x HM-PB-2-WM55-2,1x HM-Sec-SC-2,14x HM-Sec-SCo,3x HM-Sec-SD-2,1x HM-Sec-Sir-WM,1x HM-Sec-WDS-2,1x HM-Sen-MDIR-O-2,1x HM-Sen-Wa-Od

Antworten