Ankündigung

Einklappen
Keine Ankündigung bisher.

Misterhouse Fragen

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

    #46
    Zitat von ThorstenGehrig Beitrag anzeigen
    ... Damit zieht man sich die sourcen ... Ich hab auch gerade erfolgreich "linknx" zum laufen gebracht :-) ...
    Supi danke, klappt alles wunnebar mit der 3. GA beim Dimmen.
    Die neuen Versionen von mh kommen jetzt auch bald dran.
    Aber erst freu ich mich mal über das Andimmen mit bestimmten Werten
    Mit linknx werd' ich mich auch noch beschäftigen - später.
    Ich freu mich gerade erstmal viereckig.

    Wenn Du vielleicht Tipps zu 1-Wire und owfs brauchst ...
    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


      #47
      Hi,

      Zitat von Bodo Beitrag anzeigen
      Wenn Du vielleicht Tipps zu 1-Wire und owfs brauchst ...
      Ja - wenn du Tips hast. Ich will mit 1-wire meine Heizungssteuerung machen. Dazu brauche ich in misterhouse oder linknx natürlich die 1-wire werte um darauf zu reagieren.

      owfs läuft bereits - leider habe ich noch keine sensoren (müssten die tage kommen). Im Augenblick habe ich 0 Ahnung wie das gehen soll - mein Plan ist sich anzuschauen wie Wiregate das macht... (später mal).
      Wenn du dazu was sagen kannst (oder jemand anderes). Am besten wäre natürlich ein Beispielscode....

      Gruß
      Thorsten

      Kommentar


        #48
        php Beispiel für owhttpd

        Zitat von ThorstenGehrig Beitrag anzeigen
        ... Ja - wenn du Tips hast ... owfs läuft bereits ... Am besten wäre natürlich ein Beispielscode ...
        Hi Thorsten

        Ui owfs läuft bereits, da hatte ich mir ganz schön die Zähne ausgebissen, bis das lief, Respekt.

        Mit PHP hab' ich die Temperaturen schon mal auf meiner Website:
        erstmal eine gettemp.php
        Code:
        <?php
        function temperatur($welche) {
          // da wo der owfs drauf läuft:3001
          $filename="http://******:3001/uncached/".$welche."/temperature12";
          $handle=fopen($filename, "r");
          $contents=fread($handle, 1000);
          fclose ($handle);
          // Ausgabe nur die Zahl
          if (preg_match("/[0-9]+\.[0-9]+/", $contents, $matches)) {
            return $welche.": ".$matches[0];
          }
        }
        ?>
        und in der Hauptseite.php
        Code:
        <?php
          require "gettmp.php";
        ?>
        
        <?php echo temperatur("balkon"); ?>
        <?php echo temperatur("zimmer"); ?>
        den owhttpd rufe ich mit :
        Code:
        # /opt/owfs/bin/owhttpd -a /opt/owfs/bin/alias.txt -p 3001 -u  auf.
        In der alias.txt stehen die beiden lesbaren alias von meinen momentan zwei Temp.-Fühlern drin:
        Code:
        /28.43BCCEblabla00 balkon
        /28.2BA1CEblabla00 zimmer
        Der owhttpd erzeugt ein virtuelles Filesystem in dem die Temperaturen als Files stehen. Files opnen und readen und fertig

        Ich hoffe Du "kommst drus" wie es hier so schön heisst, Du "blickst durch"
        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


          #49
          Doppelbelegung Taster

          Hallo,

          hier das kniffelige Misterhouse-Herbsträtsel:

          gegeben ist ein GIRA RTR TS2+ und eine freie Taste soll wie folgt belegen.

          kurzer Tastendruck (<500ms): UMschalten $Objekt1
          langer Tastendruck (>500ms): UMschalten $Objekt2
          LED: Statusanzeige von $Objekt3


          Herausforderungen:
          1) Die Zeit zwischen kurzem und langem Tastendruck soll variabel sein - misterhouse verarbeitet time_idle z.B. jedoch nur sekundengenau

          2) Die (etwas dumme) Applikation des RTR kann zwar die LED entsprechend des Status schalten, aber halt nur für den Status der hinterlegten GA. Aufgabe hier ist es, dass zwar Status von $Objekt3 angezeigt, aber ein anderes Objekt geschaltet wird (wenn durch Drücken und Loslassen der Taste $Objekt3 zweimal getoggelt würde, wäre das nicht tragisch)

          Wer hat einen Vorschlag für die entsprechende Misterhouse Logik? (ggf. auch erstmal für den ersten Teil der Fragestellung).

          Kommentar


            #50
            Zitat von spookyt. Beitrag anzeigen
            kurzer Tastendruck (<500ms): UMschalten $Objekt1
            langer Tastendruck (>500ms): UMschalten $Objekt2
            Ich glaube das es nicht sinnvoll ist, so kurze Zeitdifferenzen auf einem externen System sicher zu erfassen, denn der Traffic auf dem BUS, dem LAN oder dem Misterhouserechner könnten das Ergebnis zu stark beeinflussen.

            Als Idee könnt man probieren, die Taste so zu parametrisieren, dass meim drücken EIN und beim loslassen AUS gesendet wird.
            Dann fragt man in Misterhouse den Status ab und wenn EIN gedrückt wird legt man die Zeit auf eine Variable. Wenn AUS gedrückt wird nimmt man wieder die Zeit und anhand der Zeitdifferenz startet man die gewünschte Funktion. Wenn man Time::HiRes benutzt ist die Auflösung glaube ich fein genug -- aber ob die Kommandos schnell genug ankommen muß man erst probieren.
            Gruß,
            Marc

            Kommentar


              #51
              Zitat von Bodo Beitrag anzeigen
              Mit linknx werd' ich mich auch noch beschäftigen - später.
              [...]
              Wenn Du vielleicht Tipps zu 1-Wire und owfs brauchst ...
              Zitat von ThorstenGehrig Beitrag anzeigen
              Ja - wenn du Tips hast. Ich will mit 1-wire meine Heizungssteuerung machen. Dazu brauche ich in misterhouse oder linknx natürlich die 1-wire werte um darauf zu reagieren.
              Das kommt mir alles sehr bekannt vor, in genau diese Richtung will ich auch (Wiregate wäre auch schon vorhanden; die Wohnung erst im März, d.h. bis dahin hab ich kaum oder kein KNX am WireGate...)

              Mein Ziel, in diese Richtung zu gehen, hab jedoch noch nicht angefangen (die Wand-Schlitze haben einfach gerade eine höhere Prio...). Aber wenn Ihr hier euere Erfahrungen und Hinweise schreibt würde ich mich sehr freuen und gleich produktiver loslegen können
              (Genail wäre ein HowTo: MisterHouse oder linknx auf dem WireGate zum laufen bringen, 1wire einlesen und über KNX einen Heizungsaktor passend ansteuern, dazu aktuellen Status per Web anzeigen )
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                #52
                Zitat von Chris M. Beitrag anzeigen
                Das kommt mir alles sehr bekannt vor, in genau diese Richtung will ich auch ... Genail wäre ein HowTo: MisterHouse oder linknx auf dem WireGate zum laufen bringen, 1wire einlesen und über KNX einen Heizungsaktor passend ansteuern, dazu aktuellen Status per Web anzeigen
                Hi Chris
                Genau an der Aufgabe bin ich dran, aber eben Andere mit mehr Know-how auch. Mein Wissen ist second-hand.
                Ich werd' wohl noch einiges lernen müssen. Das Alix1D hab' ich schon zwei mal neu aufgesetzt, und immer wieder mit neueren Versionen...
                Die Entwicklung auch hier im Forum ist rasant, und ich blick ehrlich gesagt nimmer durch was aktuell ist. ( Misterhouse, linknx mit knxweb und owfs ( 1-Wire )) Bei mir liegen 50 Temp-Fühler rum und wollen eingebaut werden
                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


                  #53
                  Hallo zusammen,

                  nachdem ich jetzt endlich mal dazu gekommen bin, etwas weiter in Misterhouse einzusteigen stellen sich direkt die ersten Fragen, ich hoffe der Thread paßt.

                  Bei mir ist MH auch der Grund, mich zum ersten mal mit Perl zu beschäftigen, bislang komme ich in dem Bereich eher aus der Python Ecke... Es könnte also durchaus sein, daß ich eher an der Stelle ein Problem habe.

                  Also: Ich bin dabei, eine etwas komplexere Logik zum Bewegen meiner Rolläden zu programmieren, dabei möchte ich auch Zeiten, wie sie z.B. von time_add zurück gegeben werden, mit anderen Zeiten vergleichen. Nur habe ich dazu nur die Operatoren zum Stringvergleich wie ge oder lt gefunden. Wenn die Zeiten gleich formatiert sind klappt das ja auch, geht aber gewaltig in die Hose, wenn die gleiche Zeit z.B. ein mal als "07:00" und "7:00" geschrieben wurde, oder "7:00" mit "17:00" verglichen werden soll.

                  Gibt es da vielleicht eine bessere Methode, die ich noch nicht gefunden habe, sonst muß ich ja erst bei allen Zeiten das Format überprüfen.


                  Zweite Frage: Ich habe ja in einem anderen Thread von meinem Problem mit dem Hager Dimmaktor geschrieben. Als Folge nimmt MH jetzt an, daß der Aktor ausgeschaltet ist, da er auf dem EIN/AUS Objekt beim Zurücklesen immer eine 0 meldet, nur auf den Rückmeldeobjekten klappt es.

                  Kann ich MH vielleicht beibringen (ohne gleich die EIB_Items.pm umzukrempeln), daß er einen read request auf einer anderen GA durchführt als das Schreiben eines Wertes? Dann könnte ich die Rückmeldeadresse als zusätzliche hörende Adresse eintragen und MH müßte auf dieser Adresse aktiv zurücklesen.

                  Danke schon mal für die Hilfe!

                  Kommentar


                    #54
                    Hallo Jockel,

                    was willst Du denn eigentlich vor? Ich kann mir grad nicht vorschnellen, warum man bei der Rollladen-Automatik Zeiten vergleichen möchte.

                    Gruss
                    Michael
                    Viele Grüße,
                    Michael

                    Kommentar


                      #55
                      was willst Du denn eigentlich vor? Ich kann mir grad nicht vorschnellen, warum man bei der Rollladen-Automatik Zeiten vergleichen möchte.
                      Die Rolläden sollen abhängig vom Sonnenaufgang verfahren werden, daß aber nur innerhalb eines vorgegebenen Zeitfensters, wenn der Sonnenaufgang (plus Offset) außerhalb dieses Fensters liegt, dann an den frühesten bzw. spätesten erlaubten Zeiten.

                      Dazu kommt noch eine Zufallskomponente, damit sie nicht jeden Tag zur gleichen Zeit fahren, die Funktionalität bietet ja MH schon.

                      Kann mir gut vorstellen, daß man das in Perl ev. anders lösen würde, in der Sprache hab ich vorher noch nie programmiert. Ich werde mich aber mal mit den passenden Perl Modulen beschäftigen.

                      Kommentar


                        #56
                        Ich mach das so:

                        Code:
                        if (($Weekday && time_now "$Time_Sunrise + 0:15")||($Weekend && time_now "$Time_Sunrise + 1:15") { 
                          set $Wohnen_Jalousie_POS 100;
                        }
                        if (($Weekday && time_now "$Time_Sunset + 0:15")||($Weekend && time_now "$Time_Sunset + 1:15") { 
                          set $Wohnen_Jalousie_POS 0;
                        }
                        Die einzelnen Functions sind hier zu finden: B<mh> - MisterHouse Home Automation Program
                        Gruß,
                        Marc

                        Kommentar


                          #57
                          Ich habe es so gelöst (Ausschnitt):

                          Code:
                          # jeden Morgen Rolllaeden EG 1h 10min  nach Sonnenaufgang hoch
                          if (time_now("$Time_Sunrise + 1:10")) {
                              set $Wohnen_Rollladen UP;
                              set $Arbeiten_Rollladen UP;
                          }
                          
                          # Rolllaeden von Mo-Fr 7:00 Uhr hoch
                          if (time_cron('0 7 * * 1-5')) {
                              set $Wohnen_Rollladen UP;
                              set $Arbeiten_Rollladen UP;
                          }
                          Also entweder fahren sie 1:10h nach Sonnenaufgang oder 7:00 hoch. Falls der Sonnenaufgang + Offset nach 7:00 ist und die Rollläden schon oben sind, merkt der Aktor es und macht nichts.

                          Gruss
                          Michael
                          Viele Grüße,
                          Michael

                          Kommentar


                            #58
                            Danke schon mal für Eure Hilfe!

                            Ich hab in meiner Logik ein paar Sachen kombiniert: Die Rolläden sollen innerhalb eines Zeitfensters zufallsgesteuert gefahren werden, sonst am Rande des Zeitfensters. Dazu möchte ich die Sonnenauf- und untergangszeiten mit dem Fenster vergleichen um dann zu entscheiden, welche der Zeiten ich beim Aufruf von time_random_offset verwende.

                            Das Zweite ist, daß ich einige Plausibilitätsprüfungen eingebaut habe, um zu verhindern daß die Rolläden z.B. im 1s Takt hoch- und runtergefahren werden, weil ich irgendwo einen Fehler gemacht habe. Vielleicht bin ich da aber auch zu paranoid.

                            Letztlich suche ich also etwas wie time_greater_than, nur als Vergleich zwischen zwei Parametern und nicht mit der aktuellen Zeit, ich werde mal versuchen das selbst zu realisieren.

                            Der Ansatz den Rolläden einfach mehrfach einen Hoch- oder Runterfahrbefehl zu geben könnte aber auch funktionieren.

                            Kommentar


                              #59
                              Ich hab eben mal in die Definition der entsprechenden MH Funktionen geschaut und nach ein klein wenig Copy&Paste Programmierung klappt jetzt alles!

                              Kommentar

                              Lädt...
                              X