Ankündigung

Einklappen
Keine Ankündigung bisher.

Itemwert Zyklisch auf den Bus senden.

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

    [callidomus] Itemwert Zyklisch auf den Bus senden.

    Hi,
    wie kann ich einfach den Itemwert z.b. von einer Tag/Nacht Zeitschaltuhr zklisch alle 5 minuten auf den Bus legen.

    Mir fällt als einfach Lösung nur eine separate logick ein. Ich hätte eigentlich auf autotimer getippt das er sowas wie nur zeit oder 300 = value hätte geht aber nicht kann nur fixe werte.

    Vg
    Jürgen

    #2
    Warum willst Du Tag/Nacht zyklisch senden? Reicht das denn nicht zum Ereigniszeitpunkt?

    Kommentar


      #3
      Dises Item überwache ich als Hardbeat. Wenn das nicht alles 5minuten auf den Bus kommt ist was kaputt und eine Rote Lampe geht an. ( Frag jetzt bitte nicht warum die Lampe rot sein muss. )

      Vg
      Jürgen

      Kommentar


        #4
        Hi Jürgen,

        cycle (Zyklische aktualisierung) und enforce_updates (Abhängigkeiten immer aktualisieren) setzen.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Hi Waldemar,
          wenn ich zyklische Aktualisierung auf 30 setze hagelt es fehlermeldungen

          Item setting.tagnacht: value timer/cycle dies Not Match Type bool via Scheduler Type none


          VG JÜRGEN



          Kommentar


            #6
            Hallo Jürgen,

            dann verwende auch einen Wert bei cycle oder trage bei Code etwas ein.

            Code:
            cycle = 30 = 1
            Bis bald

            Marcus

            Kommentar


              #7
              Hi Marcus,

              ich will doch nur Zyklisch den aktuellen Wert senden und nicht das Item ändern. Wenn es nicht anders geht bleibe ich halt bei meiner logick.

              Viele Grüsse
              Jürgen

              Kommentar


                #8
                Hi Jürgen,

                sorry, war gestern etwas spät und meine Antwort nicht genügend durchdacht bzw. unvollständig... Mein Pattern für zyklisch senden ist immer:

                Code:
                [itemname]
                    type = bool
                    knx_send = ...
                    knx_listen = ...
                    enforce_updates = true
                    cycle = 30 = senden
                    code = cd.itemanme() if value == "senden" else value
                Das Item wird alle 30 Sekunden durch cycle mit dem Wert "senden" getriggert (der über den Bus nicht kommen kann). Der codeblock setzt in dem Falle einfach den Itemwert neu, was durch den eval_trigger zum erneuten senden führt. Wird das Item durch knx_listen getriggert, übernimmt der eval einfach den value.

                So kannst Du normal von außen was setzen und hast ein Senden alle 30 Sekunden.

                Gruß, Waldemar
                Zuletzt geändert von mumpf; 05.12.2016, 13:07. Grund: Syntaxfehler im Code-Beispiel berichtigt
                OpenKNX www.openknx.de

                Kommentar


                  #9
                  Hi,

                  ich probier mal heute abend die beiden varianten aus. Die zweite funktioniert denke ich immer die erste finde ich schöner.

                  cycle = 30
                  codeblock = value

                  oder

                  cycle: 30 = senden
                  codeblock: cd.myitem() if value == "senden" else value

                  Viele Grüsse
                  Jürgen




                  Kommentar


                    #10
                    Hallo Jürgen,

                    der erste wird nicht funktionieren, da 'value' nicht definiert bzw. None ist.

                    Bis bald

                    Marcus

                    Kommentar


                      #11
                      Hi,

                      wenn man nix eingibt könnte man dann nicht impliziert den itemwert als value nehmen?

                      Viele Grüsse
                      Jürgen

                      Kommentar


                        #12
                        Hallo Jürgen,

                        könnte man, das würde allerdings suggerieren das der Wert erneut gesetzt wurde. Das passt jetzt in Deinem Fall, muss aber nicht immer so sein.
                        Am saubersten finde ich das immer noch über die (bestehende) Logik. Man muss nicht alles in ein Item quetschen.

                        Bis bald

                        Marcus

                        Kommentar


                          #13
                          Zitat von callidomus Beitrag anzeigen
                          Am saubersten finde ich das immer noch über die (bestehende) Logik. Man muss nicht alles in ein Item quetschen.
                          Hi Marcus,

                          da sind sie wieder, unsere unterschiedlichen Ansichten
                          Wenn ich ehrlich bin, finde ich eine Aufgabe wie zyklisch senden sollte ohne eine Logik auskommen.

                          Ich finde aber, dass wir bzw. Du auf dem richtigen Weg sind:
                          • Einfache Sachen lassen sich im codeblock ausdrücken,
                          • kompliziertere durch Zustandsautomaten
                          • und Logiken/Plugins bleiben dann für den Anschluss externer Datenquellen wie iCal, DWD oder eKey.
                          Für mich ist das die Arbeitshypothese, mit der ich glücklich werden kann, da hier die Komplexität der Lösung mit der Komplexität der Aufgabe steigt.

                          Gruß, Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            #14
                            Hi,
                            und wie bekomme ich das hin mit einer Logik ohne den itemwert zu lesen und wieder zu setzten? Nur so wird doch ein KNX Send gemacht.
                            VG
                            Jürgen

                            Kommentar


                              #15
                              Hi Jürgen,

                              Marcus meint nicht, dass Du den Wert nicht wieder setzen sollst, er meint nur, dass man nicht jedesmal bei einem cycle ohne value den Wert erneut setzen will.
                              Außerdem gäbe es noch die Möglichkeit, in einer Logik direkt an die GA zu senden, ohne das Item neu zu beschreiben.
                              Muss man aber alles nicht machen, für deinen Anwendungsfall klappt es ja so.

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar

                              Lädt...
                              X