Ankündigung

Einklappen
Keine Ankündigung bisher.

Speicher und Wiederherstellen von Chartdaten?

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

    Speicher und Wiederherstellen von Chartdaten?

    Guten Abend,

    z.Z. baue ich wieder ander Visu herum. Bei jedem programmübertragen gehen natürlich alle Werte verloren.

    Ich möchte aber gerne die daten/Trends der letzten Stunden/Tage verlieren wenn ich die Visu (oder was anderes im Programm) verändere.

    Es gibt nun ja die storeflash() und readflash() Funtionen...

    ...aber wie bekomme ich das hin, dass die jeweils maximal 47 Werte eines Diagramms
    * VOR dem Übertragen des Programms gespeichert werden (1)
    * UND - nachdem das geänderte Programm läuft - wieder in den Charts erscheinen?

    (1) Wie kann ich die writes antriggern? Woher weiss das Programm dass ich im EibStudio gerade ein "Compile&send to EibPC" ausgelöst habe?

    Ich meine nicht unbedingt aus Datensicherungsgründen (=jede Stunde werden die Werte remanent gespeichert), sondern nur dass die Graphiken bei jeder (Mini-)änderung immer wieder leer sind/neu aufgebaut werden müssen.


    Gibt es vielleicht einen Democode? (Michael)
    Hat das so schon mal jemand gemacht? (Alle)

    Vielen Dank!

    #2
    Zitat von MarkusL Beitrag anzeigen
    Guten Abend,
    Ich möchte aber gerne die daten/Trends der letzten Stunden/Tage verlieren wenn ich die Visu (oder was anderes im Programm) verändere.
    Das geht nicht ohne Programmierung.
    Es gibt nun ja die storeflash() und readflash() Funtionen...
    was dann auch meine Empfehlung wäre.
    Generell: Die "Notwendigkeit" dieses Features (Langzeitauftzeichnung= haben wir auch schon erkannt. Daher die Ankündigung, das mit einer rrd Datenbank zu realisieren.
    * VOR dem Übertragen des Programms gespeichert werden (1)
    * UND - nachdem das geänderte Programm läuft - wieder in den Charts erscheinen?
    Dazu müsste man die Werte am besten fortschreitend in ein String-Array schreiben.
    Woher weiss das Programm dass ich im EibStudio gerade ein "Compile&send to EibPC" ausgelöst habe?
    gar nicht.
    Gibt es vielleicht einen Democode? (Michael)
    In einer ruhigen Minute werd ich mich drüber machen, sicher nicht die nächsten 3 Tage.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Danke Michael!

      Wenn das Programm gar nicht mitbekommen kann wann es Zeit zum Speichern wäre müsste ich z.B. jede Stunde die Werte prophylaktisch speichern und dann beim Neustart irgendwie in die Charts bekommen. Dann gehen maximal 1h Daten flöten.

      Ich wollte hat das "unnötige" Flash-Schreiben vermeiden.

      Jede Idee/Codebeispiel wäre hilfreich...lass die Zeit.


      Wann ist denn *ganz grob* was rrd-ähnliches (als Beta-Version) geplant?

      Kommentar


        #4
        Zitat von MarkusL Beitrag anzeigen
        Danke Michael!
        Wann ist denn *ganz grob* was rrd-ähnliches (als Beta-Version) geplant?
        2011 - wenn das grob genug ist. Aber das wird ja eh ein bewegtes KNX Jahr für Enertex...
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Na gut, so grob meinte ich eigentlich nicht.

          Aha? Was bewegts sich denn wie bei euch?

          Kommentar


            #6
            Zitat von MarkusL Beitrag anzeigen
            Wenn das Programm gar nicht mitbekommen kann wann es Zeit zum Speichern wäre ....
            Du könntest es dem Programmja manuell sagen, bevor Du neu programmierst, also ein Wert auf einer GA oder über den Webserver. Muss man aber halt dran denken...
            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

            Kommentar


              #7
              Zitat von Uwe! Beitrag anzeigen
              Du könntest es dem Programmja manuell sagen, bevor Du neu programmierst, also ein Wert auf einer GA oder über den Webserver. Muss man aber halt dran denken...
              Ich mach noch was als Vorlage zum Thema speichern aufs Flash mit vorhandenen Mitteln.

              Vorerst zählt die nächste Releaserunde hoffentlich rechtzeitig bis zum Fest...
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                Ich mach noch was als Vorlage zum Thema speichern aufs Flash mit vorhandenen Mitteln.
                ...und wiederherstellen und in Charts einspielen gehört hoffentlich auch dazu?

                Zitat von enertegus Beitrag anzeigen
                Vorerst zählt die nächste Releaserunde hoffentlich rechtzeitig bis zum Fest...
                Na klar! Das geht auf jeden Fall vor!
                Ich nehme auch gerne ein *nachdem* da war, wenn ich dann damit direkt spielen kann und es nicht umtauschen muss :-))

                Kommentar


                  #9
                  Zitat von MarkusL Beitrag anzeigen
                  Ich nehme auch gerne ein *nachdem* da war, wenn ich dann damit direkt spielen kann und es nicht umtauschen muss :-))
                  Wieso umtauschen?
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    Wieso umtauschen?
                    Moin Michael,
                    ich meinte damit: "Lieber etwas länger die nächste Release (= ) testen auch wenn es dann nach Weihnachten (= ) wird als unbedingt noch von dem 24.12. was veröffentlichen und dann über die Weihnachtsfeiertage noch einen Bugfix hinterherschieben (=umtauschen) zu müssen.

                    Sind alle Klarheiten beseitigt? ;-)

                    Kommentar


                      #11
                      Zitat von MarkusL Beitrag anzeigen
                      Moin Michael,
                      Sind alle Klarheiten beseitigt? ;-)
                      Jetzt schon, aber schon kompliziert. Auf diesen Ansatz wäre ich wohl nur schwer gekommen .
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #12
                        Wieder mal Probleme

                        Ich versuche gerade einige meiner Chartdaten remanent zu speichern und die charts wieder herzustellen. Dabei habe ich ein grundsätzliches Problem: Es geht nicht!
                        Ich habe ein einfaches Testprogramm geschrieben um das Problem zu demonstrieren.

                        Code:
                        [EibPC]
                        Starttest=AUS
                        String1=$________$
                        String2=$________$
                        insert1=1.1f32;insert2=2.2f32
                        extract1=0f32;extract2=0f32
                        writestatus=1b01;readstatus=1b01
                        if change(Starttest) and Starttest==EIN then {
                            stringset(String1,insert1,0u16);
                            stringset(String1,insert2,4u16);
                            writestatus=writeflash(String1,1u16);
                        }endif
                        if after(change(writestatus),1000u64) and writestatus==0b01 then { 
                            readstatus=readflash(String2,1u16)
                        }endif
                        if change(readstatus) and readstatus==0b01 then {
                            extract1=stringcast(String2,0f32,0u16);
                            extract2=stringcast(String2,0f32,4u16)
                        }endif
                        Ich versuche 2 Zahlen (insert1 und insert2) in String1 zu speichern, den String1 in den flash Speicher zu schreiben, nach einer Sekunde den flash Speicher in den String2 auszulesen und daraus die beiden Zahlen nach extract1 und extract2 zu extrahieren. Ich hatte erwartet dass nach Ablauf des Programms extract1=insert1 und extract2=insert2 ist. Dir Rohdaten in String1 scheinen in Ordnung zu sein

                        String2 wird aber nie gefüllt, d.h. "readflash" so wie ich es geschrieben habe, liefert keine Daten, damit erzeugt "stringcast" natürlich auch falsche "extract1/2" Werte. "readstatus" und "writestatus" gehen beide von 1b01 auf 0b01 wie erwartet.

                        Sieht jemand wo mein Fehler liegt?

                        Schon mal vielen Dank, Rüdiger

                        Kommentar


                          #13
                          Hi Rüdiger,

                          ich habe mir Deinen Code jetzt nicht angeschaut aber mal meine Flashmakros drangehängt. Vielleicht hilft Dir das weiter. BMXFlash4.zip

                          Und ein Anwendungsbeispiel dazu:
                          Code:
                          [EibPC]
                          
                          //////////////////////////////////////////////
                          //
                          // Remanentspeicher
                          //
                          // Flash ID - Speicherplatz für Flash belegen
                          //
                          PrepareFlashSystem( AUS, '9/2/0'c14 )
                          
                          DummyGA4EibPC = '9/2/0'c14
                          
                          FlashSlot_F16 = 10u16
                          FlashSlot_F32 = 11u16
                          FlashSlot_U32 = 12u16
                          FlashSlot_S32 = 13u16
                          
                          FlashID_F16_Eltern_Temperaturregler = 3u16
                          FlashID_F16_Bad_Temperaturregler = 4u16
                          
                          PrepareFlashF16(FlashSlot_F16, 30000u64)
                          PrepareFlashF32(FlashSlot_F32, 30000u64)
                          PrepareFlashU32(FlashSlot_U32, 30000u64)
                          
                          // Beispiel
                          KTemp_ElternSchlafzimmer = 18f16; /* Komforttemperatur im Elternschlafzimmer */
                          FlashSetAndSaveF16(FlashID_F16_Eltern_Temperaturregler, KTemp_ElternSchlafzimmer, 16f16, 25f16, 19f16 )
                          Gruß,
                          Bernd

                          Kommentar


                            #14
                            Hallo Bernd,

                            vielen Dank, es wird etwas dauern bis ich Deine Makros verstanden habe. Da es bei Dir aber offensichtlich funktioniert, gehe ich mal davon aus, dass mein Fehler mein Fehler ist. Ich melde mich wieder.

                            Gruß Rüdiger

                            Kommentar


                              #15
                              Hallo Bernd,

                              die Lektüre Deiner Makros hat geholfen. Ohne delay() vor dem writeflash, um sicher zu stellen, dass stringset auch fertig ist geht es halt nicht. Nochmals Danke.
                              Rüdiger

                              Kommentar

                              Lädt...
                              X