Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu Logikbaustein "Wenn-Dann-Sonst Variabel 19000119"

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

    Frage zu Logikbaustein "Wenn-Dann-Sonst Variabel 19000119"

    Moin in die Runde,

    ich möchte obigen Logikbaustein verwenden um einen Wert, in meine Fall Stromeinspeisung bzw. Netzbezug meiner PV Anlage, zu vergleichen.
    Es soll eine 1 oder 0 ausgegeben werden in Abhängigkeit davon ob Eingespeist bzw. Netzbezug erfolgt.
    Also ist der Wert an E1 kleiner bzw. gleich 0 dann 0 bzw.1 wenn größer 0.

    Dazu rechne ich den Eigenverbrauch aus Netz , Batterie und PV zusammen und ziehe davon die PV Leistung ab.
    Je nach Bedingungen führt dies zu einem positiven, also Netzeinspeisung, bzw. negativen Wert, also Netzbezug.
    Diesen Wert führe ich an E1 des Bausteins.

    Ist der Wert positiv wird der Wert 1, bzw. 0 bei einen negativen Wert durch den Logikbaustein generiert.
    Mit diesem Wert trigger ich eine Animation.

    Das funktioniert soweit auch alles, nur habe ich das Problem, dass jede Änderung an E1, was bei PV Anlage / Stromverbrauch nicht ungewöhnlich ist, zu einem erneuten trigger des Bausteins führt und der Wert (0 oder 1) am A1 erneut geschrieben wird, was unweigerlich zum Neustart der Animation führt.

    Wie bekomme ich das hin, das der Wert an A1 nur geändert bzw. erneut gesendet wird wenn der Wert an E1 sich von positiv nach negativ, bzw. umgekehrt, ändert ?
    Habe ich eventuell die falsche Ausgangsbox in meiner Logik verwendet ?

    Also solange der Wert positiv ist, egal wie oft er sich ändert, wird nur einmal der Wert 1 geschrieben.
    Erst wenn der Wert an E1 negativ bzw. 0 ist ändert sich der Wert an A1 auf 0 und wird auch nicht erneut gesendet bis der Wert an E1 wieder positiv ist.

    Anbei meine aktuelle Logik dazu:
    Angehängte Dateien

    #2
    SendByChange-LBS (13000030) an A1 des LBS und dann auf den Ausgang.
    Alternativ Flankendetektor-LBS (13000039) verwenden.

    Kommentar


      #3
      Hallo,

      danke für die Antwort jonofe :-)

      Habe nach meine Post hier mir nochmal die LBS in EDOMI genauer angeschaut und bin da auch auf den SBC Baustein gestossen.
      Der brachte dann auch die Lösung.

      Gruß
      Dirk

      Kommentar


        #4
        saegefisch kannst du bitte einmal schauen, weshalb dein LBS hier kein korrektes Ergebnis ausgibt? Benutze deinen LBS sehr oft in meinen Logiken und er funktioniert grundsätzlich einwandfrei. Nur hier irgendwie nicht.

        Bildschirmfoto 2021-01-31 um 22.05.36.png
        E1 und E3 müssten eigentlich erfüllt sein und somit E4 an A1 ausgeben. Aber es wird E5 an A1 ausgegeben.


        Den anderen Vergleichs LBS habe ich nur zu Testzwecken eingefügt um zu schauen, ob dieser Wert (Zeichenkombination) vielleicht grundsätzlich nicht funktioniert. Aber bei diesem geht es komischerweise.
        Gruß David

        Kommentar


          #5
          Freut mich... ich nutze ihn selber vielfältig...

          Danke für den Hinweis.
          Bin unterwegs - schaue ab Mittwoch nach...

          Kommentar


            #6
            shortyle : sorry, hat eine Weile gedauert. Anfangs kam ich nicht dahinter, woran es liegt; spekulierte über Unicode/Stuerzeichen, die das Coding stören. Am Ende war's ganz einfach: Das ; am Ende deiner Werte... der LBS nutzt das ; als Separator für Werteliste - damit musste das schief gehen. Der LBS weicht jetzt automatisch auf einen anderen aus, wenn E1 ein ; enthält.

            Freue mich über gelegentliche Rückmeldung, ob es jetzt auch bei Dir funktioniert.

            Danke für den wertvollen Testfall - durchaus ja alltagsrelevant. Damit konnte der LBS noch besser werden.

            siehe Changelog
            Zuletzt geändert von saegefisch; 08.05.2021, 15:16.

            Kommentar


              #7
              Gerade nochmal getestet und es läuft. Besten Dank für den Fix.
              Gruß David

              Kommentar


                #8
                saegefisch

                irgendwie komme ich gerade nicht drauf was hier falsch läuft.. ?? auf E5 habe ich <no> ... trotzdem triggert er den Ausgang.. im Quellcode finde ich auch auf den kurzen Blick keinen Fehler

                Trage ich einen Wert bei E5 ein kommt der Wert.. also klappt der Vergleich ja.. aber bei <no> bekomme ich E1 getriggert

                Screenshot 2023-07-06 102006.png
                Zuletzt geändert von blaky; 06.07.2023, 09:23.

                Kommentar


                  #9
                  Versuch mal an E2 ein GE einzutragen.

                  Glaube da ist noch ein kleiner Fehler im Code:

                  PHP-Code:
                  $op str_replace(">""GT"$op);
                  $op str_replace(">=""GE"$op); 
                  Hier wird vermutlich zuerst das > durch ein GT ersetzt und resultiert dann in 'GT='
                  Die str_replace müssten vermutlich in umgekehrter Reihenfolge ausgeführt werden.

                  Kommentar


                    #10
                    Screenshot 2023-07-06 112225.png

                    auch merkwürdig..
                    irgendwas stimmt denke mit dem $op als array nicht

                    Kommentar


                      #11
                      jonofe ja du hast Recht.. das wird der Fehler sein.. deshalb passt das auch im 2. Screenshot nicht

                      Kommentar


                        #12
                        Danke für den Hinweis. Schaue ich mir an

                        Kommentar


                          #13
                          Habe den Fehler korrigiert und den Baustein einige Tage problemlos bei mir laufen gelassen. Gerade V0.7 hoch geladen.
                          Danke André und Tobi!

                          Kommentar

                          Lädt...
                          X