Mal wieder eine rule-Frage...

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
OliverCJ
Beiträge: 404
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Mal wieder eine rule-Frage...

Beitrag von OliverCJ »

Guten Morgen zusammen,

ich hatte mir mal die folgende rule gebastelt:

Code: Alles auswählen

var Timer tRadio = null

rule "Musik fuer Olli"
when
  Item Olli_Handy changed from OFF to ON
then
  if (tRadio !== null) {
    tRadio.cancel()
    tRadio = null
  }
  if (Olli_Handy.state == ON) {
    tRadio = createTimer(now.plusSeconds(120), [|
    var Stunde = now.getHour
      if (Stunde > 7 && Stunde < 21) {
        if(Matzi_Handy.state == OFF) {
          if(WoZi_HarmonyHub_Aktion.state == "PowerOff") {
            WoZi_HarmonyHub_Aktion.sendCommand("Radio")
          }
        }
      }
    tRadio = null
    ])
  }
end
Was sie eigentlich machen sollte: Wenn sich mein Handy in der Zeit zwischen 8 und 20:59 Uhr ins WLAN einloggt, soll zwei Minute gewartet werden. Dann soll geprüft werden, ob das Handy meiner Frau ebenfalls im WLAN ist und nur, wenn das nicht der Fall ist, soll das Radio gestartet werden.

Was sie tatsächlich macht: Mein Handy loggt sich ins WLAN ein und sofern es zwischen den o.g. Uhrzeiten ist, fängt das Radio nach 2 min an zu spielen. Der WALN-Zustand des Handys meiner Frau ist ihm dabei ziemlich egal

Meine Frau ist nicht so der Radio-Typ und das Gedudel geht ihr ziemlich auf den Wecker. Und da ihr Handy ein wenig langsamer ist als meins, braucht es halt oft länger, bis es sich einloggt. Daher der Timer. Ich habe aber das Gefühl, dass er dort, wo ich ihn eingebaut habe, irgendwie falsch plaziert ist, komme aber nicht drauf, wie ich die rule umbauen muss, dass es funktioniert :(

Hat jemand einen Denkanstoss für mich?

Danke!

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Mal wieder eine rule-Frage...

Beitrag von peter-pan »

Ich weiss nicht, ob es hilft!? Ich habe die Regel ein bisschen gekürzt.

Code: Alles auswählen

var Timer tRadio = null

rule "Musik fuer Olli"
when
  Item Olli_Handy changed from OFF to ON
then
  if (tRadio !== null) {
    tRadio.cancel()
    tRadio = null
  }
  if (Olli_Handy.state == ON) {
    tRadio = createTimer(now.plusSeconds(120), [|
    var Stunde = now.getHour
    logInfo("Musik-Test"," Olli Handy Status: {} , Matzi Handy Status {}: , Hub Status: {} ", Olli_Handy.state, Matzi_Handy.state, WoZi_HarmonyHub_Aktion.state)  // für für Test
      if (Stunde > 7 && Stunde < 21 && Matzi_Handy.state == OFF && WoZi_HarmonyHub_Aktion.state == "PowerOff") {
          WoZi_HarmonyHub_Aktion.sendCommand("Radio")
      }
        tRadio = null
    ])
  }
end
Ich gehe davon aus, dass der ItemType der jeweiligen Items passt. Das LogInfo kannst du wieder auskommentieren oder rausnehmen, wenn die Status alle richtig sind.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Benutzeravatar
OliverCJ
Beiträge: 404
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: Mal wieder eine rule-Frage...

Beitrag von OliverCJ »

Hallo Peter,

vielen Dank! Ich werde das übers Wochenende mal ausprobieren. Da habe ich Zugriff auf beide Handys und kann ein wenig rumspielen.
Werde mal berichten, ob sich das Verhalten dann geändert hat.

VG, Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Antworten