Ankündigung

Einklappen
Keine Ankündigung bisher.

change-Funktion

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

    change-Funktion

    Hallo Zusammen,

    entweder fehlt mir gerade der Durchblick oder die change-Funktion verhält sich nicht so wie sie sollte.

    Diese zeitbasierte Abfrage führt zu gefüllten Charts:
    [highlight=epc]
    // Schaltzustände der Wärmepumpe alle 15 Minuten in die Charts schreiben
    if mtime(00,00) or mtime(15,00) or mtime(30,00) or mtime(45,00) then \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Verdichter1_Chart,0,PageID_Heizung); \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Heizungsumwaelzpumpe_HUP_Chart,1,PageID_He izung); \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Warmwasserumwaelzpumpe_BUP_Chart,2,PageID_ Heizung); \\
    mpchart(ID_WP_Schaltzeiten_Elektroheizstab,WebZeit ,WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_Chart,0,P ageID_Heizung) \\
    endif
    [/highlight]

    Diese änderungsbasierte Abfrage führt zu leeren Charts:
    [highlight=epc]
    // Schaltzustände der Wärmepumpe bei Änderung in die Charts schreiben
    if change(WP_Ausgang_Verdichter1) \\
    or change(WP_Ausgang_Heizungsumwaelzpumpe_HUP) \\
    or change(WP_Ausgang_Warmwasserumwaelzpumpe_BUP) \\
    or change(WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1) then \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Verdichter1_Chart,0,PageID_Heizung); \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Heizungsumwaelzpumpe_HUP_Chart,1,PageID_He izung); \\
    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Warmwasserumwaelzpumpe_BUP_Chart,2,PageID_ Heizung); \\
    mpchart(ID_WP_Schaltzeiten_Elektroheizstab,WebZeit ,WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_Chart,0,P ageID_Heizung) \\
    endif
    [/highlight]

    Hat jemand eine Idee dazu?

    Viele Grüße

    Michael

    #2
    Zitat von Jambala Beitrag anzeigen
    Hat jemand eine Idee dazu?
    An sich schaut das gut aus. Kannst Du das genauer beschreiben? Wird die if-Funktion erst gar nicht ausgeführt?
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Die mpchart Funktionen innerhalb der if-Abfrage sind ja vollkommen unverändert zu der zeitbasierten Variante.

      Aus meiner Sicht geht change hier nie auf EIN, obwohl die binären Variablen immer wieder auf EIN gehen. Jede dieser vier Variablen stelle ich auch auf einem Button in der Visu dar und sehe dort immer wieder die Wechsel auf EIN.

      Im Screenshot kann man sehen, dass Verdichter, Heizungspumpe und WW-Pumpe EIN sind, aber das Chart keine Reaktion zeigt.
      Angehängte Dateien

      Kommentar


        #4
        Zitat von Jambala Beitrag anzeigen
        Die mpchart Funktionen innerhalb der if-Abfrage sind ja vollkommen unverändert zu der zeitbasierten Variante
        Hast Du mal im then Zweig auf ne Dummyaderesse geschrieben, um zu sehen, ob dieser ausgeführt wird?
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Ich habe den Fehler gefunden ...

          Kleine Zeichen können eine große Wirkung haben:

          [highlight=epc]
          // Schaltzustände der Wärmepumpe alle 15 Minuten in die Charts schreiben
          // if mtime(00,00) or mtime(15,00) or mtime(30,00) or mtime(45,00) then \\
          if change(WP_Ausgang_Verdichter1) \\
          or change(WP_Ausgang_Heizungsumwaelzpumpe_HUP) \\
          or change(WP_Ausgang_Warmwasserumwaelzpumpe_BUP) \\
          or change(WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1) then \\
          mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Verdichter1_Chart,0,PageID_Heizung); \\
          mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Heizungsumwaelzpumpe_HUP_Chart,1,PageID_He izung); \\
          mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Warmwasserumwaelzpumpe_BUP_Chart,2,PageID_ Heizung); \\
          mpchart(ID_WP_Schaltzeiten_Elektroheizstab,WebZeit ,WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_Chart,0,P ageID_Heizung) \\
          endif
          [/highlight]

          Beim Wechsel auf change habe ich die bisherige zeitbasierte if-Abfrage einfach zum Kommentar gemacht.

          Da diese Zeile aber mit einem Umbruch "\\" endete, wurde somit die gesamte if-Abfrage zum Kommentar und hatte dadurch natürlich auch keine Wirkung mehr.

          Idealerweise würde dies direkt durch das Syntax Highlighting auffallen, aber wie hier im Forum werden auch im Eibstudio nur die Zeilen mit // beginnend als Kommentar dargestellt obwohl in diesem Fall alles Kommentar ist.

          Kommentar


            #6
            Jetzt werden zwar bei jeder Änderung die Heizungsschaltzustände in das Chart eingetragen, jedoch nicht in der von mir beabsichtigten Rechteckform.

            Wie kann ich die Charts so anpassen, dass Ein/Aus in Rechteckform dargestellt wird?
            Angehängte Dateien

            Kommentar


              #7
              So richtig rechteckig wird vermutlich gar nicht gehen.
              Du müsstet bei jeder Änderungen erst noch einmal den Gegenteiligen Zustand schreiben und dann den eigentlichen Zustand.
              Verbraucht halt leider doppelt so viele Punkte im Diagramm.
              Gruß
              Volker

              Wer will schon Homematic?

              Kommentar


                #8
                Zitat von Jambala Beitrag anzeigen
                Ein/Aus in Rechteckform?
                Vielleicht hilft Dir ja der Style COLUMNS weiter?

                Gruß,
                Bernd

                Kommentar


                  #9
                  Zitat von SnowMaKeR Beitrag anzeigen
                  Du müsstet bei jeder Änderungen erst noch einmal den Gegenteiligen Zustand schreiben und dann den eigentlichen Zustand.
                  Das würde ein schön fetter Code Block. Die Schaltzustände kann ich ja nicht einfach invertieren, da ich diese zuvor für das Chart von Binär in f16 umgewandelt habe.

                  Kommentar


                    #10
                    So aus der Hüfte:
                    [HIGHLIGHT=epc]
                    if change(WP_Ausgang_Verdichter1) \\
                    or change(WP_Ausgang_Heizungsumwaelzpumpe_HUP) \\
                    or change(WP_Ausgang_Warmwasserumwaelzpumpe_BUP) \\
                    or change(WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1) then \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Verdichter1_Chart-lastStat,0,PageID_Heizung); \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Heizungsumwaelzpumpe_HUP_Chart-lastStat,1,PageID_Heizung); \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Warmwasserumwaelzpumpe_BUP_Chart-lastStat,2,PageID_Heizung); \\
                    mpchart(ID_WP_Schaltzeiten_Elektroheizstab-old,WebZeit,WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE 1_Chart-lastStat,0,PageID_Heizung) \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Verdichter1_Chart,0,PageID_Heizung); \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Heizungsumwaelzpumpe_HUP_Chart,1,PageID_He izung); \\
                    mpchart(ID_WP_Schaltzeiten_VD1_HUP_WUP,WebZeit,WP_ Ausgang_Warmwasserumwaelzpumpe_BUP_Chart,2,PageID_ Heizung); \\
                    mpchart(ID_WP_Schaltzeiten_Elektroheizstab,WebZeit ,WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_Chart,0,P ageID_Heizung) \\
                    WP_Ausgang_Verdichter1_Chart-lastStat=WP_Ausgang_Verdichter1_Chart
                    WP_Ausgang_Heizungsumwaelzpumpe_HUP_Chart-lastStat=WP_Ausgang_Heizungsumwaelzpumpe_HUP_Chart
                    WP_Ausgang_Warmwasserumwaelzpumpe_BUP_Chart-lastStat=WP_Ausgang_Warmwasserumwaelzpumpe_BUP_Cha rt
                    WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_Chart-lastStat=WP_Ausgang_Zweiter_Waermeerzeuger1_ZWE1_C hart
                    endif
                    [/HIGHLIGHT]
                    Gruß
                    Volker

                    Wer will schon Homematic?

                    Kommentar


                      #11
                      Könnte auf diesem Weg funktionieren.

                      Sehr wahrscheinlich muß nur zwischen mpchart des alten und neuen Werts ein Zyklus dazwischenliegen, damit beide Werte den Weg ins Chart finden.

                      Kommentar


                        #12
                        Zitat von bmx Beitrag anzeigen
                        Vielleicht hilft Dir ja der Style COLUMNS weiter?
                        Hi Bernd,

                        das war ein Volltreffer.

                        Vielen Dank

                        Michael
                        Angehängte Dateien

                        Kommentar

                        Lädt...
                        X