Ankündigung

Einklappen
Keine Ankündigung bisher.

LinKNX: Diskussionen zu Tipps, Tricks und Beispiele

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

    #16
    Viel kann ich noch nicht beitragen. Gerade habe ich mit der Zirkulationspumpe angefangen. Da fehlt aber noch der Teil, der sie laufen läßt, wenn der Puffer geladen wird.

    btw. Kann jemand mal ein paar Beispiel für "during" und "every" bringen?
    Ich finde da nix zu...

    Code:
    <!-- Zirkulation temperaturgesteuert in fixen Zeitraeumen-->
            <rule id="zirkulation_temp">
                    <condition type="and">
                            <condition type="or">
                                    <condition type="timer">
                                            <at wdays="1234567" hour="06" min="00" exception="no" />
                                            <until wdays="1234567" hour="09" min="00" exception="no" />
                                    </condition>
                                    <condition type="timer">
                                            <at wdays="1234567" hour="17" min="00" exception="no" />
                                            <until wdays="1234567" hour="23" min="30" exception="no" />
                                    </condition>
                            </condition>
                            <condition type="object" id="ww_temp" op="gt" value="30" />
                            <condition type="object" id="zirkulation_temp" op="lt" value="26" trigger="true" />
                    </condition>
                    <actionlist>
                            <action type="cycle-on-off" id="zirkulation" on="180" off="20" count="1"/>
                    </actionlist>
            </rule>
    Derzeit zwischen Kistenauspacken und Garten anlegen.
    Baublog im Profil.

    Kommentar


      #17
      Hi,

      every ist recht einfach:
      Code:
      <rule id="EveryBeispiel">
        <condition type="timer" trigger="true">
          <every>3600</every>
        <condition>
        <actionlist>
          <action .../>
        </actionlist>
      </rule>
      Die action wird im obigen Beispiel jede Stunde getriggert. Ich kann es gerade nicht ausprobieren, aber es sollte auch
      Code:
          <every>1h<every>
      gehen. During hab ich noch nicht verwendet, aber so wie ich die Doku verstehe, sollte das folgende every/during
      Code:
      <rule id="EveryDuringBeispiel">
        <condition type="timer" trigger="true">
          <every>3600</every>
          <during>60</during>
        <condition>
        <actionlist>
          <action .../>
        </actionlist>
        <actionlist type="on-false">
          <action .../>
        </actionlist>
      </rule>
      aussagen, dass jede Stunde die true-action getriggert wird, dann nach 1 Minute die false-action.

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #18
        Ich dachte, das "during" eher meint, das für 60s die true action ausgeführt wird...
        mmmh.
        Derzeit zwischen Kistenauspacken und Garten anlegen.
        Baublog im Profil.

        Kommentar


          #19
          Hi,

          ich glaube - so wie ich Dich verstehe - das es genau das ist, was Du meinst.

          Eine timer-condition erlaubt Dir, 2 Zeiten zu beschreiben:
          • Wann wird die true-action ausgeführt (die dann z.B. eine 1 sendet)
            Dies kann man als Zeitpunkt mit <at> formulieren oder als Zeitintervall mit <every>.
          • Wann wird die false-action ausgeführt (die dann z.B. eine 0 sendet)
            Dies kann man als Zeitpunkt mit <until> oder als Zeitintervall mit <during> formulieren.


          Gehe jeden Tag um 15 Uhr für 60 Sekunden an heisst also:
          Code:
          <condition type="timer" trigger="true">
            <at hour="15"/>
            <during>60</during> 
          </condition>
          Technisch gesehen sendet das <during> eine 0, semantisch betrachtet sagt es "halte die 1 für 60 Sekunden".

          Hoffe, das ist jetzt etwas klarer...

          Gruß, Waldemar

          P.S.: Meiner Meinung nach braucht man <during> nicht mehr seit es <condition type="time-counter"> gibt...
          OpenKNX www.openknx.de

          Kommentar


            #20
            Zitat von greentux Beitrag anzeigen
            Ich dachte ... das für 60s die true action ausgeführt wird...
            mmmh.
            Um es nochmal exakt auszudrücken: Eine Action wird nie eine gewisse Zeit lang ausgeführt, sondern ist ein kurzfristiges Ereignis, das irgendwann passiert.

            Man kann zwar durch LUA-Scripts eine action erzeugen, die wirklich lange läuft, aber das ist (aus der Sicht von LinKNX) nicht abbrechbar und blockiert die Ausführung von anderen LUA-Scripts - ist also sehr schlecht!!!

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #21
              P.S.: Meiner Meinung nach braucht man <during> nicht mehr seit es <condition type="time-counter"> gibt...
              Mmmh, sehe ich nicht ganz so.
              Time-Counter zählt von Event eine Zeit.
              Bei During könnte man sagen, sas für einen Zeitraum geprüft wird.

              Das During hätte vermutlich auch eher "after" (da wird das dann nämlich 0) heissen sollen
              Derzeit zwischen Kistenauspacken und Garten anlegen.
              Baublog im Profil.

              Kommentar


                #22
                Mal eine andere Frage...

                Ich habe es nicht getestet, aber spricht etwas gegen zwei linKNX-Instanzen, z.B. Lichtsteuerung und Multiroom, mit jeweils eigener linknx.xml?

                Der Hintergrund ist, dass meine Konfiguration mittlerweile sehr mächtig geworden ist und damit leider auch sehr unübersichtlich.
                Wenn ich zwei Instanzen laufen hätte, brauche ich
                • die Objekte doppelt,
                • eine Kommunikation zwischen den beiden Instanzen geht nur über normale KNX-GAs und
                • der Ressourcenbedarf ist etwas höher,
                aber gäbe es sonst noch Nachteile?

                Kommentar


                  #23
                  Zitat von panzaeron Beitrag anzeigen
                  Ich habe es nicht getestet, aber spricht etwas gegen zwei linKNX-Instanzen, z.B. Lichtsteuerung und Multiroom, mit jeweils eigener linknx.xml?
                  Ich denke das ist kein Problem. Ich setze selbst neben meinem Haupt linknx ein bis zwei linknx Instanzen auf meinen OpenWrt APs zu Testzwecken ein.
                  aber gäbe es sonst noch Nachteile?
                  Die Regelsets auf den verschiedenen Instanzen müssen wohl logisch voneinander unabhängig sein, denn gegenseitig wissen sie ja nichts voneinander, sondern kommunizieren direkt über eibd autonom mit dem Bus. Für meine knxweb Visu führe ich auch einige interne Zustände (also ohne GA), welche halt nur über den Haupt linknx geführt werden. Dafür brauche ich auf den Test linknx gar nicht alle GA zu führen.

                  Gruss, Othmar
                  EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                  Kommentar


                    #24
                    Hi,

                    ich nutze für Tests neuerdings auch eine 2. Instanz, funktioniert also.

                    Zitat von panzaeron Beitrag anzeigen
                    eine Kommunikation zwischen den beiden Instanzen geht nur über normale KNX-GAs
                    Theoretisch sollte die Kommunikation zwischen den beiden auch über die XML-Schnittstelle funktionieren, aber GA's sind natürlich einfacher...

                    Gruß, Waldemar
                    OpenKNX www.openknx.de

                    Kommentar


                      #25
                      Zitat von panzaeron Beitrag anzeigen
                      Ich habe es nicht getestet, aber spricht etwas gegen zwei linKNX-Instanzen, z.B. Lichtsteuerung und Multiroom, mit jeweils eigener linknx.xml?
                      Noch ein Gedanke dazu: wenn du zwei oder mehrere Instanzen von linknx auf dem gleichen System laufen lassen willst, dann könnte es sich lohnen, das XML zu modularisieren, z.B in einen Teil Objects, einen Teil gemeinsame Settings, verschiedene Rule-Teile etc. Für jede Instanz dann ein eigenes Start-Script, welches sich beim Aufstarten die vordefinierten Module in ein individuelles XML zusammenhängt. So brauchst du die Objects nur an einem Ort zu modifizieren.

                      Gruss, Othmar
                      EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                      Kommentar


                        #26
                        Zitat von Tru Beitrag anzeigen
                        Für jede Instanz dann ein eigenes Start-Script, welches sich beim Aufstarten die vordefinierten Module in ein individuelles XML zusammenhängt.
                        Hoi Othmar

                        Geht das eigentlich bei linknx, XML's zusammenhängen? Und wenn ja, wie?
                        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


                          #27
                          Zitat von Bodo Beitrag anzeigen
                          Geht das eigentlich bei linknx, XML's zusammenhängen? Und wenn ja, wie?
                          linknx selbst kann das nicht. Ich dachte an etwas Selbstgestricktes wie
                          Code:
                          cat head.xml services.xml objects.xml rules1.xml log1.xml tail.xml > linknx1.xml
                          cat head.xml services.xml objects.xml rules2.xml log2.xml tail.xml > linknx2.xml
                          cat head.xml services.xml objects.xml rules3.xml log3.xml tail.xml > linknx3.xml
                          Ganz ausgeklügelt wäre z.B. alles noch in einem Makefile abzubilden, welches dann auch gleich noch die Abhängigkeiten auflöst und die Services neu startet wo nötig.

                          Gruss, Othmar
                          EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                          Kommentar


                            #28
                            Zitat von Tru Beitrag anzeigen
                            So brauchst du die Objects nur an einem Ort zu modifizieren.

                            Gruss, Othmar
                            Nun gut, das mache ich beim Debuggen absichtlich nicht, denn jede Statusänderung auf einer im XML definierten Objektes wird dann auch im Log gezeigt. damit geht mir ja die Möglichkeit verloren, hier einfach zu Debuggen...

                            Kommentar


                              #29
                              Code:
                              <condition type="timer" >
                                     <at wdays="12345" hour="05" min="50" exception="no" />
                                     <until wdays="12345" hour="07" min="15" exception="no" />
                              </condition>
                              Was passiert, wenn ich das trigger="true" weglasse? Wird die Rule evaluiert?
                              Wann passiert die "Action"? Nur einmal 5.50Uhr?

                              Mit trigger="true" wird dann wann und wie oft ausgelöst?

                              Grüße
                              Derzeit zwischen Kistenauspacken und Garten anlegen.
                              Baublog im Profil.

                              Kommentar


                                #30
                                Hi,

                                Zitat von greentux Beitrag anzeigen
                                Was passiert, wenn ich das trigger="true" weglasse? Wird die Rule evaluiert?
                                Wenn Du trigger weglässt, dann führt diese condition nicht dazu, dass die rule, in der sie steht, beim Eintritt der Bedingung evaluiert wird. Wenn eine andere condition in dieser rule ein trigger ist, dann wird diese condition beim triggern auch evaluiert. Ist in einer rule kein trigger, wird die rule nie evaluiert.

                                Zitat von greentux Beitrag anzeigen
                                Wann passiert die "Action"? Nur einmal 5.50Uhr?
                                Diese Frage ist - so wie die condition da oben steht - schwer zu beantworten.
                                Zum einen gibt es nicht DIE action, sondern 2 actionlist’s, eine für condition = true und eine für condition = false.
                                Zum anderen (ohne trigger) kann man nur sagen, nie...

                                Zitat von greentux Beitrag anzeigen
                                Mit trigger="true" wird dann wann und wie oft ausgelöst?
                                Mit trigger ist es einfach: Die true-actionlist wird um 5:50 Uhr, die false-actionlist um 7:15 Uhr Ausgeführt. Dies passiert täglich Mo-Fr sofern es kein Feiertag ist.

                                Gruss, Waldemar
                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X