Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeige von Werte mtimecharts nach Neustart

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

    Anzeige von Werte mtimecharts nach Neustart

    Hallo zusammen,

    wenn man den eibPC neu starten muss (und das kommt ja nun öfters vor) sind jedesmal die mtimecharts solange ohne Werte bis ein neuer Wert geschrieben wird.

    Wenn man nur jeden Tag, oder jede Woche oder sogar nur jeden Monat Werte schreibt, dann ist dieses Verhalten nicht optimal.
    Dachte eigentlich, dass timebufferread genau dies verhindern soll und bei Neustart die bis dahin gespeicherten Werte wieder anzeigen lässt.

    Meine Jahreskurven mit Monatswerten bzgl. Strom, Wasser u. Gas anzeigen sind daher leider immer leer. Müsste bis zum Monatsende warten bis ein neuer Wert geschrieben wird. Wenn nicht kurz danach wieder ein Neustart fällig wird.

    Gibt es hierzu eine Lösung?

    Gruß
    Ralf

    #2
    Zitat von amazing Beitrag anzeigen
    Gibt es hierzu eine Lösung?
    Klar gibt's die - und heißt Remant- oder Flash-Speicher. Siehe Seite 186 des Handbuchs.

    Kommentar


      #3
      warum die Daten noch zusätzlich im Flash speichern.
      Die Daten sind ja da, werden nur bei einem Neustart mit timebufferread nicht ausgelesen.
      Also wäre doch eine Lesefunktion vorhandener Daten aus den timebuffers die sinnvollste Lösung. Wie bereits gefragt, hatte ich gehofft, dass timebufferread genau dies macht. Ist aber nicht so.

      Gruß
      Ralf

      Kommentar


        #4
        Zitat von amazing Beitrag anzeigen
        . Wie bereits gefragt, hatte ich gehofft, dass timebufferread genau dies macht. Ist aber nicht so.
        Doch. Poste mal deinen Code.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          also Erwartung wäre, dass nach einem Neustart die mtimecharts auch wieder direkt die Werte anzeigen. Du hattest mir selbst gesgt, dass erst beim nächsten Speichern eines neuen Wertes die mtimecharts wieder befüllt werden. Sofern nach ein paar Minuten ein neuer Wert kommt, passt es ja, wenn man aber nur wöchentlich oder monatlich einen neuen Wert speichert, dann muss man lange warten.


          Jetzt kommt Fussball :-)


          if systemstart() then {
          timebufferread(ChartBuffer1);...... sollte doch egal wann der nächste Wert kommt, direkt die charts füllen

          [highlight=epc]
          //-----Timecharts -----
          // Timebuffer IDs vergeben:
          ChartBuffer1=1
          ChartBuffer2=2
          ChartBuffer3=3
          ChartBuffer4=4
          ChartBuffer5=5
          ChartBuffer6=6
          ChartBuffer7=7
          ChartBuffer8=8
          ChartBuffer9=9
          ChartBuffer10=10
          // timebufferconfig: Einen Zeitbuffer konfigurieren
          MemTyp=0
          Len=35040u16
          Len1=120u16
          Datatyp=3.3f16
          timebufferconfig(ChartBuffer1,MemTyp,Len,TagGasVer brauch)
          timebufferconfig(ChartBuffer2,MemTyp,Len,TagIskraV erbrauch)
          timebufferconfig(ChartBuffer3,MemTyp,Len,TagPVVerb rauch)
          timebufferconfig(ChartBuffer4,MemTyp,Len,TagWasser Verbrauch)
          timebufferconfig(ChartBuffer5,MemTyp,Len1,MonGasVe rbrauch)
          timebufferconfig(ChartBuffer6,MemTyp,Len1,MonIskra Verbrauch)
          timebufferconfig(ChartBuffer7,MemTyp,Len1,MonPVVer brauch)
          timebufferconfig(ChartBuffer8,MemTyp,Len1,MonWasse rVerbrauch)
          timebufferconfig(ChartBuffer9,MemTyp,Len,"Pooltemp-10/2/0")
          timebufferconfig(ChartBuffer10,MemTyp,Len,day_rain )

          // Werte in den Buffer schreiben
          if htime(00,00,30) then {
          timebufferadd(ChartBuffer1,TagGasVerbrauch);
          timebufferadd(ChartBuffer2,TagIskraVerbrauch);
          timebufferadd(ChartBuffer3,TagPVVerbrauch);
          timebufferadd(ChartBuffer4,TagWasserVerbrauch);
          timebufferadd(ChartBuffer10,day_rain);
          } endif

          if (Verbrauchdat==$31.01$ or Verbrauchdat==$28.02$ or Verbrauchdat==$31.03$ or Verbrauchdat==$30.04$ or Verbrauchdat==$31.05$ or Verbrauchdat==$30.06$ or Verbrauchdat==$31.07$ or Verbrauchdat==$31.08$ or Verbrauchdat==$30.09$ or Verbrauchdat==$31.10$ or Verbrauchdat==$30.11$ or Verbrauchdat==$31.12$) and htime(23,59,55) then {
          timebufferadd(ChartBuffer5,MonGasVerbrauch);
          timebufferadd(ChartBuffer6,MonIskraVerbrauch);
          timebufferadd(ChartBuffer7,MonPVVerbrauch);
          timebufferadd(ChartBuffer8,MonWasserVerbrauch);
          } endif
          if mtime(15,0) then timebufferadd(ChartBuffer9,"Pooltemp-10/2/0") endif

          // Wert im Flash speichern
          if chtime(00,03,00) then {
          timebufferstore(ChartBuffer1);
          timebufferstore(ChartBuffer2);
          timebufferstore(ChartBuffer3);
          timebufferstore(ChartBuffer4);
          timebufferstore(ChartBuffer10);
          } endif

          if chtime(00,04,00) then {
          timebufferstore(ChartBuffer5);
          timebufferstore(ChartBuffer6);
          timebufferstore(ChartBuffer7);
          timebufferstore(ChartBuffer8);
          } endif
          if mtime(16,0) then timebufferstore(ChartBuffer9) endif

          if systemstart() then {
          timebufferread(ChartBuffer1);
          timebufferread(ChartBuffer2);
          timebufferread(ChartBuffer3);
          timebufferread(ChartBuffer4);
          timebufferread(ChartBuffer5);
          timebufferread(ChartBuffer6);
          timebufferread(ChartBuffer7);
          timebufferread(ChartBuffer8);
          timebufferread(ChartBuffer9);
          timebufferread(ChartBuffer10);
          } endif
          [/highlight]

          Kommentar


            #6
            Zitat von amazing Beitrag anzeigen
            also Erwartung wäre, dass nach einem Neustart die mtimecharts auch wieder direkt die Werte anzeigen. Du hattest mir selbst gesgt, dass erst beim nächsten Speichern eines neuen Wertes die mtimecharts wieder befüllt werden. Sofern nach ein paar Minuten ein neuer Wert kommt, passt es ja, wenn man aber nur wöchentlich oder monatlich einen neuen Wert speichert, dann muss man lange warten.
            Genau, bisher ist mit dem Befüllen neuer Werte (timebufferadd) automatisch die Darstellung aktualisiert. Eigentlich sollte das nun beim timebufferread ebenso automatisch erfolgen. Das ist aber nicht so => Bug...
            Die Werte sind aber doch im Zeitpuffer an sich, das habe ich eben gecheckt.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              genau so ist es...
              War der schon bekannt? Wann ist mit einem FIX zu rechnen?

              Gruß
              Ralf

              Kommentar


                #8
                Zitat von amazing Beitrag anzeigen
                War der schon bekannt.
                nein, das war nicht bekannt. Vermutlich hat er sich auch erst bei einem der letzten Patches eingeschlichen. Bei der Demo für das Handbuch, das ich seinerzeit erstellt hatte, ging das nämlich schon.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar

                Lädt...
                X