Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira Homeserver Archivierung von Werten per Logik

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

    HS411 Gira Homeserver Archivierung von Werten per Logik

    Hallo Leute,

    Ich glaube verstehe ich die Funktionsweise der Archivierung von Werten mit einer Logik nicht.

    Ich möchte damit stündlich den Zählerstand in ein Archiv schieben, das funktioniert allerdings nicht, hier meine Logik:

    Screenshot 2022-03-11 163931.png

    Ich hoffe mir kann jemand weiterhelfen.

    Vielen Dank im Voraus

    #2
    Hallo

    Wie sieht denn dein Archiv aus, in dem du die Daten speichern möchtest? Bei mir war dies bei meinem ersten, kürzlichen Archivierungsversuch das Problem.

    Ich speichere die Maximum- und Minimum-Werte meines Heisswasserspeichers und archiviere diese Werte jeweils täglich. Danach wird der Speicher geresettet. Ausserdem werden die Archivdaten per Mail als CSV gemailt zu Kontrollzwecken.

    Vielleicht hilft dir meine (funktionierende) Logik weiter.


    Gruss Griff Logik_WW-Temp_achrivieren.jpg
    Zuletzt geändert von griff; 11.03.2022, 22:34. Grund: Ergänzung
    HS4 - Trivum - Ekey net - ETS5 - FritzBox 7490 - HS-Experte 4.11 - PV-Anlage mit Fronius Symo Gen24 und Symo 10.0-3-M

    Kommentar


      #3
      Mir sieht Deine Ausgangsbox merkwürdig aus. Entweder den Trigger an den Befehl zur Archivierung, oder Du schreibst in eine Variable, die in den Archiveinstellungen regelmäßig archiviert wird.

      Kommentar


        #4
        Hallo zusammen,

        ich habe ein ähnliches Problem und bin ein Neuling, was den Gira Homeserver angeht.
        Ich möchte ein bestehendes Projekt erweitern.
        Hintergrund ist, dass ich zwei Drainagepumpen im Wechsel über den Homeserver durch Schwimmer steuere.
        Das funktioniert soweit auch.
        Nun würde ich gerne eine Zeitdifferenz ermitteln über das Logikgatter "Zeitdifferenz" und diese ermittelte Zeit in ein Archiv (oder wenn möglich im Meldungsarchiv) eintragen lassen.
        Ich finde allerdings keine Möglichkeit über eine Ausgangsbox den Wert der Dezimalzeit vom Logikgatter in das Archiv zu bekommen.
        Kann mir dazu jemand etwas schreiben ?
        Pumpe Zeitdifferenz.jpg
        Gibt es die Möglichkeit den Meldungstext der Pumpe1 dynamisch mit der Zeitdifferenz vom Logikgatter zu erweitern ?


        Danke und Gruß

        Kommentar


          #5
          Willst du es regelmäßig eintragen, dann im Archiv direkt die Sekunden unter "Zyklus" eintragen. Oder dynamisch, in dem du einen Befehl in der Ausgangsbox anlegst, der das speichernde Archiv wählt. Es werden dann alle Spalten des Ziel-Archivs gespeichert.
          Bei letzterem hilft dir ggf. die Totzeit im Archiv, dass nicht zu viele Werte ins Archiv übernommen und damit der Ringpuffer zu schnell "vollgeschrieben" wird.

          image.png

          Kommentar


            #6
            Vielen Dank für die Hilfe!
            Ich benötige keinen regelmäßigen Zyklus, da die Werte immer nur geschrieben werden sollen, wenn ein Pumpvorgang abgeschlossen wurde.
            Das passiert pro Stunde ca. 4 bis 5 Mal, womit das "vollschreiben" des Archivs eigentlich nicht passieren sollte.

            Ich habe nun die Ausgangsbox folgendermaßen angelegt
            AusgangsboxPumpzeiten.jpg
            Nun habe ich allerdings das Problem, dass im Archiv anscheinend nur 0 Werte gespeichert werden.

            Die Zeitdifferenz wird ermittelt, wenn jeweils von Pumpe 1 Ausgang A3 (sbc) einmal eine 1 an das Logikgatter der Zeitdifferenz gegeben wurde
            und danach die Zeit gestoppt wird, wenn Pumpe 2 am Ausgang A3 (sbc) ebenfalls eine 1 liegt.
            Pumpensteuerung.jpg
            Ich hoffe ich habe das richtig verstanden und im Logikeditor eingerichtet ?

            Wenn ich es richtig verstehe, gibt das Zeitdifferenz Gatter als Ausgangswert die Dezimalzeit in Stunden an.
            Die Pumpen haben ungefähr ein Zeitdifferenz von Pumpe 1 zu Pumpe 2 von 13 Minuten, was dann ja 0,22 Std. entsprechen würde.
            Ich habe das Archiv folgendermaßen eingerichtet.
            ArchivZeitdifferenz.jpg

            Das interne KO vom DummyZeitdifferenz ist vom Typ 32 BIT.
            DummyZeitdifferenz.jpg
            Könnte es sein, dass hier ein anderer Typ gewählt werden muss, damit die 0,... werte der Dezimalstunden richtig gespeichert werden und nicht nur 0 Werte ?

            Über eine Rückmeldung wäre ich sehr dankbar

            Kommentar


              #7
              Du musst den Wert den du speichern willst auch dem "Kommunikationsobjekt" zuweisen. In deinem Fall
              Code:
              dummy_zeitdiff
              .

              Also es ist klar getrennt: Zuweisen & archiv speichern. Was du nun machst ist nur Zweiteres.
              Einfach den Wert am Ausgang noch der internen GA zuweisen und fertig.

              Kommentar


                #8
                Vielen Dank, auch die Hilfe hat mir sehr geholfen 👍

                Ich kann nun die entsprechenden Laufzeiten der Pumpen in Minuten im Archiv sehen.
                Dafür habe ich folgende Logik aufgebaut
                UmwandelnZeit.jpg

                Eine letzte Frage habe ich dazu noch. Mit dieser Schaltung bekomme ich nur Wahlweise die Minuten oder Sekunden, bei z.B. einer Pumpenlaufzeit von 13:30 Min.
                Also hier nur die kompletten 13 Minuten ohne die 30 Sekunden.

                Gibt es ggf. eine Logik, die die 13 Minuten in Sekunden und die 30 Sekunden dazu addiert und das Ergebnis von 810 Sekunden ausgibt ?
                Vielleicht gibt es auch ein Zeitdifferenz Gatter, welches, anstatt die Dezimalzeit in Stunden, gleich ein Ergebnis in Sekunden ausgibt ?
                Hat jemand hierzu Erfahrungen, bzw. das Problem auch schon einmal gehabt ?

                Viele Grüße

                Kommentar


                  #9
                  Es gibt Sekunden-Bausteine wobei (aus dem Kopf) viele auf Unixtime umrechnen.
                  Wenn du nix findest im Experten: http://service.knx-user-forum.de/?co...nload&id=14188 und Formel selber machen.

                  Kommentar


                    #10
                    Ich löse dies in einem anderen Kontext so:
                    image.png
                    Gruss Daniel

                    Kommentar


                      #11
                      ok, interessanter Baustein.
                      Aber den String kann ich vermutlich nicht für ein Archiv, bzw. dann für ein Diagramm verwenden, oder ?
                      Wofür wäre die Ausgabe des Strings geeignet ? Vermutlich direkt auf der Oberfläche, oder ?

                      Viele Grüße

                      Kommentar


                        #12
                        abeggled: Ich hab ihn anders herum verstanden: hh:mm in Sekunden. Dabei ist es aber keine Zeit sondern ein Delta.

                        Oder meinst du er soll einfach in Sekunden rechnen und es dann mit dem Baustein umwandeln, wenn er es darstellen will. - Ja, dass seh ich so.

                        cs76: Strings für Darstellung. Speichern will man die in der Regel nicht, da man sie dann immer zerlegen muss, um damit wieder zu rechnen.
                        Zuletzt geändert von SvenB; 30.07.2022, 08:02.

                        Kommentar


                          #13
                          Könnte man ggf. den Stringwert aus dem Baustein "Dezimalzeit_to_String" in ein Meldungsarchiv schreiben?
                          Soweit ich es verstanden habe, können keine dynamische Werte/Texte in ein MELDUNGSArchiv geschrieben werden, oder ?

                          Danke und Gruß

                          Kommentar

                          Lädt...
                          X