Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Schreiben von DP in eine Textdatei

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Schreiben von DP in eine Textdatei

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by

      Hallo,

      hat jemand ein Bsp zur Hand, wie ich ein paar Datenpunkte in eine Datei schreibe?
      Ich stelle mir eine Struktur wie folgt vor:

      Datum1;Wert1;Wert2;...;WertN
      Datum2;Wert1;Wert2;...;WertN
      ...

      Danke euch

      1 Reply Last reply Reply Quote 0
      • I
        Ioniq-2018 last edited by

        die gleiche Frage habe ich auch. Wie kann ich in ein Text-File Texte oder Werte schreiben.

        F 1 Reply Last reply Reply Quote 0
        • F
          fastfoot @Ioniq-2018 last edited by

          @Ioniq-2018 sagte in Schreiben von DP in eine Textdatei:

          die gleiche Frage habe ich auch. Wie kann ich in ein Text-File Texte oder Werte schreiben.

          Hier mal was ganz Simples, mit einer JS Funktion, da Blockly das nicht direkt unterstützt. Das Skript kann Daten lesen, schreiben und anhängen
          Dateioperationen.PNG
          Die Funktion sieht so aus

          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';
          }
          

          Hier der komplette Export des Blockly

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="[-H^4u[bLNKmNjJW5uP2">Dateiname</variable>
             <variable id="[V:sEO]riS5;,[0$?b,;">Daten</variable>
             <variable id="D+I6h?O,%U:_A+DYGdFS">mode</variable>
             <variable id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</variable>
           </variables>
           <block type="procedures_defcustomreturn" id="y8r,:{{HHSZ8(K/J*Z%." x="13" y="12">
             <mutation statements="false">
               <arg name="Dateiname" varid="[-H^4u[bLNKmNjJW5uP2"></arg>
               <arg name="Daten" varid="[V:sEO]riS5;,[0$?b,;"></arg>
               <arg name="mode" varid="D+I6h?O,%U:_A+DYGdFS"></arg>
             </mutation>
             <field name="NAME">Datei</field>
             <field name="SCRIPT">Y29uc3QgZnMgPSByZXF1aXJlKCdmcycpOw0Kc3dpdGNoKG1vZGUpIHsNCiAgICBjYXNlICdyJzogcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhEYXRlaW5hbWUsICd1dGY4Jyk7DQogICAgY2FzZSAndyc6IHJldHVybiBmcy53cml0ZUZpbGVTeW5jKERhdGVpbmFtZSwgRGF0ZW4pOw0KICAgIGNhc2UgJ2EnOiByZXR1cm4gZnMuYXBwZW5kRmlsZVN5bmMoRGF0ZWluYW1lLCBEYXRlbik7DQogICAgZGVmYXVsdDogcmV0dXJuICdQYXJhbWV0ZXIgbW9kZSBtdXNzICJyIiwgInciIG9kZXIgImEiIHNlaW4nOw0KfQ==</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           </block>
           <block type="variables_set" id="toixTd-7I(w?Pn.u`a?n" x="12" y="37">
             <field name="VAR" id="[-H^4u[bLNKmNjJW5uP2">Dateiname</field>
             <value name="VALUE">
               <block type="text" id="?(6$X5B~AZEV{a([vl[@">
                 <field name="TEXT">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="get_value" id="z`*tOTlM5QkaP95I^t%T">
                             <field name="ATTR">val</field>
                             <field name="OID">0_userdata.0.TEST_STRING</field>
                           </block>
                         </value>
                         <value name="ARG2">
                           <block type="text" id="3up}TP81c9Wp-96*F,5@">
                             <field name="TEXT">w</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="comment" id="|H;Q4k9;*Pt(vK9=82`H">
                         <field name="COMMENT">hänge Daten an</field>
                         <next>
                           <block type="variables_set" id="_Xd!v-[@x-Z|PoHAyoyu">
                             <field name="VAR" id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</field>
                             <value name="VALUE">
                               <block type="procedures_callcustomreturn" id="Kix=mH/:P%E:61HOXEIX" 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=".5v9iB,c)2bFb08C*LG9">
                                     <field name="VAR" id="[-H^4u[bLNKmNjJW5uP2">Dateiname</field>
                                   </block>
                                 </value>
                                 <value name="ARG1">
                                   <block type="text_join" id="Iy:kK2OD($WDU?}lmC}T">
                                     <mutation items="2"></mutation>
                                     <value name="ADD0">
                                       <block type="text_newline" id="]Ft2KSNwM+-08Qyp};2-">
                                         <field name="Type">\n</field>
                                       </block>
                                     </value>
                                     <value name="ADD1">
                                       <block type="text" id="H+wIFp%3q#)E-,sf!%gV">
                                         <field name="TEXT">ich bin ein neuer Text</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="ARG2">
                                   <block type="text" id="8Xv|@WUDO7Y)7m-*cFnG">
                                     <field name="TEXT">a</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="comment" id="taTq.cZ=keGw%Ck=+jr#">
                                 <field name="COMMENT">lese Daten</field>
                                 <next>
                                   <block type="variables_set" id="f5.j(r?b,_AHqM;)C.Ia">
                                     <field name="VAR" id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</field>
                                     <value name="VALUE">
                                       <block type="procedures_callcustomreturn" id="6N=FySzuwjV*^!nuD|Px" 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="B3fH9]M#8ETt/)Pe?CIh">
                                             <field name="VAR" id="[-H^4u[bLNKmNjJW5uP2">Dateiname</field>
                                           </block>
                                         </value>
                                         <value name="ARG2">
                                           <block type="text" id="|X2TzUzGl}q|1i{t:f6+">
                                             <field name="TEXT">r</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="debug" id="Vd,oN96*]-jq{x9aE[qy" inline="true">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="NLQ(;Qv-I_D?mTV,mc)9">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="variables_get" id="4@V(hvYhuwY%1Q03?~S;">
                                             <field name="VAR" id="@`{2Tshq:9^uF$%i]pMW">Ergebnis</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
          </xml>
          

          J wierer-sigi Dr. KOAL Gaby827 4 Replies Last reply Reply Quote -1
          • I
            Ioniq-2018 last edited by

            Top, das ist genau das was ich gesucht habe. Danke.

            1 Reply Last reply Reply Quote 0
            • J
              Jojo36 @fastfoot last edited by

              @fastfoot
              Hallo vielen Dank für das Beispiel. Das Skript funktioniert nicht bei mir.
              Ich habe folgende Fehlermeldungen im Log:
              3aa50281-410c-4ce5-989e-fd637268b692-grafik.png
              Ich muss bestimmt die Datei händig. Da kommt aber dann die nächste Frage auf?

              1. In welches Verzeichnis?
              2. Muss ich dort extra Benutzerrechte vergeben?

              Vielen Dank im Vorraus!

              F 1 Reply Last reply Reply Quote 0
              • F
                fastfoot @Jojo36 last edited by

                @Jojo36 sagte in Schreiben von DP in eine Textdatei:

                Ich muss bestimmt die Datei händig. Da kommt aber dann die nächste Frage auf?

                In welches Verzeichnis?
                Muss ich dort extra Benutzerrechte vergeben?

                wenn du das Beispiel so wie hier gezeigt laufen lässt, dann wird die Datei in /opt/iobroker/ erstellt. Dort sollten eigentlich alle Rechte vorhanden sein

                Skripte laufen unter dem user iobroker, der muss natürlich in einem evtl anderen Verzeichnis Rechte haben

                J 1 Reply Last reply Reply Quote 0
                • J
                  Jojo36 @fastfoot last edited by

                  @fastfoot
                  Hallo, ich komme nicht weiter. Irgendwie habe ich keine Berechtigung für die Datei zu erstellen.
                  Wo finde ich den Benutzer "iobroker". Der ist nirgends aufgeführt.

                  Kannst du mir weiterhlefen?

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fastfoot @Jojo36 last edited by

                    @Jojo36 sagte in Schreiben von DP in eine Textdatei:

                    @fastfoot
                    Hallo, ich komme nicht weiter. Irgendwie habe ich keine Berechtigung für die Datei zu erstellen.
                    Wo finde ich den Benutzer "iobroker". Der ist nirgends aufgeführt.

                    Kannst du mir weiterhlefen?

                    Wenn die Berechtigungen nicht stimmen, dann weiss ich da auch nicht weiter.

                    J 1 Reply Last reply Reply Quote 0
                    • J
                      Jojo36 @fastfoot last edited by

                      @fastfoot
                      Hallo,
                      ich habe zum Test den Raspberry komplett neu aufegesetzt. Es war ein Versuch wert. Aber Fehler ist unverändert da.

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fastfoot @Jojo36 last edited by

                        @Jojo36 sagte in Schreiben von DP in eine Textdatei:

                        @fastfoot
                        Hallo,
                        ich habe zum Test den Raspberry komplett neu aufegesetzt. Es war ein Versuch wert. Aber Fehler ist unverändert da.

                        wie schonmal geschrieben, bei mir wird das Verzeichnis /opt/iobroker genommen, wenn sonst nichts angegeben ist. Um sicher zu gehen, dass dem auch so ist, verwende als Dateinamen mal /opt/iobroker/test.txt. Von der Konsole aus könntest du auch mal den Fixer laufen lassen, der kümmert sich auch um Berechtigungen

                        • iobroker stop
                        • iobroker fix
                        • iobroker start
                        I J 2 Replies Last reply Reply Quote 0
                        • I
                          Ioniq-2018 @fastfoot last edited by

                          Ich habe WIN10. Da funktioniert es.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Ioniq-2018 last edited by

                            @Ioniq-2018 sagte:

                            WIN10. Da funktioniert es.

                            Unter Ubuntu 18 ebenfalls.

                            1 Reply Last reply Reply Quote 0
                            • J
                              Jojo36 @fastfoot last edited by

                              @fastfoot said in Schreiben von DP in eine Textdatei:

                              /opt/iobroker/test.txt

                              Hi vielen vielen Dank für die Hilfe!!
                              Nachdem ich den Ordner wie beschrieben mit angegeben habe, hat es funktioniert.

                              Vielen Dank für die tolle Hilfe!!!

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fastfoot @Jojo36 last edited by

                                @Jojo36 sagte in Schreiben von DP in eine Textdatei:

                                @fastfoot said in Schreiben von DP in eine Textdatei:

                                /opt/iobroker/test.txt

                                Hi vielen vielen Dank für die Hilfe!!
                                Nachdem ich den Ordner wie beschrieben mit angegeben habe, hat es funktioniert.

                                Vielen Dank für die tolle Hilfe!!!

                                Immer gerne, das sagt mir jetzt aber, dass der 'Standardordner' für Skripte nicht immer /opt/iobroker/ ist. Dieser sollte aber nicht standardmässig genutzt werden, besser wäre evtl. ein eigens angelegter Ordner

                                @paul53, weisst du wie man das Verzeichnis rausfinden kann? Ich hatte irgendwann mal __dirname probiert, das hatte aber nicht funktioniert, not defined kommt da, obwohl vom Editor vorgeschlagen

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @fastfoot last edited by

                                  @fastfoot sagte:

                                  wie man das Verzeichnis rausfinden kann?

                                  exec('pwd', function(error, stdout, stderr) {
                                      log(stdout);
                                  });
                                  

                                  liefert "/" (Wurzel).

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fastfoot @paul53 last edited by

                                    @paul53 sagte in Schreiben von DP in eine Textdatei:

                                    @fastfoot sagte:

                                    wie man das Verzeichnis rausfinden kann?

                                    exec('pwd', function(error, stdout, stderr) {
                                        log(stdout);
                                    });
                                    

                                    liefert "/" (Wurzel).

                                    Danke, da bin ich nicht drauf gekommen, es so zu machen. Bei mir liefert das /opt/iobroker, mag am Docker liegen

                                    1 Reply Last reply Reply Quote 0
                                    • wierer-sigi
                                      wierer-sigi @fastfoot last edited by

                                      @fastfoot

                                      Hallo

                                      Versuche ebenfalls Daten ( Verbrauch der Wallbox und Kilometer des Autos ) täglich in eine Datei wegzuschieben für spätere Auswertungen.

                                      Habe versucht das beschriebene Beispiel nachzubauen, bekomme aber leider immer folgende Fehlermeldungen:

                                      • The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number ( 434 )

                                      Habt Ihr eine Tipp wie diese Typzuweisung erfolgen könnte.

                                      Danke vorab
                                      Sigi

                                      iobroker Blocky Datei schreiben.jpg
                                      iobroker Blocky Datei schreiben JS .jpg

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @wierer-sigi last edited by

                                        @wierer-sigi sagte: wie diese Typzuweisung erfolgen könnte.

                                        Konvertiere den Datenpunktwert "nach String".

                                        wierer-sigi 1 Reply Last reply Reply Quote 0
                                        • wierer-sigi
                                          wierer-sigi @paul53 last edited by

                                          @paul53

                                          Danke die Fehlermeldung habe ich damit wegbekommen.

                                          Aber leider schreibt er noch keine Datei ins /opt/iobroker Verzeichnis. Hängt das mit der folgenden Meldung zusammen?

                                          • registered 0 subscriptions and 0 schedules?

                                          iobroker Blocky Datei ausgabe 2.jpg

                                          S 1 Reply Last reply Reply Quote 0
                                          • Dr. KOAL
                                            Dr. KOAL @fastfoot last edited by

                                            @fastfoot

                                            Hi ich würde auch gerne in eine Datei schrieben aber bei mir sagt er das es "mode" nicht gibt.
                                            Bin leider gänzlich unerfahren mit Java...
                                            f55d3ae0-ecf8-4468-802c-1df82b444dcc-image.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            564
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            10
                                            24
                                            3727
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo