Ankündigung

Einklappen
Keine Ankündigung bisher.

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