Ankündigung

Einklappen
Keine Ankündigung bisher.

Text in Datei/Logfiles schreiben...

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

    Text in Datei/Logfiles schreiben...

    Hi Leute,

    nachdem bei mir nun auch endlich meine Viessmann-Heizung an den eibPC angebunden ist, steht die nächste Erweiterung an:

    Logfiles mit dem eibPC auf meiner NAS-Platte schreiben

    Das mit dem Netzwerkzugriff geht, zumindest die eibPC-logfiles rüberzuschieben (bin mal gespannt ob das dann geht), ABER:

    Entweder ich hab vor lauter Code und Doku es überlesen, aber ich hab nirgends was zum Schreiben von Textfiles gefunden...
    lediglich was zur Textausgabe im Webserver

    Bitte helft mir auf die Sprünge: wie kann ich Textfiles schreiben oder wo finde ich es in der Doku???

    Ich danke euch, viele Grüße Alex

    #2
    geht das evtl. mit den timebuffer-funktionen? Lese grad mal die kapitel dazu...
    falls aber jemand erfahren/tips, gar beispiele zum logfiles schreiben und verschieben hat, bin ich euch sehr, sehr dankbar...;-)

    Grüße

    Kommentar


      #3
      glaube nun schlauer zu sein:

      ich schreibe ne datei in den internen Flash-speicher, die ich dann per ftpsend auf die nas-platte schiebe, richtig?

      Kommentar


        #4
        nun ja, hab da doch was in der doku gefunden...werde mal gemäß Seite 98 "FTP-Datenströme" mein Glück probieren...

        Kommentar


          #5
          schau einmal in meinen Thread - da findest du einiges zu diesem Thema
          (Suchfunktion mit "logging NAS")

          was für das Logging von GA noch fehlt ist der Klartext der GA - da sollte demnächst etwas kommen - gell Enertegus
          EPIX
          ...und möge der Saft mit euch sein...
          Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

          Kommentar


            #6
            Zitat von EPIX Beitrag anzeigen
            da sollte demnächst etwas kommen - gell Enertegus
            Klar ist schon

            Aber erst in der nächsten Version.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Zitat von alex275 Beitrag anzeigen
              nun ja, hab da doch was in der doku gefunden...werde mal gemäß Seite 98 "FTP-Datenströme" mein Glück probieren...
              Ja genau das ist es was du brauchst...
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Hi, wollte mal grundsätzlichen Erfolg vermelden, den aktuellen Stand posten und ne Frage anhängen.
                Folgendes hab ich realisiert (s.u.), dabei soll das ganze folgendes tun, das eigentlich prima geht, er speichert brav was ich sag (...):

                Eine text-datei entweder
                - beim Drücken eines Buttons (geht)
                - wenn der buffer voll ist (keine ahnung ob's geht)
                - oder um 23:59:30 Uhr schreiben (geht)
                die Textdatei besteht aus nem string logFile, dem verschiedene "events" (Temperaturen, Heizungsparameter, Tür/Fensterkontakte...) angehängt werden (addstring)

                Aber nachdem der handle richtig angelegt wird (1), der buffer auch (0), und das file auch rübergeschoben wird (läuft nun schon seit ner guten Woche), hab ich immer beim ftp-status einen speicherüberlauf (5)....das mich mächtig irritiert, hab's einfach noch nicht 100% verstanden, und dachte eben doch genau dafür ne Abfrage drin zuhaben.
                mal abgesehen davon ist die text-datei echt nicht riesig...

                Wisst ihr nun evtl nen Rat, was mach ich falsch, steh gerade "wie der Ochs' vor'm Berg..."???

                Danke euch & Grüße Alex




                //-----------------------------Variablen---------------------------------------
                //
                logData = 0b01
                logFile = $$c1400
                ReadVar = 0.0
                ByteSize = 2u16
                Pos = 0u16
                RestSize = 0u16
                AddString = $$c1400
                writeString = 1b01
                storeString = $$c1400
                ftpbufferStatus = 5u08
                ftpStatus = 10u08
                ftpFlush = 10u08
                //
                //-------------------------------FTP-Konfig------------------------------------
                //
                ftpServer=$192.168.0.1$
                ftpUser=$ftpuser$
                ftpPW=$xxx$
                ftpPath=$/WD-2500BEVExternal-01/eibpc/Logfiles$
                timeout=86400u32
                //
                handle1=ftpconfig(ftpServer,ftpUser,ftpPW,ftpPath, timeout)
                //ftpbufferStatus=sendftp(handle1,logFile)
                //ftpStatus=ftpstate(handle1)
                //
                //----------------------------Programm-Ablauf---------------------------------
                //
                //
                if change(AddString) and size(AddString)>0u16 and writeString then \\
                ByteSize=size(AddString); \\
                RestSize=capacity(logFile)-ByteSize-1u16 \\
                endif
                if change(RestSize) and RestSize>0u16 then \\
                Pos=Pos+convert(ByteSize,0u16)+1u16; \\
                logFile=logFile+$ $+AddString; \\
                storeString=$$ \\
                endif
                if change(RestSize) and RestSize<=0u16 then \\
                ftpbufferStatus=sendftp(handle1,logFile); \\
                ftpFlush=flushftp(handle1); \\
                ftpStatus=ftpstate(handle1); \\
                storeString=AddString \\
                endif
                if htime(23,59,30u08) or logData then \\
                ftpbufferStatus=sendftp(handle1,logFile); \\
                ftpFlush=flushftp(handle1); \\
                ftpStatus=ftpstate(handle1) \\
                endif
                //
                if ftpFlush==0 or ftpStatus==1 then logFile = $$; logData = AUS; Pos=0u16 endif
                if after(ftpFlush==0,1000u64) or after(ftpStatus==1,1000u64) then logFile=storeString; writeString=EIN endif

                Kommentar

                Lädt...
                X