Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Datei auf Win PC schreiben

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datei auf Win PC schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      zariomahn last edited by

      Hi,

      versuche schon seit tagen über Node Red eine Date auf einem indows Rechner zu schreiben.
      Egal wie ich den Pfad eingebe in das Nodes "write file", entweder es kommt eine Fehlermeldung "Datei oder Verzeichnis nicht vorhanden", oder alles OK, aber die Datei wird nicht geschrieben.
      Wollte als Path: \192.168.1.99\Test\test.txt
      oder //192.168.1.99/Test/test.txt
      oder \192.168.1.99\Test\test.txt
      aber nichts funktioniert.

      Und ja, am WinPC sind alle Freigeben erstellt und mit allen Rechten vergeben, komme auch von anderen Rechner darauf.
      Kann es sein das ich am Raspi noch etwas installieren oder einstellen mus ?? Hab das Gefühl ich komme garnicht raus aus dem Raspi um die Datei zu schreiben, denn am WinPC finde ich nichts in den Logs.

      Danke schon mal

      MZ

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @zariomahn last edited by mickym

        @zariomahn Ich denke, Du wirst Deine Windowsfreigabe auf dem Raspi mounten müssen und zwar so, dass beim mounten alle Rechte für den user iobroker vorhanden sind. Wenn das permanent sein soll, musst Du halt beim Booten mounten.

        Ich kann Dir helfen, wenn Du wissen willst was Du in die fstab eintragen musst.

        Z 1 Reply Last reply Reply Quote 0
        • Z
          zariomahn @mickym last edited by

          @mickym
          Hi, erst mal danke für die schnelle Antwort.

          Ja ich habe es fast befürchtet mit der Freigabe.... ich bin nicht so der Linux Experte, kann zwar Befehle abtippen und per Terminal einfügen, aber fürs eingemachte fehlt einfach noch einiges 🙂

          Das wäre supi wenn du mir die Befehle rüberschicken könntest die ich an der Konsole eingeben muss... die Freigebe sollte dauerhaft sein.

          vg

          MZ

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @zariomahn last edited by mickym

            @zariomahn Du musst halt ggf. prüfen, ob Du im Windows wirklich als Gast und ohne Kennwort anmelden kannst.

            Wenn Du es unter dem home Verzeichnis des iobroker users haben möchtest, könntest Du z.Bsp. ein Verzeichnis - ich nenne es mal windows - erstellen:

            sudo -su iobroker
            cd ~
            mkdir windows
            

            Ich habe das Verzeichnis mal bewusst unter iobroker erstellt - damit es die richtigen Rechte hat und mit dem user iobroker:

            ls -l
            
            drwxr-xr-x 2 iobroker iobroker 4096 29. Sep 13:15 windows
            

            in einer Passwortdatei - wie gesagt keine Ahnung, ob Dein User wirklich Gast zulässt und kein Kennwort - ansonsten ich habe einen lokalen Windows-User erstellt, schreibst Du in eine Textdatei - userid und passwort als versteckte Datei - ich platziere sie mal in das Verzeichnis des iobrokers (darauf wird dann in der fstab Zeile Bezug genommen):

            nano /home/iobroker/.smbcredentials
            

            dort trägst Du dann username und password ein:

            username=Benutzer
            password=Passwort
            domain=WORKGROUP
            

            zum Schluß modifizierst Du die fstab.

            exit
            sudo nano /etc/fstab
            

            und trägst folgende Zeile ein - mit einer Zeilenschaltung zum Schluss:

            //server/share    /home/iobroker/windows        cifs    vers=3.0,rw,auto,users,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentials      0       0
            

            server und share musst Du halt mit IP Adresse und Freigabename ersetzen.

            Dann neu booten.

            Wenn Du anschließend als Benutzer iobroker im Verzeichnis /home/iobroker/windows deine Windowsdateien siehst ...

            sudo -su iobroker
            cd ~
            ls -la windows
            

            bzw. eine neue Datei erstellen kannst ...

            sudo -su iobroker
            cd ~
            touch test.text
            

            dann klappst auch aus NodeRed unter dem iobroker.
            1f992b5e-b513-4841-b0c5-b478fcae8d80-image.png

            Falls die Datei nach dem Schreiben geschlossen werden soll, damit Du mit was anderem zugreifen kannst - den Pfad in msg.filename und nicht in der Node mitgeben - siehe Hilfe zu der Node. 😉

            fcf9d875-65c4-431d-aa17-698b76222e1a-image.png

            Mit

            exit
            

            verlässt Du den user iobroker wieder aus der shell und arbeitest wieder mit dem user, mit dem Du angemeldet bist - also pi wahrscheinlich.

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active last edited by mickym

              @zariomahn sagte in Datei auf Win PC schreiben:

              \\192.168.1.99\Test\test.txt
              oder //192.168.1.99/Test/test.txt

              Vielleicht mal generell - damit kann halt nur Windows was mit anfangen 😉 - aber Linux kennt standardmäßig keine UNC-Namen. 😉

              Und falls Dir der Share mal wegbricht - dann kannst Du über die Kommandozeile das Verzeichnis wieder mounten:

              mount /home/iobroker/windows
              

              PS: 😉 - Ich bin auch kein Linux Spezi bzw. Profi - habe mir das auch alles zusammengesucht. 😉

              Z 1 Reply Last reply Reply Quote 0
              • Z
                zariomahn @mickym last edited by

                @mickym

                Hi,

                vielen Dank erstmal, hat zu 99% funktioniert 🙂

                Ich sehe unter /home/iobroker/windows/ alle meine Dateien vom WindowsRechner, d.h. es ist gemountet.

                Aber ich kann keine Datei darin erstellen, habe die Passwortdatei erstellt mit den richtigen Benutzer u.s.w. aber wenn ich aus Node Red ausführe kommt diese Fehlermeldung:

                (...)
                "failed to write to file: Error: EACCES: permission denied, open '/home/iobroker/windows/test.txt'"
                (...)

                Auch wenn ich den touch Befehl ausführe bekomme ich folgendes: touch: cannot touch 'test.text': Permission denied

                wo kann ich überprüfen was die Ursache ist ?

                vg

                MZ

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @zariomahn last edited by mickym

                  @zariomahn Dann stimmt was mit den Schreibrechten im Zielverzeichnis nicht - Musst halt auf beiden Seiten prüfen. Es scheint Lese- aber keine Schreibrechte zu geben.

                  Auf der Windowsseite muss die Freigabe (Jeder = Vollzugriff) und auf dem Dateisystem die Rechte Schreiben für den neuen Benutzer gegeben sein und zwar in dem Freigabeverzeichnis selbst und ggf. darunter.

                  Wenn Du auf dem Raspberry mit dem iobroker angemeldet bist:
                  solltest Du mit ls -l auch alle Schreibrechte haben.

                  Z 1 Reply Last reply Reply Quote 0
                  • Z
                    zariomahn @mickym last edited by

                    @mickym
                    wenn ich mich am pi anmelde bin ich erstmal mit meinen benutzer drauf "mario", dann gebe ich ein sudo -su iobroker
                    dann erhalte ich iobroker@raspberrypi:/home/mario $
                    dann kann ich erst mit cd ~ zurück und bin dann iobroker@raspberrypi:~ $
                    hier finde ich auch das windows verzeichnis in dem ich dann mit cd windows springen kann. iobroker@raspberrypi:~/windows $

                    sollte hier nicht irgendwie das home auftauchen ?? /home/iobroker/windows ??

                    vg

                    mickym 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @zariomahn last edited by mickym

                      @zariomahn Nein die Tilde ~ ist immer die Abkürzung für das Homeverzeichnis des jeweiligen Benutzers. Für den iobroker also automatisch /home/iobroker.

                      Statt ~ kannst Du egal mit welchem Benutzer natürlich auch immer die absoluten Pfade eingeben. Du musst keine ~ benutzen. 😉

                      Schau mal lieber auf der Windowsseite, ob die Rechte stimmen.

                      1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @zariomahn last edited by mickym

                        @zariomahn Ich habe noch einen Verdacht - aber noch keine Lösung

                        mach mal den mount weg.

                        sudo umount /home/iobroker/windows
                        

                        dann machst mit dem iobroker user nochmal

                        sudo -su iobroker
                        mount ~/windows
                        

                        und schaust ob Du nun mit

                        touch ~/windows/test.txt
                        

                        eine Datei erstellen kannst.

                        Ach und mach mal in Deine fstab noch eine nofail rein - nicht dass Dein Raspberry nicht mehr hochfährt.

                        //server/share /home/iobroker/windows cifs vers=3.0,rw,auto,nofail,users,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentials 0 0
                        

                        Sonst gibts vielleicht Fehler wenn der Windows-Rechner nicht am Netz ist.

                        Z 1 Reply Last reply Reply Quote 0
                        • Z
                          zariomahn @mickym last edited by

                          @mickym

                          wenn ich nach dem unmount wieder mounten will, kommt

                          mount: /etc/fstab: parse error at line 1 -- ignored
                          mount error(16): Device or resource busy
                          Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
                          

                          so sieht meine fstab aus:

                          .proc            /proc           proc    defaults          0       0..
                          PARTUUID=9141be32-01  /boot           vfat    defaults,flush    0       2
                          PARTUUID=9141be32-02  /               ext4    defaults,noatime  0       1
                          //192.168.1.99/Test /home/iobroker/windows cifs vers=3.0,rw,auto,nofail,users,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentia>
                          
                          # a swapfile is not a swap partition, no line here
                          #   use  dphys-swapfile swap[on|off]  for that
                          
                          

                          vg

                          1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active last edited by mickym

                            Also das Problem ist, dass wenn das automatisch gemountet wird, dann ist root der owner und nicht der iobroker.

                            Im Moment geht es wahrscheinlich so - wie man das mit dem automatischen Einbinden geht weiss ich noch nicht.

                            Ausserdem ist Dir ein Punkt in die 1. Zeile gerutscht deswegen bekommt du diese Fehlermeldung.

                            Mach mal das nofail raus und auto in noauto. Dann mounten wir das erst mal manuell.

                            proc            /proc           proc    defaults          0       0..
                            PARTUUID=9141be32-01  /boot           vfat    defaults,flush    0       2
                            PARTUUID=9141be32-02  /               ext4    defaults,noatime  0       1
                            //192.168.1.99/Test /home/iobroker/windows cifs vers=3.0,rw,noauto,users,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentia>
                             
                            # a swapfile is not a swap partition, no line here
                            #   use  dphys-swapfile swap[on|off]  for that
                            

                            Ich habe das auch mal automatisch gemountet - und dann ist der user leider root und das ist das Problem - kann man den mount Befehl auch in ein LogonScript machen.

                            Erst mal manuell schauen - ob das tut.

                            Ich hab schon eine Idee - mit dem auto mount - teste aber noch. 😉

                            Z Thomas Braun 2 Replies Last reply Reply Quote 0
                            • Z
                              zariomahn @mickym last edited by

                              @mickym

                              So, bekomme zwar bei mounten immer noch diese Fehermeldung 😞 muss mal sehen ob da nicht noch etwas los ist.

                              Jetzt kann auch mit touch test.text die Datei erstellen, die dann auch im windows auftaucht.

                              Ach unter Red Node funktioniert es jetzt....

                              Damit kann ich mal arbeten, d.h. wenn ich neu boote muss ich das Laufwerk mounten, richtig ?

                              vg

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @zariomahn last edited by

                                @zariomahn Diese Fehlermelung kommt - weil Du einen Punkt in der 1. Zeile hast - den hast Du wohl unabsichtlich da rein gemacht.

                                Im Moment musst du manuell mounten - aber ich probiere gerade den automatischen Boot aus. Ergebnis in Kürze. 😉

                                Z 1 Reply Last reply Reply Quote 0
                                • Z
                                  zariomahn @mickym last edited by

                                  @mickym

                                  Hallo, vielen vielen Dank schon mal.... im Voraus.

                                  Hab nochmal in die fstab angesehen, habe den Punkt eigentlich entfernt ?!

                                  proc            /proc           proc    defaults          0       0..
                                  PARTUUID=9141be32-01  /boot           vfat    defaults,flush    0       2
                                  PARTUUID=9141be32-02  /               ext4    defaults,noatime  0       1
                                  //192.168.1.99/bpq32 /home/iobroker/windows cifs vers=3.0,rw,noauto,users,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentials 0 0
                                  
                                  # a swapfile is not a swap partition, no line here
                                  #   use  dphys-swapfile swap[on|off]  for that
                                  
                                  

                                  vg

                                  mario

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @zariomahn last edited by mickym

                                    @zariomahn So ich habe die ultimative Lösung - aber das mit Deiner Fehlermeldung ist komisch, OK - wenn busy ist OK - aber darf kein Syntaxfehler kommen.

                                    und hinten die beiden Punkte müssen auch raus.

                                    proc            /proc           proc    defaults          0       0
                                    

                                    mehr darf da nicht stehn.

                                    Wenn das sauber ist - dann komme ich zu meiner ultimativen Lösung. 😉 Bei mir getestet. 😉

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active last edited by mickym

                                      So gerade nochmal getestet - funktioniert - auch wenn der Windowsrechner zur Bootzeit nicht online ist. 🙂 - Melde Dich einfach, wenn Du soweit bist.

                                      1 Reply Last reply Reply Quote 0
                                      • Thomas Braun
                                        Thomas Braun Most Active @mickym last edited by

                                        @mickym sagte in Datei auf Win PC schreiben:

                                        Ich habe das auch mal automatisch gemountet - und dann ist der user leider root und das ist das Problem - kann man den mount Befehl auch in ein LogonScript machen.

                                        Man kann bei cifs auch die Optionen uid/gid setzen, dann gehören die Dateien dem entsprechenden user.
                                        Näheres hier:

                                        https://wiki.ubuntuusers.de/mount.cifs/

                                        mickym 1 Reply Last reply Reply Quote 1
                                        • mickym
                                          mickym Most Active @Thomas Braun last edited by mickym

                                          @thomas-braun Ja das wollte ich ihm gerade erklären - so habe ich es auch gemacht und nun den automounter verwendet - das geht super.

                                          Ich warte nur bis er sich meldet - damit er die uid und gid ermittelt. 😉

                                          Mir ist das nun auch zu blöd zu warten:

                                          @zariomahn

                                          mach mal statt dem noauto in der Zeile:

                                          x-systemd.automount,x-systemd.mount-timeout=30,_netdev
                                          

                                          und dann nach dem users, noch

                                          uid=100x,gid=100x
                                          

                                          mit der x halt was der iobroker user für ID s hat.

                                          rausbekommen tust das mit

                                          id iobroker
                                          

                                          viel Glück.

                                          Z 1 Reply Last reply Reply Quote 1
                                          • Z
                                            zariomahn @mickym last edited by zariomahn

                                            @mickym

                                            Hallo,

                                            Sorry, hatte noch einen Notfall und musst weg....

                                            erst mal wieder vielen dank für die Hilfe, habe nun folgendes eingetragen, und wollte nur fragen ob das so passt bevor ich feuer frei gebe 🙂

                                            proc            /proc           proc    defaults          0       0
                                            PARTUUID=9141be32-01  /boot           vfat    defaults,flush    0       2
                                            PARTUUID=9141be32-02  /               ext4    defaults,noatime  0       1
                                            //192.168.1.99/bpq32 /home/iobroker/windows cifs vers=3.0,rw,x-systemd.automount,x-systemd.mount-timeout=30,_netdev,users,uid=1001,gid=1001,file_mode=0664,dir_mode=0775,credentials=/home/iobroker/.smbcredentials 0 0
                                            
                                            # a swapfile is not a swap partition, no line here
                                            #   use  dphys-swapfile swap[on|off]  for that
                                            
                                            vg 
                                            
                                            Mario
                                            
                                            mickym 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            929
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            24
                                            809
                                            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