Ankündigung

Einklappen
Keine Ankündigung bisher.

Dynamische Zeitsteuerung

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

    Dynamische Zeitsteuerung

    Hallo,

    ich habe folgende Herausforderung - da ich mich mit Java und dessen Objekten und Methoden nicht auskenne:
    Ich hole mir von meiner Squeezebox die Weckzeit (z.B. 6:25) jeden Tag um Mitternacht, um abhängig davon Aktivitäten auf meinem KNX Bus zu steuern (Licht langsam andimmen, 30 Minuten später Rollo hochfahren, etc.). Die Weckzeit habe ich, jetzt fehlt mir nur noch die Logik (Rule oder Skript), um z.B. um 6:25 Uhr die Meldung auf den Bus zu geben, was alles zu schalten ist.

    Wie würde das ein Experte in openHAB machen (ich bin leider keiner ;-) )?
    Das entspricht ja in etwa einer dynamischen Crontab, da sich die Weckzeit ändert.

    Vielen Dank und viele Grüße
    Michael

    #2
    bin auch kein Experte...
    Ich hab eine Rule die minütlich ausgeführt wird und solche Werte prüft.

    Holger

    Edit: Timer wäre vielleicht noch eine Idee, die Zeit ausrechnen bis zum Ereignis.
    Timer überleben aber keinen Neustart.

    Kommentar


      #3
      Hallo Holger,

      kannst Du mal ein Beispiel posten, wie Du das gemacht hast?

      Gruß Michael

      Kommentar


        #4
        Du sagst du hast die Werte für die Weckzeit.
        Mein Wecker steht in einem Setpoint.
        Für dynamische Weckzeiten nutze ich ein modifiziertes Google Calender IO, aber das ist ein anderes Thema.
        Hier mal das Beispiel für den Setpoint:
        Code:
        rule "Wecker Montag-Freitag"
        when
            Time cron "0 * * ? * MON,TUE,WED,THU,FRI"
        then
        
        if ((status_BLUETOOTH.state == ON) &&
            (Anw_Status.state == 1))
            {
              var Integer sollMinute = (setpoint_Wecker_Minute.state as DecimalType).intValue
              var Integer sollStunde = (setpoint_Wecker_Hour.state as DecimalType).intValue
              var Integer istMinute  = now.getMinuteOfHour()
              var Integer istStunde  = now.getHourOfDay()
        
              if (sollMinute == istMinute)
              {
                  if (sollStunde == istStunde)
                  {
                    sendCommand(WLAN,ON)
        
                      println("wecken")
                      if (status_DARK.state == ON)
                      {
                          sendHttpGetRequest(ambiente1_red)
                          timer_wakeup_1 = createTimer(now.plusMinutes(3)) [|
                              {
                                  sendHttpGetRequest(ambiente1_red)
                              }
                              ]
        
        usw...

        Kommentar


          #5
          Prima, danke Dir!
          Das werde ich mal ausprobieren.
          Habe übrigens noch eine Timer Variante gefunden (Link), wie Du das auch vorgeschlagen hattest.

          Kommentar


            #6
            Hi Holger,

            Zitat von HolgerW Beitrag anzeigen
            nutze ich ein modifiziertes Google Calender IO, aber das ist ein anderes Thema.
            warum modifiziert? Könntest Du mir gerade auf die Sprünge (Link zum anderen Thread) helfen?

            Grüße,

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

            Kommentar


              #7
              Hallo Thomas,
              ich hab mir einige Stichworte ausgedacht die bestimmte Items setzen.
              So z.B. Urlaub, Abwesend, Wecken.
              Anhand dieser Stichworte im Kalender steuere ich diverse Aktionen die ich nicht extra im Betreff als Rule hinterlege.
              Also Abwesend schaltet die Heizung einen Gang runter, Wecken weckt mich um die angegebene Startzeit, Urlaub fährt die Heizung hoch wie am Wochenende.

              Holger

              Kommentar


                #8
                interessant!

                Hast Du den Code irgendwo in einem öffentlichen (Github) Repo liegen? Würde gerne mal schauen, ob man davon was übernehmen kann.

                Gruß,

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

                Kommentar


                  #9
                  Nein hab ich nicht, glaube auch nicht das es vorzeigbar ist.
                  Wie gesagt hat mich gestört, das ich in Betreff die Rule angeben musste.
                  Wenn jetzt z.b. das Stichwort Urlaub im Betreff auftaucht wird einfach ein Item holiday gesetzt und openHAB "weiss" das ich zu Hause bin und regelt bestimmte Sachen anders.
                  Ich kann dir die Source gern zukommen lassen, aber das ist alles andere als vorzeigbar öffentlich ;-)

                  Holger

                  Kommentar


                    #10
                    Hallo zusammen,

                    mich würde das Ganze auch interessieren. Bin neu in das Thema OpenHAB eingestiegen und versuche gerade mein Glück mit der Squeezebox und Onkyos.

                    Hier hört sich dein Projekt sehr interessant an Holger. So etwas in der Richtung stelle ich mir auch vor. Gerade auch in Verbindung mit Schlüsselwörtern.

                    Bist du hier schon weiter gekommen? Oder du Thomas?

                    Würdest du mir auch deinen Code zur Verfügung stellen?

                    Danke und schöne Grüße

                    Dieter

                    Kommentar


                      #11
                      Hallo Dieter,
                      ich hab den Quellcode doch mal hier angehangen, vielleicht interessiert sich ja noch jemand dafür.
                      Die Änderungen sind quick and dirty entstanden und waren nicht für eine Veröffentlichung gedacht.
                      Das originale File einfach austauschen und neu kompilieren.
                      Falls du das nicht schaffst einfach melden.
                      Nur das jar File austauschen hat bei mir nicht funktioniert.

                      Es sind 2 Änderungen enthalten. Ob die ursprüngliche Funktion noch funktioniert kann ich nicht sagen, nicht getestet (Schaltbefehle im Body).
                      - parsen des Kalenders und Reaktion auf folgende Stichworte
                      "abwesend" ,"wecken" ,"krank" ,"urlaub" ,"feiertag" ,"office"
                      und schalten der entsprechenden Switche (müssen! alle angelegt sein)
                      GCAL_ABSENCE","GCAL_WAKEUP","GCAL_SICKNESS","GCAL_ VACATION","GCAL_HOLIDAY","GCAL_OFFICE"

                      - Erstellung einer einfachen HTML-Seite unter /webapps/static/gcal.html
                      diese kann dann in openHAB eingebunden werden und zeigt die Termine der nächsten 14 Tage an

                      Das läuft bei mir seit 1.3 und auch unverändert mit einem aktuellen Snapshot 1.5

                      Holger
                      Angehängte Dateien

                      Kommentar


                        #12
                        So, ich hab es dann heute doch mal noch etwas hübscher gemacht:
                        In der openhab.cfg werden die Stichworte und der Name der HTML Datei für die Webseite angegeben:
                        Code:
                        # Stichworte 
                        gcal:keywords=abwesend,wecken,krank,urlaub,feiertag 
                        # Dateiname unter /webapps/static
                        gcal:webpage=gcal.html
                        Die Switche werden immer als GCAL_ + name des Keywords angesprochen und müssen so auch so angelegt werden:
                        Code:
                        Switch GCAL_abwesend
                        Switch GCAL_wecken
                        Switch GCAL_krank
                        Switch GCAL_urlaub
                        Switch GCAL_feiertag
                        Vielleicht nimmt zumindest die Idee Einzug in das tolle Projekt !

                        Holger
                        Angehängte Dateien

                        Kommentar


                          #13
                          Hallo HolgerW

                          Das klingt interessant. Genau danach habe ich schon gesucht.
                          Ich verstehe nur noch genau was man mit der Java Datei anstellt. Kannst du das noch genauer beschreiben bitte.

                          Gesendet von meinem Nexus 7 mit Tapatalk

                          Kommentar


                            #14
                            So wie ich das jetzt erstellt habe müssen die Sourcen zu einem neuen openHAB Projekt kompiliert werden. Das ist an sich nicht kompliziert und z.b. hier beschrieben (openHAB Build Instructions): https://github.com/openhab/openhab/b...ter/README.txt Die Javadatei muss dann das Original ersetzen. Für jemanden der das ganze noch nicht gemacht hat ist es aber schon nicht ganz einfach. Vielleicht meldet sich ja noch einer der Entwickler ob es irgendwann offiziell in openHAB übernommen werden kann. Holger

                            Kommentar


                              #15
                              Ok danke HolgerW das übersteigt mein aktuellen Skill Level.
                              Da müsste ich mich noch einlesen. Dann hoffen wir mal das es irgendwann mal offiziell aufgenommen wird.

                              Kommentar

                              Lädt...
                              X