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.
    • 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
                                          • mickym
                                            mickym Most Active @zariomahn last edited by

                                            @zariomahn Ja schaut gut - aus wenn 1001 die uid bzw. gid Deines users iobroker ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            955
                                            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