Ankündigung

Einklappen
Keine Ankündigung bisher.

Oder Logik

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

    [Codebeispiel] Oder Logik

    hallo ich probiere schon seit Tage eine oder logik zu realisieren aber schaffe es leider nicht könnte mir jemand dabei helfen?

    Ich möchte wenn gewisse gruppenadressen eingeschalten sind eine weitere einschalten bis alle aus sind ?


    würde mich über hilfe sehr freun

    LG

    #2
    Dann zeig doch mal her was Du bis jetzt hast....

    Und auch die Items dazu

    Kommentar


      #3
      Ich glaube in Zeile 10 ist ein Fehler!

      Kommentar


        #4
        Hättet ihr nicht ein allgemeines Beispiel in der Richtung? Habe die Items nur vom normalen schaltzustand auslesen wollen?
        ist das nicht möglich weil du die Items sehen möchtest?

        ich muss dazu sagen das es meine 1 Logik ist die ich versuche zu realisieren

        Kommentar


          #5
          Ganz ehrlich: Ich verstehe nicht mal was Du genau willst - Zitat: "Ich möchte wenn gewisse gruppenadressen eingeschalten sind eine weitere einschalten bis alle aus sind ?"

          Wenn Du weitere einschaltest, wieso sind dann irgendwann alle ausgeschalten?! Mindestens in Prosa musst Du das formulieren.

          Und: Grundlagendoku zu SHNG gibt es wie Sand am Meer. Bspw. https://www.smarthomeng.de/user/logiken/logiken.html.
          Zumindest erste Gehversuche kann man schon vom Fragesteller selber erwarten. Wir werden hier ja nicht bezahlt. Mache ne Logik mit watch_item und versuche dann mal die Basics selber zu schreiben. Selbst wenn die Arbeit jemand für Dich abnimmt braucht er die Pfade der Items um die es geht.
          Zuletzt geändert von psilo; 11.04.2018, 12:12.

          Kommentar


            #6
            nein ich möchte auch nicht das mir die wer schreibt !

            es sollte so sein wenn keine eingeschaltet ist sollte der Ausgang ausgeschaltet sein aber sobald eine eingeschaltet ist sollte es einschalten auch wenn 5 zugleich ein sind und es sollte ein bleiben bis das letzte ausgeschaltet wird egal welches das letzte oder das erste ist also eine ganz normale oder Logik wie man sie von einer SPS kennt.
            kannst mir folgen?

            Tut mir leid wegen den geringen Infos.

            lg

            Kommentar


              #7
              mach entweder ein hilfsitem dass die daten der anderen items auswertet mit eval und eval_trigger oder mache eine logik die auf alle relevanten items "watched" und programmier da drin das was du willst

              Kommentar


                #8
                und genau das ist meine frage wie mach ich das?

                Kommentar


                  #9
                  Hi Patzi,

                  was Du möchtest, ist Standardfunktionalität und geht (schon immer) ohne Logik:

                  Code:
                  ItemErgebnis:
                      type: bool
                      name: Ergebnis (ODER)
                      eval: or
                      eval_trigger: 
                          - .Unteritem1
                          - .Unteritem2
                          - .Unteritem3
                          ...
                          - .UnteritemN
                      Unteritem1:
                          type: bool
                          name: Zustand von Objekt 1
                          knx_dpt: 1
                          knx_listen: x/y/z
                      Unteritem2:
                          type: bool
                          name: Zustand von Objekt 2
                          knx_dpt: 1
                          knx_listen: xx/yy/zz
                      Unteritem3:
                          type: bool
                          name: Zustand von Objekt 3
                          knx_dpt: 1
                          knx_listen: xxx/yyy/zzz
                          ...
                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Kann ich dafür eine normale Item anlegen und dies hinein kopieren?

                    Ganz oben kommt ein knx_send mit der Gruppenadresse hinzu die eingeschaltet werden soll oder sehe ich das falsch?

                    Kommentar


                      #11
                      Lies bitte die Doku:

                      https://www.smarthomeng.de/user/konf...highlight=eval

                      Das Parent Item wertet die Werte aller Child items aus und macht ein OR drüber. Wenn Du auf das resultat reagieren magst entweder via Logik oder direkt auf den KNX Bus, ja - da sendet er aber den wert hin den das eval ausgewertet hat.
                      also eine 1 sobald eines der child items an ist und eine 0 wenn alle aus sind. sollte das sein was du brauchst...

                      man kann das auch ohne parent child relation machen, dann musst du aber auf den gesamten itempfad zugreifen. (daher auch die frage ganz am anfang von mir)

                      steht aber alles schön ausführlich in meinem link
                      Zuletzt geändert von psilo; 11.04.2018, 13:01.

                      Kommentar


                        #12
                        jetzt hätte ich wieder eine frage wenn ich den Code habe muss ich den schaltzustand vom zuschaltenden ausfragen oder erkennt er ihn automatisch bzw. sendet ihn halt doppelt?

                        ist dieser Code funktionsfähig?

                        ItemErgebnis:
                        type: bool
                        name: Ergebnis (ODER)
                        eval: or
                        eval_trigger:
                        - .OGSchlafzimmer
                        - .OGWohnzimmer
                        - .EGEsszimmer
                        - .EGTerasse
                        knx_send: 5/1/0
                        OGSchlafzimmer:
                        type: bool
                        name: Zustand von Musik OG Schlafzimmer
                        knx_dpt: 1
                        knx_listen: 5/0/0
                        OGWohnzimmer:
                        type: bool
                        name: Zustand von OGWohnzimmer
                        knx_dpt: 1
                        knx_listen: 5/0/1
                        EGEsszimmer:
                        type: bool
                        name: Zustand von EGEsszimmer
                        knx_dpt: 1
                        knx_listen: 5/2/0
                        EGTerasse:
                        type: bool
                        name: Zustand von EGTerasse
                        knx_dpt: 1
                        knx_listen: 5/2/1

                        Kommentar


                          #13
                          eval_trigger triggered wenn sich der zustand eines der triggernden items ändert.. (also der Wert von 0 auf 1 geht bspw).

                          PS: Probiers doch einfach und schau im Backend welche Werte das item annimmt ;-) Und im Log ob es Fehler gibt.

                          Kommentar


                            #14
                            das bedeutet also ich brauch es nicht?

                            und ich speichere dies einfach zu den anderen Items hinzu?
                            und muss dies auch nicht aktivieren oder der gleichen?
                            nur das backend halt neu starten?

                            Kommentar


                              #15
                              was ist "es"? Ich glaube Du hast den Beitrag oben gerade angepasst: wenn das Item an das er sendet 1 ist, schickt er halt nochmal ne 1 hin. Wo ist das Problem?
                              Und was meinst Du mit "und ich speichere dies einfach zu den anderen Items hinzu?"?

                              Und natürlich musst Du SHNG neu starten wenn Du an den Itemdefinitionen etwas änderst?!

                              Kommentar

                              Lädt...
                              X