Ankündigung

Einklappen
Keine Ankündigung bisher.

[Misterhouse] Jalousie + API

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

    [Misterhouse] Jalousie + API

    Hallo,

    ich versuche micht seit einigen Tagen an der Logikprogrammierung in MH aber komme momentan noch nicht so klar. Gibt es eine API in der man mal alle Funktionen nachlesen kann? Sowas wie time_now usw.

    Momentan möchte ich das meine Jalousien morgens aufgehen und abends wieder zu. Aber in meine Programmierung ist ein Fehler der Befehl wird immer widerholt und die Visu nimmt keine Befehle mehr an ).

    Code:
    if (time_greater_than("$Time_Sunset - 01:00") and time_less_than("$Time_Sunrise")){
       set $Hauswirtschaftsraum_Jalousie_POS 100;
       set $Hausanschlussraum_Jalousie_POS 100;
       set $Gaeste_WC_Jalousie_POS 100;
       set $Gaestezimmer_Jalousie_POS 100;
       set $Kueche_Jalousie_POS 100;
       set $Bad_Jalousie_POS 100;
       set $Pflegerzimmer_Jalousie_POS 100;
       set $KinoTherapie_Jalousie_POS 100;
    }else{
       set $Hauswirtschaftsraum_Jalousie_POS 0;
       set $Hausanschlussraum_Jalousie_POS 0;
       set $Gaeste_WC_Jalousie_POS 0;
       set $Gaestezimmer_Jalousie_POS 0;
       set $Kueche_Jalousie_POS 0;
       set $Bad_Jalousie_POS 0;
       set $Pflegerzimmer_Jalousie_POS 0;
       set $KinoTherapie_Jalousie_POS 0;
    }
    So schauts aus, vllt kann mir ja Jemand einen Tipp geben Wo der FEhler ist oder wie man das eleganter löst.

    thx
    /Flow

    #2
    if (time_greater_than("$Time_Sunset - 01:00") and time_less_than("$Time_Sunrise"))
    Das mit dem ständigen Wiederholen ist klar, die Bedingung ist ja während der gesamten Zeitspanne erfüllt.

    Ich weiß nicht, ob MH in der API etwas passendes bereit hält. Ansonsten könntest Du entweder auf die exakte Zeit abfragen (würde ich aber nicht machen) oder in einer Variablen merken, daß die Tolläden schon verfahren wurden. Die müßtest Du dann zu einem geeignetem Zeitpunkt zurücksetzen.

    Alternativ könntest Du auch die Position der Rolläden selbst vor dem Verfahren überprüfen, dabei aber auch das mögliche Manuelle verfahren außerhalb von MH berücksichtigen.

    Kommentar


      #3
      Wo finde ich denn die API von MH? Habe da irgendwie noch nichts gefunden. Das mit dem Überprüfen von dem Verfahren klappt nicht da dann immer die Jalousie hochgefahren wird wenn ich mal etwas Schatten am Tage haben will.

      /Flow

      Kommentar


        #4
        Das mit dem Überprüfen von dem Verfahren klappt nicht da dann immer die Jalousie hochgefahren wird wenn ich mal etwas Schatten am Tage haben will
        Das meinte ich mit manuellem Verfahren.

        Merk Dir doch einfach in einer Variablen, daß sie an dem Tag schon gefahren wurden.

        Ansonsten findest Du unter docs auf MisterHouse ein paar Infos, die time_now Funktion könnte z.B. was für dich sein.

        Kommentar


          #5
          Doc zu Misterhouse

          Hi,

          auf der Misterhouse Webseite auf der linken Seite Doc und dann nach time_now suchen.

          Eine Idee wäre z.B. jeden Werktag bei Sonnenaufgang hoch, wenn Sonnenaufgang nach 7:00.

          Code:
          if ( time_cron('* * * * 1-5') and time_greater_or_equal("07:00") ){
             if (time_now($Time_Sunrise)){
                $Rollos_UP = 1;
             }
          Gruss
          Steffen

          Kommentar


            #6
            Ich mach das so:
            Code:
            if (($Weekday && time_now "$Time_Sunrise + 0:15")||($Weekend && time_now "$Time_Sunrise + 1:15") {
               set $Hauswirtschaftsraum_Jalousie_POS 100;
            }
            if (($Weekday && time_now "$Time_Sunset + 0:15")||($Weekend && time_now "$Time_Sunset + 1:15") {
               set $Hauswirtschaftsraum_Jalousie_POS 0;
            }
            Die einzelnen Functions sind -- wie bereits geschrieben -- hier zu finden: B<mh> - MisterHouse Home Automation Program

            Beispiele gibt es auch in vielen Beiträgen hier im Forum und natürlich auf der Code-Schnipsel Seite hier im Forum Code-Schnipsel - KNX-User-Forum
            Gruß,
            Marc

            Kommentar


              #7
              Dankeschön, werde mich dann mal etwas damit auseinander setzten und schauen was dann im Spukhaus abgeht (o:

              /Flow

              Kommentar


                #8
                habe dies versucht und funktioniert nicht, die Rolladen gehen morgens garnicht mehr hoch. Was habe ich falsch gemacht?

                Weder das hier

                Code:
                if ( time_greater_or_equal("07:02")  and time_now($Time_Sunrise) )
                {
                
                #    $Kinder_Rollladen->set('up');
                #    $Doro_Rollladen->set('up');
                    $Eltern_Rollladen->set('55');
                    $Bad_Rollladen->set('up');
                    print_log "klappert oben";
                
                }
                noch das:
                Code:
                if ( time_cron('* * * * 1-7') and time_greater_or_equal("07:00") ){
                   if (time_now("$Time_Sunrise +0:20")){
                     play(file => 'zelda/songofpassing.wav');
                    #keller
                    $Har_Rollladen->set('up');
                    $Gaestebad_Rollladen->set('up');
                    $Buero_Rollladen->set('up');
                    $Gaeste_Rollladen->set('up');
                    $Server_Rollladen->set('up');
                    print_log "klappert keller";
                    }
                }
                Zitat von mod42 Beitrag anzeigen
                Hi,

                auf der Misterhouse Webseite auf der linken Seite Doc und dann nach time_now suchen.

                Eine Idee wäre z.B. jeden Werktag bei Sonnenaufgang hoch, wenn Sonnenaufgang nach 7:00.

                Code:
                if ( time_cron('* * * * 1-5') and time_greater_or_equal("07:00") ){
                   if (time_now($Time_Sunrise)){
                      $Rollos_UP = 1;
                   }
                Gruss
                Steffen

                Kommentar


                  #9
                  Ich weiss nicht wo du wohnst, aber bei uns liegt z.Zt der Sonnenaufgang vor 7:00, die Bedingung in deiner Abfrage ist in diesen Breitengraden also erst wieder in den Wintermonaten erfüllt--- folglich werden auch vorerst morgens keine Rollläden verfahren.
                  Gruß,
                  Marc

                  Kommentar


                    #10
                    Mein Ziel ist des das im Sommer, wenn der Sonnenaufgang+20min vor 7:00Uhr morgens liegt, die Rolläden erst um 7:00 Uhr hochfahren.

                    Wenn der Sonnenaufgang nach 7:00 Uhr stattfindet sollen die Rolläden bei Sonnenaufgang+20min hochfahren.

                    Ich habe die parameter in der mh.ini für länge und breitengrad richtig gesetzt so ist der time_sunrise
                    im Moment vor 7:00 Uhr morgens.
                    Wie muss es dann formuliert werden?

                    So ist es im Moment:

                    if ( time_cron('* * * * 1-7') and time_greater_or_equal("07:00") ){
                    if (time_now("$Time_Sunrise +0:20")){

                    Kommentar


                      #11
                      Hoi Klaus

                      Ich habe das so gelöst:

                      Eine Bedingung: Zeitraum von Sunrise+20 bis 12:00
                      Zweite Bedingung: Zeitraum von 07:00 bis 12:00
                      Wenn beide Bedingungen erfüllt dann: Hoch die Storen

                      Hoffe das hilft
                      Grüsse Bodo
                      Fragen gehören ins Forum, und nicht in mein Postfach;
                      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                      Kommentar


                        #12
                        Oder man lässt Misterhouse den aktuellen Sonnenstand berechnen und ersetzt Uhrzeiten durch Grad-Angaben. Das hat den Vorteil, dass man auch genau genau bestimmen kann wann die Sonne in ein Fenster scheint.

                        Ich habe im Code-Schnipsel etwas entsprechendes hochgeladen.

                        Kommentar


                          #13
                          Vielleicht hat ja jemand für mich auf die schnelle die passende misterhouse Bedingung parat.

                          Der Hintergedanke dabei ist, das im Sommer die Rollläden nicht schon z.B. um 5 Uhr hochfahren sondern ab 7:00Uhr...

                          Kommentar


                            #14
                            Naja, alles Geschmackssache. Bei mir fahren die Rollos abends helligkeitsgesteuert runter. Ich kann es überhaupt nicht leiden, wenn die Rollos und Jalousien automatisch hochfahren, z. B. im Sommer mit Sonnenaufgang, deshalb habe ich in der Küche einen Tastesensor mit dem ich sie manuell hochfahren kann (alle zusammen), wenn ich das will, z.B. beim Verlassen des Hauses. Sollte ich das mal vergessen, fahren Sie dann unter der Woche um 09:00 Uhr und am WE um 10:00Uhr hoch, allerdings nicht, wenn es so heiss ist. Deshalb habe ich aktuell den zugehörigen Cronjob deaktiviert.

                            Ich bin kein Fan davon, bei vollem Tageslicht aufzuwachen.

                            Kommentar


                              #15
                              Pearl programmierer schütteln sowas ja aus den Ärmeln... ;-)
                              Ist ja nichts wildes, wenn man näher drüber nachdenkt.
                              Hier meine Lösung:

                              Code:
                              if ($Time_Sunrise <= "07:00" and time_now("7:00"))    {
                              
                                  #eg
                                  $Wohnen_Rollladen->set('up');
                                  $WC_Rollladen->set('up');
                                  $Abstell_Rollladen->set('up');
                                  $Kueche_Rollladen->set('up');
                                  $Kueche_Essen_Rollladen->set('up');
                                  $Esszimmer_Rollladen->set('up');
                                  $Terrasse_Rollladen->set('up');
                              
                              }

                              Kommentar

                              Lädt...
                              X