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 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
                                        • Z
                                          zariomahn @mickym last edited by

                                          @mickym

                                          Hi,

                                          so, reboot, getestet und funktioniert !!!!!!!!

                                          Vielen vielen Dank, Du bist der beste, 👍 ohne dich hätte ich Tage daran gesessen.

                                          Sehr cool, jetzt kann ich meine Wetter Skripte exportieren und weiter verarbeiten.

                                          Viele Grüße

                                          Mario

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

                                            @zariomahn Freut mich - na mit bissi Lesen hättest Du es auch geschafft - ich musste mir das Wissen ja auch zusammen klauben. 😉

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            500
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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