Dateiname mit Timestamp

  • Um Daten unter einem Dateinamen mit Timestamp nach >B auch in >S fortschreiben zu können sollte dieser Timestamp fixiert werden.

    Gelingt mir aber nicht die Variablen im Dateinamen zu koppeln - hat jemand eine Idee wie das geht ?

    Ziel war:

    >B

    wert=st(tstamp : 1)+"_"+s(mins)

    fr=fo("Daten"+wert+".txt" 1)

    str="topic, Minute, Datenwert \r\n"

    res=fw(str fr)

    fc(fr)

    >S

    fr=fo("Daten"+wert+".txt" 2)

    str=VAR7+ \r\n"

    res=fw(str fr)

    fc(fr)

    svar -Nutzung erforderlich ??

    2 Mal editiert, zuletzt von karoCB (31. Dezember 2022 um 07:07)

  • Scheint wichtig zu sein ein /als Dateinamensstart damit Daten im UFS-Filesystem abgelegt werden können!

    Beispiel-Script:

    schreibt eine .csv-Datei mit "," als Trennung nach Initialisierung des Dateinamens mit Timestamp und Dateikopf.

    Datenanlieferungen auf VAR7 werden gespeichert (können auch von mehreren Rule-Quellensysteme sein).


    Rule1

    on tele-ANALOG#Temperature do Backlog VAR5 %topic%,%timestamp%,%value% endon

    on var5#state do Backlog websend [192.168.178.xx] script>VAR7="%VAR5%" endon


    _________________________Skript_auf .xx kann ESP32 oder ESP8266 mit (#define USE_UFILESYS) _____________________________

    >D 48

    fr=0

    res=0

    cnt=0

    str=""

    Twert=""

    VAR7="0,0,0"

    K1=""

    ; Achtung- im Standard nur 5 Stringvariablen erlaubt von 50 insgesamt

    >B

    Twert=st(tstamp T 1)+"_"+s(4.0time)

    fr=fo("/Daten"+Twert+".csv" 1)

    str="topic, Time, Daten \r\n"

    res=fw(str fr)

    fc(fr)

    >T

    >S

    if K1!=VAR7

    then

    K1=VAR7

    fr=fo("/Daten"+Twert+".csv" 2)

    str=VAR7+"\r\n"

    res=fw(str fr)

    fc(fr)

    endif

    Einmal editiert, zuletzt von karoCB (5. Januar 2023 um 08:18)

  • Um mit dem Link (Bild rot) gleich excel-Import zu starten ist eine Trennung mit ";" doch das Beste. Dazu wird ein Umbau der ankommenden Komma getrennten Daten erforderlich.

    somit ist die Script-Zeile von oben: str=VAR7+"\r\n"

    gegen folgende Zeile zu tauschen:

    str=st(VAR7 , 1)+";"+st(VAR7 , 2)+";"+st(VAR7 , 3)+";"+st(VAR7 , 4)+"\r\n"

    Danke für die positive Reaktion

    und jede Weitere :whistling:

      

  • >D 48

    fr=0

    res=0

    str=""

    Twert=""

    VAR7="0;0;0;0"

    K1="0;0;0;0"

    Pu=0

    Pl=0

    P=0

    cnt=0

    ;---Achtung nur 5 Stringvariablen im Standard erlaubt

    >B

    Twert=st(tstamp T 1)+"_"+s(4.0time)

    fr=fo("/Daten"+Twert+".csv" 1)

    str="topic; Time; Temp; Leistung \r\n"

    res=fw(str fr)

    fc(fr)

    >T

    >S

    if K1!=VAR7

    then

    K1=VAR7

    fr=fo("/Daten"+Twert+".csv" 2)

    str=st(VAR7 , 1)+";"+tstamp+";"+st(VAR7 , 2)+";"+st(VAR7 , 3)+";"+st(VAR7 , 4)+"\r\n"

    ' für die 3. Datenspalte

    Pu=ins(str ".")

    Pl=sl(str)

    str=sb(str 0 Pu)+","+sb(str Pu+1 Pl-Pu)

    ' für die 4. Datenspalte

    Pu=ins(str ".")

    Pl=sl(str)

    str=sb(str 0 Pu)+","+sb(str Pu+1 Pl-Pu)

    res=fw(str fr)

    fc(fr)

    endif

    lila im deutschen excel-Umfeld nötig um eine direkte Ladung zu ermöglichen - "." gegen "," tauschen

    2 Mal editiert, zuletzt von karoCB (6. August 2023 um 13:22)