Ankündigung

Einklappen
Keine Ankündigung bisher.

Stromverbrauch pro Tag

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

    Stromverbrauch pro Tag

    Hallo Leute,

    ich habe mal folgendes Problem. Ich haben einen KNX Stromzähler, der mir den Zählerstand auf den Bus sendet. Diesen möchte ich jetzt um Mitternacht von dem Vortagszählerstand abziehen, um den Tagesverbrauch zu bekommen. Den Verbrauch will ich dann mir im Chart anzeigen lassen. Dazu habe ich dies im eibPc programmiert:

    CODE]
    Stromzaehler='6/0/0'u32
    VerbrauchProTag=0u32
    StromzaehlerVortag=0u32
    if htime(00,00,00) then VerbrauchProTag=Stromzaehler-StromzaehlerVortag; StromzaehlerVortag=Stromzaehler endif
    [/CODE]
    Im Chart wird mir nur 0 angezeigt und per Debugger bekomme ich, auch nach mehreren Tagen, nur die 0 als VerbrauchProTag. StromzaehlerVortag wird mir aber mit dem Vortagswert im Debugger angezeigt. Wo ist denn hier mein Denkfehler?

    Gruß Sven

    #2
    Hoi

    Naja Du rechnest:

    [highlight=epc]
    Stromzaehler='6/0/0'u32
    VerbrauchProTag=0u32
    StromzaehlerVortag=0u32
    if htime(00,00,00) then VerbrauchProTag(0)=Stromzaehler(100)-StromzaehlerVortag(100); StromzaehlerVortag(100)=Stromzaehler(100) endif
    [/highlight]
    100-100=0; stimmt.
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Zitat von Bodo Beitrag anzeigen
      Hoi

      Naja Du rechnest:

      [highlight=epc]
      Stromzaehler='6/0/0'u32
      VerbrauchProTag=0u32
      StromzaehlerVortag=0u32
      if htime(00,00,00) then VerbrauchProTag(0)=Stromzaehler(100)-StromzaehlerVortag(100); StromzaehlerVortag(100)=Stromzaehler(100) endif
      [/highlight]
      100-100=0; stimmt.
      Ja aber nur für den ersten Tag. Am zweiten Tag ist Stromzaehler z.B. 105 und StromzählerVortag dann 100 und das müsste doch dann VerbrauchProTag=5 sein oder?

      Kommentar


        #4
        Hoi

        Aber Du rechnest doch immer
        StromzaehlerVortag(105)=Stromzaehler(105)
        Grüsse Bodo
        Fragen gehören ins Forum, und nicht in mein Postfach;
        EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

        Kommentar


          #5
          VerbrauchProTag=0u32
          StromzaehlerVortag=0u32

          Also 1. Nacht:
          Stromzähler(100)-StromzählerVortag(0)=VerbrauchProTag(100), danach setze ich StromzählerVortag=100. (VerbrauchProTag=100, muss irgendwie noch geändert werden, da nach Reboot der erste Wert wieder falsch ist).
          2. Nacht:
          Dann ist Stromzähler 105 (weil Info vom Bus) und StromzählerVortag=100 macht VerbrauchProTag=5, danach StromzählerVortag=105 oder übersehe ich hier jetzt was komplett?

          Kommentar


            #6
            Hoi

            Ja, aber bevor du 105-100 rechnest setzt du die 100 vom Vortag ebenfalls auf 105. Jedes mal.
            Grüsse Bodo
            Fragen gehören ins Forum, und nicht in mein Postfach;
            EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

            Kommentar


              #7
              Hmm aber ich mach doch im THEN Zweig erst die Berechnung des VerbrauchproTag und danach erst die Gleichsetzung der beiden Variablen. Wenn ich dies umdrehen würde, würde ich es ja verstehen.

              Kommentar


                #8
                Hoi

                Ich weiss nicht, ob das eine Rolle spielt, aber ich habe im Hinterkopf, dass von rechts zugewiesen und abgearbeitet wird?!?
                Grüsse Bodo
                Fragen gehören ins Forum, und nicht in mein Postfach;
                EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                Kommentar


                  #9
                  Zitat von Bodo Beitrag anzeigen
                  Hoi

                  Ich weiss nicht, ob das eine Rolle spielt, aber ich habe im Hinterkopf, dass von rechts zugewiesen und abgearbeitet wird?!?
                  Das würde schon eine Rolle spielen - aber arbeitet der EibPC wirklich arabisch? Und was ist, wenn der Befehl in der nächsten Zeile steht?

                  Kommentar


                    #10
                    Habe ich wie folgt gestestet:
                    [highlight=epc]
                    Stromzaehler=0u32
                    VerbrauchProTag=0u32
                    StromzaehlerVortag=0u32
                    Next = AUS
                    if change(Next) then VerbrauchProTag=Stromzaehler-StromzaehlerVortag; StromzaehlerVortag=Stromzaehler endif
                    [/highlight]
                    Nun mit dem Debugger einfach Stromzaehler verändert und anschließend Next. Die berechneten Werte stimmen, zumindest wenn Stromzaehler kontinuierlich größer wird.
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Zitat von enertegus Beitrag anzeigen
                      Habe ich wie folgt gestestet:
                      [highlight=epc]
                      Stromzaehler=0u32
                      VerbrauchProTag=0u32
                      StromzaehlerVortag=0u32
                      Next = AUS
                      if change(Next) then VerbrauchProTag=Stromzaehler-StromzaehlerVortag; StromzaehlerVortag=Stromzaehler endif
                      [/highlight]
                      Nun mit dem Debugger einfach Stromzaehler verändert und anschließend Next. Die berechneten Werte stimmen, zumindest wenn Stromzaehler kontinuierlich größer wird.
                      Beim ersten Mal hats funktioniert, danach nicht mehr. Ich hab es jetzt mal so umgesetzt:

                      //Verbrauch pro Tag
                      if htime(00,00,00) then VerbrauchProTag=Stromzaehler-StromzaehlerVortag endif
                      if change(VerbrauchProTag) then StromzaehlerVortag=Stromzaehler endif

                      //Variblen
                      VerbrauchProTag=0u32
                      StromzaehlerVortag=0u32

                      Der Debugger zeigt mir aber nach wie vor dies an:

                      VerbrauchProTag=0
                      StromzaehlerVortag=0

                      kann es sein, dass irgendwann die Wertzuweisung 0 bei der Variablendeklaration wieder aktiv wird und somit den berechneten Wert überschreiben?

                      Kommentar


                        #12
                        Zitat von pass99 Beitrag anzeigen
                        Beim ersten Mal hats funktioniert, danach nicht mehr.
                        Ich habe das sicher mit drei Werten gestestet. Kannst du meinen Code nicht erfolgreich Testen oder wie ist das zu verstehen?
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Ich habe jetzt mal die Gleichsetzung der Variablen rausgenommen und VerbrauchProTag per Deklaration zum Testen auf 1 gesetzt. Nach dem Programmstart ist der Verbrauch laut Debugger auch auf 1. Dann setze ich den VerbrauchVortag von Hand auf Bsp. 680 und setze Netxt auf EIN. Dann steht der VerbrauchProTag wieder auf 0, aber wieso 0 (siehe Screenshot)?

                          Ich habe meinen ganzen Code nach VerbrauchProTag durchsucht aber es steht nirgendwo anders.
                          Angehängte Dateien

                          Kommentar

                          Lädt...
                          X