Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Wecker erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wecker erstellen

    Hallo zusammen,

    ich baue gerade einen Wecker für OpenHAB.

    Mit folgender Regel wollte ich die aktuelle Uhrzeit prüfen.

    if ( Wecker_aktiv.state == ON )
    {
    if(Wecker_Minute.state == now.minuteOfHour)
    if(Wecker_Stunde.state == now.hourOfDay)
    println("Wecker klingelt")
    }

    Wird im Minutentakt aufgerufen. Aber löst nie aus. Kann mir einer einen Tipp geben ?

    #2
    Zitat von milymat Beitrag anzeigen
    Kann mir einer einen Tipp geben ?
    Ich denke Du möchtest eine UND-Verknüpfung erreichen? Dann müsstest Du das auch so implementieren, also:

    Code:
       if (Wecker_aktiv.state == ON) {
          // Achtung PseudoCode
          if (Wecker_Minute && Wecker_Stunde) {
             println("Wecker klingelt")        
          }
       }
    Davon ausgegangen, dass Wetter_aktiv vom Typ Switch und die beiden Wecker_Minute und Wecker_Stunden vom Typ Number sind, würde der Code dann eher wie folgt aussehen:

    Code:
       if (Wecker_aktiv.state == ON) {
          if (Wecker_Minute.state.intValue == now.minuteOfHour && Wecker_Stunde.state.intValue == now.hourOfDay) {
             println("Wecker klingelt")        
          }
       }
    (ohne Gewähr, da nicht im getestet)

    Gruß,

    Thomas E.-E.
    Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

    Kommentar


      #3
      die Überprüfung funktioniert nicht.

      if(Wecker_Stunde.state == now.hourOfDay)

      Wecker_Stunde hat den Wert 20. Also sollte es um 20 Uhr bei jedem Durchlauf anspringen. Tut es aber nicht.

      Kommentar


        #4
        Zitat von milymat Beitrag anzeigen
        if(Wecker_Stunde.state == now.hourOfDay)
        das steht auch nicht in meinem Vorschlag drin ;-)
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Ich sollte vor dem Antworten nochmal die Seite neuladen.


          Es kommt die Fehlermeldung:
          Couldn't resolve reference to JvmIdentifiableElement 'intValue'.
          Bei: Wecker_Minute.state.intValue
          analog bei '&&' und '=='

          und die Meldung:
          Missig error message for org.eclipse.xtext.xbase.validation.IssueCodes.inva lid_generic_argument_types
          Bei:new DecimalType(now.minuteOfHour)

          Kommentar


            #6
            ok, mein Vorschlag war offensichtlich noch nicht ganz so optimal ;-) Dann eben so:

            Code:
               if (Wecker_aktiv.state == ON) {
                  val sollMinute = (Wecker_Minute.state as DecimalType).intValue
                  val sollStunde = (Wecker_Stunde.state as DecimalType).intValue 
                  if (sollMinute == now.minuteOfHour && sollStunde == now.hourOfDay) {
                     println("Wecker klingelt")        
                  }
               }
            Gruß,

            Thomas E.-E.
            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

            Kommentar

            Lädt...
            X