Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx: actionlist - Mathematik möglich?

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

    KNX/EIB linknx: actionlist - Mathematik möglich?

    Hallo,

    in der linknx Doku gibt es set-value um einen festen Wert zu schreiben und copy-value um einen Wert zu kopieren. Dies hilft mir aber nicht wirklich weiter.

    Ich habe folgende zwei Anwendungsfälle, wo mir nicht klar ist, ob das mit linknx überhaupt machbar ist:

    1) Ich habe z.B. in GA 1/1/1 einen Wert stehen (DPT 14.x), den ich ereignisgesteuert um 1 erhöhen möchte.

    2) Ich möchte den Wert von GA 1/1/1 ereignisgesteuert zu einem anderen Wert in GA 1/1/2 (auch DPT 14.x) addieren.

    Kann man dies in linknx erledigen? Wenn ja, wie? Oder habt ihr eine bessere Idee?

    Danke,
    Stefan

    #2
    Hi,

    ich verwende linknx inzwischen nicht mehr, aber mit formula sollte das gehen:

    https://sourceforge.net/p/linknx/wik...yntax/#formula

    Kommentar


      #3
      Hi,

      ich nutze linknx auch nicht mehr, aber der Hinweis von Andreas1 ist richtig. Angenommen, die id für GA 1/1/1 ist "id_111" und die für GA 1/1/2 ist "id_112", dann hast Du:

      1)
      Code:
      <action type="formula" id="id_111" x="id_111" c="1"/>
      2)
      Code:
      <action type="formula" id="id_112" x="id_111" y="id_112"/>

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #4
        Vielen Dank euch beiden.
        Der Hinweis zu "formula" ist genau richtig, damit komme ich klar. Irgendwie hatte ich dies überlesen.

        Kommentar


          #5
          Erste Tests laufen erfolgreich

          Kann man bei Nutzung der timer-condition auch Sekunden angeben? Ich finde nur "hour" und "min". Irgendwo bin ich über den "delay"-Parameter gestolpert. Ist der evtl. hierfür gedacht? In welcher Einheit ist dieser anzugeben?

          Ziel ist, nacheinander zwei actions laufen zu lassen. Also um 00:00:00 die erste und um 00:00:10 die zweite, so dass diese wirklich in dieser Reihenfolge abgearbeitet werden.

          Gruß, Stefan

          Kommentar


            #6
            Zitat von netfriend Beitrag anzeigen
            Ziel ist, nacheinander zwei actions laufen zu lassen. Also um 00:00:00 die erste und um 00:00:10 die zweite, so dass diese wirklich in dieser Reihenfolge abgearbeitet werden.
            Dafür ist delay gedacht

            Kommentar


              #7
              Hatte ich mir fast gedacht. In welcher Einheit ist der Wert anzugeben?

              Edit: Habs selber gefunden. mumpf hatte das hier schon mal erklärt: https://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/23182-linknx-tipps-tricks-und-beispiele?p=396950#post396950
              Zuletzt geändert von netfriend; 08.11.2017, 12:26.

              Kommentar


                #8
                Ich bin beim Ausprobieren auf folgende Frage gestoßen, wofür ich nirgends eine Erklärung gefunden habe.
                Und zwar würde ich gerne beim Tageswechsel um 00:00 eine Aktion ausführen lassen, dazu habe ich

                Code:
                <rule id="Tageswechsel">
                   <condition type="timer" trigger="true">
                      <at hour="0" min="0"/>
                   </condition>
                   <actionlist type="if-true">   
                          .....
                   </actionlist>
                </rule>
                Nun habe ich eine zweite Aktion, die ich jedoch nur beim Monatswechsel, also am 1. des Monats um 00:00 ausführen lassen möchte.
                Dazu habe ich folgende rule erstellt:

                Code:
                <rule id="Monatswechsel">
                   <condition type="timer" trigger="true">
                        <at hour="0" min="0" day="1"/>
                   </condition>
                   <actionlist type="if-true">   
                          .....
                   </actionlist>
                </rule>

                Weiß jemand, ob das zu Problemen führt? Denn am Monatswechsel würden ja beide Bedingungen erfüllt sein. Werden dann beide actionlists abgearbeitet oder nur eine oder gar keine weil nicht eindeutig?
                Falls es nicht funktioniert, bin ich über Tipps, wie man das besser machen kann, dankbar.

                Gruß,
                ​​​​​​​Stefan

                Kommentar


                  #9
                  Hi,

                  auch wenn ich nichts mehr mit linknx mache, glaube ich es zu wissen: Es werden ziemlich sicher beide ausgeführt, die haben ja nichts miteinander zu tun. Ich kann Dir auch nicht sagen, welche zuerst ausgeführt wird.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Super, das wäre schön mal ausreichend. Zeitlich wäre es unkritisch welche zuerst ausgeführt wird. Danke für die Info.

                    Kommentar


                      #11
                      Zitat von mumpf Beitrag anzeigen
                      Es werden ziemlich sicher beide ausgeführt
                      Jepp, würde ich auch sagen.

                      Kommentar


                        #12
                        Nach einigen Tagen und vielen Tests ist mir folgendes aufgefallen:
                        Zum Tageswechsel habe ich eine actionlist mit 8 Einträgen. Verwendet wird 4x copy-value und 4x set-value. Nachdem diese zeitlich nacheinander abgearbeitet werden sollen, habe ich delay verwendet. (also erste action ohne delay, zweite action mit delay=100ms", dritte action mit delay="200ms" usw.)

                        In einem anderen Thread wurden bei delay 50...100ms genannt. Mit 100 ms funktioniert das bei mir nicht zuverlässig.

                        Entweder wird die erste action ausgeführt, die zweite nicht, die nachfolgenden werden dann alle wieder ausgeführt oder es werden die ersten drei ausgeführt und danach keine mehr. Einen richtigen Ablauf bzw. ein Fehlverhalten ist mir nicht ersichtlich.

                        Ich sehe zwar oft, dass die Werte in das jeweilige Logfile geschrieben werden, aber ein parallel laufender ETS-Gruppenmonitor sieht davon nichts. Würde bedeuten, die action wird ausgeführt, aber nicht auf den Bus gesendet. Gibt's dafür einen Grund?

                        Gestern habe ich die delay's auf 1s hochgesetzt. Nun dauert der ganze Vorgang 7 sec. ist aber komplett ausgeführt worden. Ob das Zufall war oder es wirklich an der Zeit liegt, weiß ich nicht.

                        Kennt jemand dieses Verhalten oder mache ich hier etwas falsch?

                        Kommentar


                          #13
                          Das Problem hatte ich nie.
                          Was verwendest du als Backend?
                          eibd oder knxd?
                          Wie greifen diese auf den KNX-Bus zu?

                          Kommentar


                            #14
                            Ich verwende das Raspi-Image von Michixx https://knx-user-forum.de/forum/%C3%...-mit-cometvisu
                            Dort läuft eibd und greift mittels Ethernet auf ein Weinzierl 730-KNX-IP-Interface zu.
                            Funktioniert bisher auch ganz gut, auf dem Raspi läuft CometVisu. Hier werden geschätzte 80-100 GAs visualisert, Licht/Rollo usw. gesteuert und zyklisch ca. 60 rrd-Dateien gefüllt. Ohne Probleme.

                            Ich hab noch nicht probiert, wie weit ich die 1s-delay reduzieren kann, bis es nicht mehr geht. Wollte erst mal einen Zustand erreichen, bei dem es funktioniert um auszuschließen dass noch woanders ein Problem besteht.

                            Kommentar

                            Lädt...
                            X