Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Automatisierung
  5. Schreiben und Lesen von Dateien

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    703

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Schreiben und Lesen von Dateien

Geplant Angeheftet Gesperrt Verschoben Automatisierung
26 Beiträge 6 Kommentatoren 139 Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Homoran

    @A250-Fan sagte:

    Wenn ich nun aus der Datei Zaehler_log.csv von den villeicht 100 vorhandenen Zeilen die ersten 50 Zeilen lösche (mit einem Texteditor)

    Wie lange dauert das?

    MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von
    #4

    So macht man das nicht gerne ...

    Der Zeitplan sorgt minütlich für "Bewegung" in der Datei. Da ist die "Kollisionsgefahr" mit Deinen Editierversuchen groß ...

    50 Zeilen löschen wäre das Logging von 50 Minuten.

    Würde den Dateinamen mit Datum/Uhrzeit kombinieren, z. B. "Zaehler_log_2026_04_01_18_00.csv"

    Stündlich oder täglich eine neue Log-Datei anfangen.
    Automatisches oder händisches Housekeeping über den Dateinamen, oder das Dateialter.

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
    Linux pve 6.17.9-1-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      A250-Fan
      schrieb am zuletzt editiert von
      #5

      @Homoran sagte:

      Wie lange dauert das?

      Worauf bezieht sich "das"?

      A250: meine Leblings-SPS aus den späten 80ern

      HomoranH 1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        A250-Fan
        schrieb am zuletzt editiert von
        #6

        @oliverio
        Ich möchte die Daten später von einem Netzlauferk abrufen.

        A250: meine Leblings-SPS aus den späten 80ern

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          A250-Fan
          schrieb am zuletzt editiert von
          #7

          @martinp
          Das Skript soll eigendlich nur einmal am Tag laufen (nachts). Das Bild des Blocklys ist aus eienm Testskript.

          A250: meine Leblings-SPS aus den späten 80ern

          1 Antwort Letzte Antwort
          0
          • A A250-Fan

            @Homoran sagte:

            Wie lange dauert das?

            Worauf bezieht sich "das"?

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #8

            @A250-Fan sagte:

            Worauf bezieht sich "das"?

            Auf die Tätigkeitsbeschreibung in dem Zitat

            kein Support per PN! - Fragen im Forum stellen -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              A250-Fan
              schrieb am zuletzt editiert von
              #9

              @homoran
              Für das Markieren und Löschen der Zeilen sowie das anschließende Speichern benötige ich ca 15 Sekunden.

              A250: meine Leblings-SPS aus den späten 80ern

              HomoranH 1 Antwort Letzte Antwort
              0
              • MartinPM Online
                MartinPM Online
                MartinP
                schrieb am zuletzt editiert von
                #10

                Die Dateioperationen aus Blockly nutzen soweit ich weiß NICHT die Betriebssystem-Funktionen.
                Dateien innerhalb des iobroker-ökosystems sollte man nicht "von außen" z. B. mit einem Text-Editor schreibend anpacken.

                Dafür gibt es z. B. die iobroker - kommandozeilen-Kommandos.

                https://github.com/ioBroker/ioBroker.docs/blob/master/docs/de/config/cli.md

                Ein Kochrezept wäre

                1. Kopie des Files anlegen
                iobroker file read /vis.0/main/imgZaehler_log.csv /tmp/Zaehler_log.csv
                
                1. Editieren der Kopie des Files in /tmp/Zaehler_log.csv

                2. Geänderte Kopie des Files zurückschreiben

                iobroker file write /tmp/Zaehler_log.csv /vis.0/main/imgZaehler_log.csv
                

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                Linux pve 6.17.9-1-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  A250-Fan
                  schrieb am zuletzt editiert von A250-Fan
                  #11

                  @martinp
                  Werde ich morgen mal ausprobieren habe gleich leider noch Termine.

                  A250: meine Leblings-SPS aus den späten 80ern

                  1 Antwort Letzte Antwort
                  0
                  • A A250-Fan

                    @homoran
                    Für das Markieren und Löschen der Zeilen sowie das anschließende Speichern benötige ich ca 15 Sekunden.

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #12

                    @A250-Fan sagte:

                    @homoran
                    Für das Markieren und Löschen der Zeilen sowie das anschließende Speichern benötige ich ca 15 Sekunden.

                    Hast du

                    • in der Zeit das Skript angehalten?
                    • die Datei
                      • heruntergeladen
                      • bearbeitet
                      • zurückgeschrieben?

                    kein Support per PN! - Fragen im Forum stellen -
                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      A250-Fan
                      schrieb am zuletzt editiert von
                      #13

                      @homoran
                      Skript wurde nicht angehalten. Bearbeitung der Datei direkt auf dem Raspi.

                      A250: meine Leblings-SPS aus den späten 80ern

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • A A250-Fan

                        @homoran
                        Skript wurde nicht angehalten. Bearbeitung der Datei direkt auf dem Raspi.

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von Homoran
                        #14

                        @A250-Fan sagte:

                        Skript wurde nicht angehalten

                        Dann kannst du in die Asynchronfalle geraten, dass das Skript die Änderung überschreibt, aber...

                        @A250-Fan sagte:

                        Bearbeitung der Datei direkt auf dem Raspi.

                        Das "geht nicht".
                        Das wird nicht als geänderte Datei markiert.
                        Dazu muss sie neu mittels writeFile geschrieben, oder manuell über die GUI hochgeladen werden.

                        kein Support per PN! - Fragen im Forum stellen -
                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          A250-Fan
                          schrieb am zuletzt editiert von
                          #15

                          Also so wie MartinP geschrieben hat: weg kopieren, ändern, zurück kopieren?

                          A250: meine Leblings-SPS aus den späten 80ern

                          HomoranH Thomas BraunT 2 Antworten Letzte Antwort
                          0
                          • A A250-Fan

                            Also so wie MartinP geschrieben hat: weg kopieren, ändern, zurück kopieren?

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #16

                            @A250-Fan ja

                            kein Support per PN! - Fragen im Forum stellen -
                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            1 Antwort Letzte Antwort
                            0
                            • A A250-Fan

                              Also so wie MartinP geschrieben hat: weg kopieren, ändern, zurück kopieren?

                              Thomas BraunT Online
                              Thomas BraunT Online
                              Thomas Braun
                              Most Active
                              schrieb am zuletzt editiert von
                              #17

                              @A250-Fan

                              Ich würde das ja versuchen anders aufzuziehen.
                              Schreib doch von vorneherein nur plausible Werte in die Datei. Dann musste dich auch nicht so umständlich wieder herausklamüsern.

                              Linux-Werkzeugkasten:
                              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                              NodeJS Fixer Skript:
                              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                A250-Fan
                                schrieb am zuletzt editiert von
                                #18

                                Das Löschen von Zeilen dient der Verkleinerung der Datei .

                                A250: meine Leblings-SPS aus den späten 80ern

                                Thomas BraunT JoJo58J 2 Antworten Letzte Antwort
                                0
                                • A A250-Fan

                                  Das Löschen von Zeilen dient der Verkleinerung der Datei .

                                  Thomas BraunT Online
                                  Thomas BraunT Online
                                  Thomas Braun
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #19

                                  @A250-Fan

                                  Vielleicht solltest du zunächst mal genauer definieren, was du als Ziel hast.
                                  Du willst nur die letzten x Messwerte haben?
                                  Oder willst du händisch Einträge löschen? Nach welchen Kriterien?

                                  Linux-Werkzeugkasten:
                                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                  NodeJS Fixer Skript:
                                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                  1 Antwort Letzte Antwort
                                  0
                                  • A A250-Fan

                                    Das Löschen von Zeilen dient der Verkleinerung der Datei .

                                    JoJo58J Offline
                                    JoJo58J Offline
                                    JoJo58
                                    schrieb am zuletzt editiert von
                                    #20

                                    @A250-Fan

                                    Wenn du die Datei doch eh auf ein Netzlaufwerk haben willst, dann kannst du sie auch direkt dorthin schreiben. So mache ich das z.B. mit diversen Listen. Da wird der neue Text immer nur als Zeile darunter gesetzt.

                                    Ich habe das folgende Blockly damals hier im Forum gefunden, weiß nur nicht mehr wo.

                                    c28d86e6-c536-4dbd-b193-bfa202672300-image.jpeg

                                    Die JS-Funktion enthält:

                                    const fs = require('fs');
                                    switch(mode) {
                                        case 'r': return fs.readFileSync(Dateiname, 'utf8');
                                        case 'w': return fs.writeFileSync(Dateiname, Daten);
                                        case 'a': return fs.appendFileSync(Dateiname, Daten);
                                        default: return 'Parameter mode muss "r", "w" oder "a" sein';
                                    }
                                    

                                    Oder hier das Blockly als Export:

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                      <variables>
                                        <variable id="[-H^4u[bLNKmNjJW5uP2">Dateiname</variable>
                                        <variable id="B@!nDrO;Ag4]/Ns]5`VT">Daten</variable>
                                        <variable id="Nw,T]ZGil{Kmm.Tfd=8`">mode</variable>
                                        <variable id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</variable>
                                      </variables>
                                      <block type="schedule" id=",/z9[bkm:Mx.Xz)_WV}C" x="63" y="-12">
                                        <field name="SCHEDULE">0 12 * * *</field>
                                        <statement name="STATEMENT">
                                          <block type="variables_set" id="toixTd-7I(w?Pn.u`a?n">
                                            <field name="VAR" id="[-H^4u[bLNKmNjJW5uP2">Dateiname</field>
                                            <value name="VALUE">
                                              <block type="text" id="?(6$X5B~AZEV{a([vl[@">
                                                <field name="TEXT">/opt/iobroker/Test.txt</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="comment" id="E=!qQw-l-tNwXd3eE2{K">
                                                <field name="COMMENT">schreibe Daten</field>
                                                <next>
                                                  <block type="variables_set" id="OOlava!O!gwl*p7jMH{$">
                                                    <field name="VAR" id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</field>
                                                    <value name="VALUE">
                                                      <block type="procedures_callcustomreturn" id="#C-F-T.#.ZD80^Pn[:f}" inline="false">
                                                        <mutation name="Datei">
                                                          <arg name="Dateiname"></arg>
                                                          <arg name="Daten"></arg>
                                                          <arg name="mode"></arg>
                                                        </mutation>
                                                        <value name="ARG0">
                                                          <block type="variables_get" id="#%2(}]P4^Jg4JwKdoO0^">
                                                            <field name="VAR" id="[-H^4u[bLNKmNjJW5uP2">Dateiname</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG1">
                                                          <block type="text_join" id="$s-gtsey+o{l3}RQF^uK">
                                                            <mutation items="6"></mutation>
                                                            <value name="ADD0">
                                                              <block type="text_newline" id="cDYlllvQ1RZl;+$EdmU1">
                                                                <field name="Type">\n</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD1">
                                                              <block type="time_get" id="|^_IZ6r;?Uk`wi{`![?8">
                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                <field name="OPTION">YYYY.MM.DD</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD2">
                                                              <block type="text" id="/yr|qtO+29$HOSt`J$5t">
                                                                <field name="TEXT">;</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD3">
                                                              <block type="time_get" id="leJ5uWCm;,j-I2A]Bi`V">
                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                <field name="OPTION">hh:mm:ss</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD4">
                                                              <block type="text" id="=J#lQk)K7uCMaJghmU^;">
                                                                <field name="TEXT">;</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD5">
                                                              <block type="get_value" id="f!OZs64Riw}U2PQFJ^Q8">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">ID auswählen</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <value name="ARG2">
                                                          <block type="text" id="3up}TP81c9Wp-96*F,5@">
                                                            <field name="TEXT">a</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                      </block>
                                      <block type="procedures_defcustomreturn" id="y8r,:{{HHSZ8(K/J*Z%." x="588" y="13">
                                        <mutation statements="false">
                                          <arg name="Dateiname" varid="[-H^4u[bLNKmNjJW5uP2"></arg>
                                          <arg name="Daten" varid="B@!nDrO;Ag4]/Ns]5`VT"></arg>
                                          <arg name="mode" varid="Nw,T]ZGil{Kmm.Tfd=8`"></arg>
                                        </mutation>
                                        <field name="NAME">Datei</field>
                                        <field name="SCRIPT">Y29uc3QgZnMgPSByZXF1aXJlKCdmcycpOw0Kc3dpdGNoKG1vZGUpIHsNCiAgICBjYXNlICdyJzogcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhEYXRlaW5hbWUsICd1dGY4Jyk7DQogICAgY2FzZSAndyc6IHJldHVybiBmcy53cml0ZUZpbGVTeW5jKERhdGVpbmFtZSwgRGF0ZW4pOw0KICAgIGNhc2UgJ2EnOiByZXR1cm4gZnMuYXBwZW5kRmlsZVN5bmMoRGF0ZWluYW1lLCBEYXRlbik7DQogICAgZGVmYXVsdDogcmV0dXJuICdQYXJhbWV0ZXIgbW9kZSBtdXNzICJyIiwgInciIG9kZXIgImEiIHNlaW4nOw0KfQ==</field>
                                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                      </block>
                                    </xml>
                                    

                                    Gruß, Johannes

                                    Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                                    Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                                    Einfach ein tolles Hobby :-)

                                    1 Antwort Letzte Antwort
                                    2
                                    • A Offline
                                      A Offline
                                      A250-Fan
                                      schrieb am zuletzt editiert von
                                      #21

                                      @homoran
                                      Habe heute weiter getestet.
                                      Test 1: Skript angehalten, Datei geändert, Skript wieder gestartet. Ergebnis: Die gelöschten Zeilen erscheinen nach dem nächsten Schreibzugriff von Blockly wieder.
                                      Test 2: Skript angehalten, Datei in anderes Verzeichnis verschoben, geändert und wieder im ursprünglichen Verzeichnis gespeichert. Ergebnis: Die gelöschten Zeilen erscheinen nach dem nächsten Schreibzugriff von Blockly wieder.

                                      A250: meine Leblings-SPS aus den späten 80ern

                                      1 Antwort Letzte Antwort
                                      0
                                      • A Offline
                                        A Offline
                                        A250-Fan
                                        schrieb am zuletzt editiert von A250-Fan
                                        #22

                                        @jojo58
                                        Hallo jojo58, auch deinen Vorschlag habe ich getestet. Das funktioniert auch wie ich mir das vorgestellt habe. Das ursprünglich ausgessuchte Verzeichnis für die Datei mochte dein Skript allerdings nicht (da gibt es wohl nicht die passenden Rechte). Das macht aber nichts, letztendlich ist es mir nicht wichtig in welchem Verzeichnis die Datei liegt. Mein Problem ist damit gelöst. Herzlichen Dank!

                                        A250: meine Leblings-SPS aus den späten 80ern

                                        JoJo58J 1 Antwort Letzte Antwort
                                        0
                                        • A Offline
                                          A Offline
                                          A250-Fan
                                          schrieb am zuletzt editiert von
                                          #23

                                          Da mein Problem nun gelöst ist, bedanke ich mir bei allen Beitragenden recht herzlich.

                                          A250: meine Leblings-SPS aus den späten 80ern

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          589

                                          Online

                                          32.7k

                                          Benutzer

                                          82.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe