Ankündigung

Einklappen
Keine Ankündigung bisher.

CSV Export

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

    #16
    Tschuldige bitte. Bin gerade berufsbedingt nicht mehr so aktiv hier (leider). Ich habe den Baustein aktualisiert und im Downloadportal unter Version 0.3 hochgeladen. Jetzt müsste er wieder voll einsatzfähig sein...
    Grüße
    Christian

    Kommentar


      #17
      Ich hätte hier auch noch einmal eine Frage dazu. Bei mir klappt das Backup wie gewünscht allerdings klemmt die restore Funktion noch... Ich habe eine csv Datei mittels VBA Makro bearbeitet um auf die Zählerstände einen Offset draufzurechnen. Diese Datei würde ich nun gerne wieder einspielen.

      1. Neues, leeres Archiv erzeugt (ID 75)
      2. CSV Datei mit WINSCP wieder abgelegt: "EdomiArchivBackup_75_.csv"
      2. LBS angelegt und Projekt aktiviert
      3. Einstellungen im LBS in der Liveansicht mit Wert setzen
      E1: 75
      E2: usr/local/edomi
      E4: 1
      -> Im Fehler LOG kommt dann folgende Meldung:
      Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001041.php | Fehlercode: 2 | Zeile: 40 | fopen(): Filename cannot be empty

      Im PCP Code steht folgendes bei der Erzeugung des Dateinamen (ich kenne mich mit PHP so gar nicht aus...)

      $filearray = glob($pfad."/EdomiArchivBackup_".$id_archiv."_*.csv");
      $dateiname = end($filearray);
      if (($filehandle = fopen($dateiname, "r")) !== FALSE) {

      Ich bin mit meinen geringen Kenntnissen am Ende hat noch jemand eine Idee oder nutzt den LBS und kann mir auf die Sprünge helfen?

      Grüße Martin

      Kommentar


        #18
        Ohne den LBS zu kennen würd ich sagen das E2
        Code:
        /usr/local/edomi
        lauten müsste

        Kommentar


          #19
          habs gleich mal getestet. Will leider immer noch nicht. Hier mal noch ein Screenshot der Einstellungen

          Zwischenablage01.jpg

          Kommentar


            #20
            Mach mal ein Backup und guck Dir dann die Syntax des Dateinamens der erstellten Datei an. Die Datei muss (glaube ich) einem bestimmten Namen haben.

            Kommentar


              #21
              Das würde schon passen $id_archiv ist der Eingang E1

              Code:
              EdomiArchivBackup_".$id_archiv."_*.csv
              EDIT nein, da ist ein Asterisk vor dem dot

              Also musst Du dein file umbenennen, oder ich ändere das im DL
              Zuletzt geändert von vento66; 09.01.2022, 21:30.

              Kommentar


                #22
                jetzt habe ich gerade einmal ein Backup unverändert aus diesem LBS wieder eingespielt und es hat funktioniert. Zuvor habe ich das Archiv mit Edomi Bordmitteln runtergeladen. Hier scheint aber der Unterschied zu liegen. Die beiden Dateien Unterscheiden sich aber stark (siehe Bild)
                Da war ich wohl etwas Naiv, wahrscheinlich ein Anfängerfehler aber das ist noch nicht so ganz meine Welt. Dann werde ich über den LBS Export nochmal das Makro drüber laufen lassen und nochmal posten ob ich Erfolg hatte.

                Zwischenablage02.jpghttps://knx-user-forum.de/core/image...EAAAICRAEAOw==

                Danke aber euch beiden schonmal für die schnelle Hilfe!

                Kommentar


                  #23
                  Hat jetzt funktioniert. Hier einmal noch der Excel Code falls ihn noch jemand gebrauchen kann, bzw. zum anpassen. Aktuell kann damit ein fester Offset auf die aktuellen Archivwerte geschrieben werden

                  1. Backup mit diesem LBS erstellen
                  2. Die Datei in Excel öffnen
                  3. Diesen Code im VBA Basic Editor einfügen
                  4. Ausführen

                  Sub schreiben()
                  Dim zeile As String
                  Dim FF1 As Integer
                  Dim pos As Integer
                  Dim strFile1 As String
                  Dim wks As Worksheet
                  Dim intOffset As Double
                  Dim Abfrage As Office.FileDialog
                  Dim str_Pfad As String
                  Dim str_Datei As String
                  Set wks = Sheets(1)
                  On Error GoTo fehler

                  Set Abfrage = Application.FileDialog(msoFileDialogFolderPicker)
                  Abfrage.Show
                  str_Pfad = Abfrage.SelectedItems(1)
                  str_Datei = InputBox("Dateinamen eingeben") & ".txt"
                  strFile = str_Pfad & "" & str_Datei
                  intOffset = InputBox("Offset eingeben")
                  If IsNumeric(intOffset) = False Then GoTo fehler

                  FF1 = FreeFile()
                  Open strFile For Output As #FF1
                  a = 1
                  Do While wks.Cells(a, 1) <> ""
                  Inhalt = Split(wks.Cells(a, 1), ",")
                  If UBound(Inhalt) >= 2 Then
                  stringneu = Replace(wks.Cells(a, 1), Inhalt(2), Replace(Replace(Inhalt(2), ".", ",") + intOffset, ",", ".")) 'Austauschen und schreiben
                  Print #FF1, stringneu
                  End If
                  a = a + 1
                  Loop

                  fehler:
                  Close FF1
                  End Sub

                  Grüße

                  Kommentar


                    #24
                    Der Dateiname war nicht korrekt. Der Dateiname wird folgendermassen aufgebaut: "EdomiArchivbackup_<ID>_<Datum>.csv". Wobei <ID> für das entsprechende Datenarchiv steht und eben <Datum> nochmals den Tag der Archivierung angibt. Wenn ich die Nachrichten oben so verfolge, dann fehlt bei den Dateinamen eben das Datum...
                    Ansonsten einfach melden, wenn was bei dem LBS nicht passt. Habe ihn zwar selber nicht mehr im Einsatz, fühle mich aber immer noch dafür verantwortlich
                    Ich denke, das Problem oben lag daran, dass das Ursprungsarchiv nicht mit dem LBS selbst erzeugt worden ist, sondern mit EDOMI Bordmitteln. Das ist aber ein leicht anderes Format. Der LBS funktioniert NUR, wenn man die gleich Datei wieder Restored, die auch zuvor im gleichen LBS als Backup erzeugt worden ist. Dazwischen kann man gerne in der CSV Datei die Werte nach Belieben manipulieren.... Aber eben bitte nichts an den Dateistrukturen bzw. Bezeichnungen ändern.
                    Liebe Grüße
                    Christian

                    Kommentar


                      #25
                      Hallo Christian,

                      ging dann auch ohne das Datum mit "EdomiArchivBackup_ID_". Den LBS finde ich top, da er eine sehr einfache Möglichkeit bietet ein Archiv nach belieben zu bearbeiten und wieder einzuspielen. Wir hatten nicht seit Beginn einen KNX Zähler für die PV Anlage drin und diesen Offset konnte ich jetzt im Nachhinein berücksichtigen.

                      Am Ende war es nur die leicht andere Struktur in der CSV Datei die mich in die Irre geführt hat. Vielleicht kannst du das ja mal in der Hilfe zum LBS mit dazuschreiben, nicht dass noch jemand den gleichen Fehler macht.
                      Ansonsten Danke für den LBS! 😀

                      Grüße


                      Kommentar


                        #26
                        Zitat von jonofe Beitrag anzeigen
                        Du könntest aus der VISU per Button den Export Triggern. Dies erzeugt dann den Export im EDOMI Filesystem (/usr/local/edomi/www/...). Der Button wird dann durch den entsprechenden Download Link ersetzt, der dann auf die Datei im Webspace des EDOMI Webservers verweist.

                        Export Pfad: /usr/local/edomi/www/archiv.csv
                        Link: http://<EDOMI-IP>/archiv.csv

                        Der User muss dann halt zweimal klicken, einmal für den Export und einmal für den Download.
                        Hallo Jonofe, der Export hat bei mir funktioniert, aber mit dem Download habe ich Schwierigkeiten. Reicht es wirklich aus, nur die IP-Adresse und den Dateinamen anzugeben? Ich erhalte eine Fehlermeldung, selbst wenn ich den vollständigen Pfad eingebe.

                        "Not Found


                        The requested URL /EdomiArchivBackup_14_2023-10-27-17-13-41.csv was not found on this server."

                        Hier ein kleines Update: Der Download aus dem WWW-Verzeichnis funktioniert, aber nicht aus einem von mir erzeugtem Unterverzeichnis, muss ich den noch irgendwie freigeben?
                        Oder wie kann ich eine Liste der Dateien in dem Ordner in einer Visu anzeigen?
                        Zuletzt geändert von Gregor No; 29.10.2023, 12:33.

                        Kommentar


                          #27
                          Zitat von ChrisAllgaeu Beitrag anzeigen
                          Ansonsten einfach melden, wenn was bei dem LBS nicht passt. Habe ihn zwar selber nicht mehr im Einsatz, fühle mich aber immer noch dafür verantwortlich
                          Da würde ich gerne an dein Verantwortungsbewusstsein appellieren. Ich hätte einen Verbesserungsvorschlag: Ein zusätzlicher Ausgang, der den Namen der gerade erstellten Datei ausgibt, wäre für mich echt toll.

                          Kommentar


                            #28
                            ich bin gerade mehrere Monate beruflich unterwegs. Ich kann zwar die paar Zeilen zur Ausgabe des Dateinamens gerne einfuegen, ist keine Rocket Science, aber ich kann das Teil nicht bei mir im Haus austesten. Deswegen schlage ich vor, dass ich die paar Zeilen einfuege, diesen LBS aber nicht veroeffentliche und dir nur per PN schicke... Wenn Du rueckbestaetigst, dass alles funzt, kann ich dann spaeter gerne auch offiziell eine neue Version hochladen. Waere das o.k?

                            Kommentar


                              #29
                              Das wäre super, mach dir bitte aber keinen Druck. Von PHP habe ich nicht viel Ahnung und habe sehr viel Achtung vor jedem, der hier seine Zeit und sein Können zur Verfügung stellt. Ich muss aber gestehen, ich habe mir den Quellcode angeschaut und durch Änderungen an vier Stellen in deinem LBS konnte ich die Daten aus dem Meldungsarchiv in CSV exportieren ("edomiLive.archivKoData" zu "edomiLive.archivMsgData" und "gavalue" zu "msg") . Ein Zurückspielen habe ich vor erst nicht getestet. Bin wirklich stolz auf mich. Ich würde den angepassten LBS veröffentlichen, aber es war eher ein Zufallstreffer und ich konnte nie eine Versionspflege leisten. Jetzt quäle ich mich mit den Umlauten in den Meldungstexten und dem Download der CSVs direkt aus der Visu. Leider mit mäßigem Erfolg. Mir schwebt eine Art Freigabe für den Ablageordner der Backup-Dateien vor.
                              Hier meine erste Gehversuche, bin leider auf die Nase gefallen. Die Markierung zeigt die Stelle an der ich den Encoder platziert habe, ohne ergebnis:
                              "$zeile = $daten["datetime"].','.$daten["ms"].','.utf8_encode($daten["msg"])."\r\n" ;"
                              Zuletzt geändert von Gregor No; 29.10.2023, 12:11.

                              Kommentar


                                #30
                                Hallo an alle,

                                In meiner Verzweiflung im Kampf für die Umlaute habe ich sogar ChatGPT eingespannt. Das hat leider nicht funktioniert. Bei so einer simplen Sache hätte ich ein Ergebnis erwartet. Parallel dazu habe ich auch versucht die KI dazu zu bringen einen weiteren Ausgang zu erzeugen, in dem der Name der erstellten CSV-Datei wiedergegeben wird. Und oh Wunder, es hat fast funktioniert. Fast, weil ich anstelle des Namens den ganzen Pfad erhalte. Der Code sieht nicht schön aus, weil Bereiche verändert wurden, die zuvor funktioniert haben, aber bis jetzt macht er was er soll. Ich füge den Code bei. Kann ihn sich bitte jemand anschauen und mir sagen, ob das kompletter Mist ist, der früher oder später zum Absturz führt, oder ob das so bleiben kann? Ich traue der KI noch nicht so ganz und schwanke zwischen Faszination und Entsetzen über die neue Technologie.​

                                Angehängte Dateien

                                Kommentar

                                Lädt...
                                X