Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Skripten / Logik
  4. Blockly
  5. Mit exec in Dateisystem schreiben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Mit exec in Dateisystem schreiben

Geplant Angeheftet Gesperrt Verschoben Blockly
27 Beiträge 4 Kommentatoren 95 Aufrufe 4 Watching
  • Ä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.
  • M MCU

    @David-G. Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.

    David G.D Online
    David G.D Online
    David G.
    schrieb zuletzt editiert von David G.
    #15

    Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.

    @MCU sagte in Mit exec in Dateisystem schreiben:

    Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.

    Inhalt von echo entfernt

    cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx
    

    @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

    Und weasyprint ist da auch nicht 'ordentlich' installiert.
    Gibt es über das Debian-Repo.

    Wie werde ich das aktuelle Los? Dann installier ich es noch sauber

    @MCU sagte in Mit exec in Dateisystem schreiben:

    Was sagt denn

    Copy to Clipboard
    grep -n '^iobroker:' /etc/passwd

    Last login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
    iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
    25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
    iobroker@iobroker:~$

    Zeigt eure Lovelace-Visualisierung klick
    (Auch ideal um sich Anregungen zu holen)

    Meine Tabellen für eure Visualisierung klick

    M Thomas BraunT 2 Antworten Letzte Antwort
    0
    • David G.D David G.

      Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.

      @MCU sagte in Mit exec in Dateisystem schreiben:

      Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.

      Inhalt von echo entfernt

      cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx
      

      @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

      Und weasyprint ist da auch nicht 'ordentlich' installiert.
      Gibt es über das Debian-Repo.

      Wie werde ich das aktuelle Los? Dann installier ich es noch sauber

      @MCU sagte in Mit exec in Dateisystem schreiben:

      Was sagt denn

      Copy to Clipboard
      grep -n '^iobroker:' /etc/passwd

      Last login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
      iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
      25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
      iobroker@iobroker:~$

      M Online
      M Online
      MCU
      schrieb zuletzt editiert von
      #16

      @David-G. Versuch mal diesen Befehl mit exec.

      runuser -u iobroker -- bash -lc "cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && /usr/local/bin/weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && /usr/local/bin/weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && /usr/local/bin/weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx"
      

      Die Dateien müssen dann unter Dateien/Files im Browser unter 0_userdata.0 oder Benutzerdateien im Ordner abc/xyz sichtbar sein.

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      1 Antwort Letzte Antwort
      0
      • MartinPM Online
        MartinPM Online
        MartinP
        schrieb zuletzt editiert von MartinP
        #17

        Wenn man Linux-Systemfunktionen ("exec") zum Schreiben von Dateien nutzt, sollte man ÜBERHAUPT NICHT in den Verzeichnisbaum von iobroker schreiben ... außer man ruft per exec z. B.

        iob file write ....
        

        auf ...

        Die Datei in einem Verzeichnis außerhalb der Überwachung von iobroker erzeugen, und danach mit iob file write in ein iobroker Verzeichnis zu transferieren ist aber erlaubt ...

        iobroker führt eine Datenbank über die Dateien im eigenen Verzeichnisbaum, und wenn man in diesen Verzeichnisbaum "unter dem Radar" Dateien hinenschiebt, sorgt das nur für Ärger (z. B. dass sie nicht "im Backup landen")....

        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

        David G.D 1 Antwort Letzte Antwort
        1
        • David G.D David G.

          Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.

          @MCU sagte in Mit exec in Dateisystem schreiben:

          Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.

          Inhalt von echo entfernt

          cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx
          

          @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

          Und weasyprint ist da auch nicht 'ordentlich' installiert.
          Gibt es über das Debian-Repo.

          Wie werde ich das aktuelle Los? Dann installier ich es noch sauber

          @MCU sagte in Mit exec in Dateisystem schreiben:

          Was sagt denn

          Copy to Clipboard
          grep -n '^iobroker:' /etc/passwd

          Last login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
          iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
          25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
          iobroker@iobroker:~$

          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          schrieb zuletzt editiert von
          #18

          @David-G. sagte in Mit exec in Dateisystem schreiben:

          Wie werde ich das aktuelle Los?

          Wie hast du es denn hingezirkelt?

          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
          • MartinPM MartinP

            Wenn man Linux-Systemfunktionen ("exec") zum Schreiben von Dateien nutzt, sollte man ÜBERHAUPT NICHT in den Verzeichnisbaum von iobroker schreiben ... außer man ruft per exec z. B.

            iob file write ....
            

            auf ...

            Die Datei in einem Verzeichnis außerhalb der Überwachung von iobroker erzeugen, und danach mit iob file write in ein iobroker Verzeichnis zu transferieren ist aber erlaubt ...

            iobroker führt eine Datenbank über die Dateien im eigenen Verzeichnisbaum, und wenn man in diesen Verzeichnisbaum "unter dem Radar" Dateien hinenschiebt, sorgt das nur für Ärger (z. B. dass sie nicht "im Backup landen")....

            David G.D Online
            David G.D Online
            David G.
            schrieb zuletzt editiert von David G.
            #19

            @MartinP sagte in Mit exec in Dateisystem schreiben:

            iobroker führt eine Datenbank über die Dateien im.....

            Sowas hatte ich auch in Erinnerung. Deshalb hab ich oben gemeint, dass am iob vorbei geschrieben.

            @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

            Wie hast du es denn hingezirkelt?

            Ja wenn ich das mal wüsste.
            Das ist ein System aus der Zeit wo ich mit iob angefangen hab und alles Stumpf nach irgendwelchen Anleitungen gemacht hab.

            @mcu
            Hast du die Dateien in deinen Backup auch einfach per Script, Dateiexplorer etc in den Ordner geschoben?

            Edit

            echo "<html><body><h1>Test</h1></body></html>" | weasyprint - /dev/shm/temp.pdf && iobroker file write /dev/shm/temp.pdf 0_userdata.0/FGB/test.pdf && rm /dev/shm/temp.pdf
            

            Scheint gut zu klappen.

            Zeigt eure Lovelace-Visualisierung klick
            (Auch ideal um sich Anregungen zu holen)

            Meine Tabellen für eure Visualisierung klick

            Thomas BraunT M 2 Antworten Letzte Antwort
            0
            • David G.D David G.

              @MartinP sagte in Mit exec in Dateisystem schreiben:

              iobroker führt eine Datenbank über die Dateien im.....

              Sowas hatte ich auch in Erinnerung. Deshalb hab ich oben gemeint, dass am iob vorbei geschrieben.

              @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

              Wie hast du es denn hingezirkelt?

              Ja wenn ich das mal wüsste.
              Das ist ein System aus der Zeit wo ich mit iob angefangen hab und alles Stumpf nach irgendwelchen Anleitungen gemacht hab.

              @mcu
              Hast du die Dateien in deinen Backup auch einfach per Script, Dateiexplorer etc in den Ordner geschoben?

              Edit

              echo "<html><body><h1>Test</h1></body></html>" | weasyprint - /dev/shm/temp.pdf && iobroker file write /dev/shm/temp.pdf 0_userdata.0/FGB/test.pdf && rm /dev/shm/temp.pdf
              

              Scheint gut zu klappen.

              Thomas BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb zuletzt editiert von
              #20

              @David-G.

              Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.

              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

              David G.D 1 Antwort Letzte Antwort
              0
              • Thomas BraunT Thomas Braun

                @David-G.

                Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.

                David G.D Online
                David G.D Online
                David G.
                schrieb zuletzt editiert von David G.
                #21

                @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

                @David-G.

                Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.

                Okay
                Idee wegen dem krummen weasyprint?

                Scheinbar doppelt drauf....

                iobroker@iobroker:~$ which weasyprint
                /usr/local/bin/weasyprint
                iobroker@iobroker:~$ dpkg -l | grep weasyprint
                ii  weasyprint                           62.3-1                               all          Document factory for creating PDF files from HTML
                iobroker@iobroker:~$ pip list | grep -i weasyprint
                weasyprint         62.3
                iobroker@iobroker:~$ pip3 list | grep -i weasyprint
                weasyprint         62.3
                iobroker@iobroker:~$ type weasyprint
                weasyprint ist /usr/local/bin/weasyprint
                iobroker@iobroker:~$
                

                Zeigt eure Lovelace-Visualisierung klick
                (Auch ideal um sich Anregungen zu holen)

                Meine Tabellen für eure Visualisierung klick

                Thomas BraunT 1 Antwort Letzte Antwort
                0
                • David G.D David G.

                  @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

                  @David-G.

                  Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.

                  Okay
                  Idee wegen dem krummen weasyprint?

                  Scheinbar doppelt drauf....

                  iobroker@iobroker:~$ which weasyprint
                  /usr/local/bin/weasyprint
                  iobroker@iobroker:~$ dpkg -l | grep weasyprint
                  ii  weasyprint                           62.3-1                               all          Document factory for creating PDF files from HTML
                  iobroker@iobroker:~$ pip list | grep -i weasyprint
                  weasyprint         62.3
                  iobroker@iobroker:~$ pip3 list | grep -i weasyprint
                  weasyprint         62.3
                  iobroker@iobroker:~$ type weasyprint
                  weasyprint ist /usr/local/bin/weasyprint
                  iobroker@iobroker:~$
                  
                  Thomas BraunT Online
                  Thomas BraunT Online
                  Thomas Braun
                  Most Active
                  schrieb zuletzt editiert von Thomas Braun
                  #22

                  @David-G. sagte in Mit exec in Dateisystem schreiben:

                  /usr/local/bin/weasyprint

                  Dann lösch das aus /usr/local/bin/ einfach raus.

                  Edit: Per pip installiert? Dann auch per pip deinstallieren! Erst danach ggfls. stumpf aus /usr/local/bin löschen!

                  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
                  • David G.D David G.

                    @MartinP sagte in Mit exec in Dateisystem schreiben:

                    iobroker führt eine Datenbank über die Dateien im.....

                    Sowas hatte ich auch in Erinnerung. Deshalb hab ich oben gemeint, dass am iob vorbei geschrieben.

                    @Thomas-Braun sagte in Mit exec in Dateisystem schreiben:

                    Wie hast du es denn hingezirkelt?

                    Ja wenn ich das mal wüsste.
                    Das ist ein System aus der Zeit wo ich mit iob angefangen hab und alles Stumpf nach irgendwelchen Anleitungen gemacht hab.

                    @mcu
                    Hast du die Dateien in deinen Backup auch einfach per Script, Dateiexplorer etc in den Ordner geschoben?

                    Edit

                    echo "<html><body><h1>Test</h1></body></html>" | weasyprint - /dev/shm/temp.pdf && iobroker file write /dev/shm/temp.pdf 0_userdata.0/FGB/test.pdf && rm /dev/shm/temp.pdf
                    

                    Scheint gut zu klappen.

                    M Online
                    M Online
                    MCU
                    schrieb zuletzt editiert von MCU
                    #23

                    @David-G. Ich hab es bei mit Javascript Modul html-pdf gemacht. Kann ein Beipiel später reinstellen.

                    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                    David G.D 1 Antwort Letzte Antwort
                    0
                    • M MCU

                      @David-G. Ich hab es bei mit Javascript Modul html-pdf gemacht. Kann ein Beipiel später reinstellen.

                      David G.D Online
                      David G.D Online
                      David G.
                      schrieb zuletzt editiert von David G.
                      #24

                      @MCU

                      Gerne.
                      WeasyPrint nutze ich schon recht lange für vieles.
                      War damals das einzige wo ich wirklich genau das PDF Format mit Seitenrändern etc festlegen kann und wirklich sehr gut css unterstützt.

                      Falls jemand Interesse hat was ich hier in dem Fall grad mache.

                      Habe mit für meine Visualisierung einen kleinen Dateiexplorer gebaut für einen Ordner. Dort kann ich Dateien hoch und runter laden. Wenn ich eine Excel hochlade wird eine verschachtelte json aus dieser erstellt (ein js überwacht den Ordner auf xls und xlsx).
                      1000061138.jpg

                      Bei den Adressen stehen auch Zahlen, wie viele Exemplare von einem Heft die Persone bekommen. Je nach Anzahl benötigt man einen anderen Briefumschlag.
                      Für jede entsprechende Größe wird dann ein html bzw pdf mit den entsprechenden Adressen erstellt.

                      Die PDFs sind dann auch über den Fileexplorer in der vis erreichbar.

                      Zeigt eure Lovelace-Visualisierung klick
                      (Auch ideal um sich Anregungen zu holen)

                      Meine Tabellen für eure Visualisierung klick

                      M 1 Antwort Letzte Antwort
                      0
                      • David G.D David G.

                        @MCU

                        Gerne.
                        WeasyPrint nutze ich schon recht lange für vieles.
                        War damals das einzige wo ich wirklich genau das PDF Format mit Seitenrändern etc festlegen kann und wirklich sehr gut css unterstützt.

                        Falls jemand Interesse hat was ich hier in dem Fall grad mache.

                        Habe mit für meine Visualisierung einen kleinen Dateiexplorer gebaut für einen Ordner. Dort kann ich Dateien hoch und runter laden. Wenn ich eine Excel hochlade wird eine verschachtelte json aus dieser erstellt (ein js überwacht den Ordner auf xls und xlsx).
                        1000061138.jpg

                        Bei den Adressen stehen auch Zahlen, wie viele Exemplare von einem Heft die Persone bekommen. Je nach Anzahl benötigt man einen anderen Briefumschlag.
                        Für jede entsprechende Größe wird dann ein html bzw pdf mit den entsprechenden Adressen erstellt.

                        Die PDFs sind dann auch über den Fileexplorer in der vis erreichbar.

                        M Online
                        M Online
                        MCU
                        schrieb zuletzt editiert von
                        #25

                        @David-G. Testskript
                        d8d347a8-e47e-4235-80a6-1bf63af01f04-image.png in javascript-Instanz als NPM-Modul angeben

                        const fs = require('fs');
                        // @ts-ignore
                        const pdf = require('html-pdf');
                        
                        // HTML-Inhalt
                        // max Breite 520px
                        
                        let htmlContent = `
                        <!DOCTYPE html>
                        <html>
                        <head>
                          <title>HTML to PDF</title>
                        </head>
                        <body style="margin-left: 10px;">
                            
                            <h4>Hello, world!</h4>
                            <img style="height:100px; width:520px;" src="http://192.168.178.170/download/bilder/ffn.png">
                            
                            <h5>Hallo</h5>
                            <table border="1" style="font-size:10px; width:100%;">
                                <thead>
                                    <tr>
                                        <th style="min-width:170px">Spalte 1</th>
                                        <th style="min-width:170px">Spalte 2</th>
                                        <th style="min-width:170px">Spalte 3</th>
                                    </tr>
                                </thead>
                                <tbody>`
                                    for(let i= 0;i<35;i++){
                            htmlContent+=`       <tr>`
                            htmlContent+=`             <td>Daten `+(i+1)+`,1</td>`
                            htmlContent+=`             <td>Daten `+(i+1)+`,2</td>`
                            htmlContent+=`             <td>Daten `+(i+1)+`,3</td>`
                            htmlContent+=`         </tr>`
                                    }
                                    
                        htmlContent += `</tbody>
                            </table>
                            
                        </body>
                        </html>
                        `;
                        
                        // Optionen für HTML-PDF
                        const options = { format: 'A4' ,border: {"top": "0cm","right": "1cm","bottom": "0cm","left": "1cm"}, 
                                          header: {"height": "15mm", "contents": '<div style="font-size:14px; text-align: center;">Author: TEST</div>'  },
                                          footer:  {"height": "10mm","contents": {default: '<div style="font-size:14px; text-align:center;"><span style="color: blue;">{{page}}</span>/<span>{{pages}}</span></div>'}}}
                         // config -Beschreibung -> https://github.com/marcbachmann/node-html-pdf?tab=readme-ov-file#options
                        
                        // HTML zu PDF umwandeln
                        let filePath = '/opt/iobroker/iobroker-data/files/0_userdata.0/output.pdf'
                        let fileName = 'output.pdf'
                        pdf.create(htmlContent, options).toFile(filePath, function(err, res) {
                          if (err) return console.log(err);
                          console.log(res); // Informationen über das generierte PDF
                            let data = fs.readFileSync(filePath);
                            // Datei hochladen in VIS
                            writeFile("0_userdata.0", "/PDF/"+fileName, data,function (error) {
                                if (error) log(error);
                            });
                        });
                        
                        

                        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                        David G.D 1 Antwort Letzte Antwort
                        0
                        • M MCU

                          @David-G. Testskript
                          d8d347a8-e47e-4235-80a6-1bf63af01f04-image.png in javascript-Instanz als NPM-Modul angeben

                          const fs = require('fs');
                          // @ts-ignore
                          const pdf = require('html-pdf');
                          
                          // HTML-Inhalt
                          // max Breite 520px
                          
                          let htmlContent = `
                          <!DOCTYPE html>
                          <html>
                          <head>
                            <title>HTML to PDF</title>
                          </head>
                          <body style="margin-left: 10px;">
                              
                              <h4>Hello, world!</h4>
                              <img style="height:100px; width:520px;" src="http://192.168.178.170/download/bilder/ffn.png">
                              
                              <h5>Hallo</h5>
                              <table border="1" style="font-size:10px; width:100%;">
                                  <thead>
                                      <tr>
                                          <th style="min-width:170px">Spalte 1</th>
                                          <th style="min-width:170px">Spalte 2</th>
                                          <th style="min-width:170px">Spalte 3</th>
                                      </tr>
                                  </thead>
                                  <tbody>`
                                      for(let i= 0;i<35;i++){
                              htmlContent+=`       <tr>`
                              htmlContent+=`             <td>Daten `+(i+1)+`,1</td>`
                              htmlContent+=`             <td>Daten `+(i+1)+`,2</td>`
                              htmlContent+=`             <td>Daten `+(i+1)+`,3</td>`
                              htmlContent+=`         </tr>`
                                      }
                                      
                          htmlContent += `</tbody>
                              </table>
                              
                          </body>
                          </html>
                          `;
                          
                          // Optionen für HTML-PDF
                          const options = { format: 'A4' ,border: {"top": "0cm","right": "1cm","bottom": "0cm","left": "1cm"}, 
                                            header: {"height": "15mm", "contents": '<div style="font-size:14px; text-align: center;">Author: TEST</div>'  },
                                            footer:  {"height": "10mm","contents": {default: '<div style="font-size:14px; text-align:center;"><span style="color: blue;">{{page}}</span>/<span>{{pages}}</span></div>'}}}
                           // config -Beschreibung -> https://github.com/marcbachmann/node-html-pdf?tab=readme-ov-file#options
                          
                          // HTML zu PDF umwandeln
                          let filePath = '/opt/iobroker/iobroker-data/files/0_userdata.0/output.pdf'
                          let fileName = 'output.pdf'
                          pdf.create(htmlContent, options).toFile(filePath, function(err, res) {
                            if (err) return console.log(err);
                            console.log(res); // Informationen über das generierte PDF
                              let data = fs.readFileSync(filePath);
                              // Datei hochladen in VIS
                              writeFile("0_userdata.0", "/PDF/"+fileName, data,function (error) {
                                  if (error) log(error);
                              });
                          });
                          
                          
                          David G.D Online
                          David G.D Online
                          David G.
                          schrieb zuletzt editiert von
                          #26

                          @MCU

                          Da kann man ja auch wirklich viele Optionen mitgeben.
                          Dort direkt bei html-pdf, ich mache es mit im css im html.

                          Da ich eigentlich nur mit Blockly arbeite, müsste ich mir da eine Funktion bauen 🤣, an die ich einfach das html und die Settings andocken kann.

                          Wobei der aktuelle Weg ja aicu gut läuft.

                          Zeigt eure Lovelace-Visualisierung klick
                          (Auch ideal um sich Anregungen zu holen)

                          Meine Tabellen für eure Visualisierung klick

                          M 1 Antwort Letzte Antwort
                          0
                          • David G.D David G.

                            @MCU

                            Da kann man ja auch wirklich viele Optionen mitgeben.
                            Dort direkt bei html-pdf, ich mache es mit im css im html.

                            Da ich eigentlich nur mit Blockly arbeite, müsste ich mir da eine Funktion bauen 🤣, an die ich einfach das html und die Settings andocken kann.

                            Wobei der aktuelle Weg ja aicu gut läuft.

                            M Online
                            M Online
                            MCU
                            schrieb zuletzt editiert von MCU
                            #27

                            @David-G. Wenn es jetzt läuft dann lass es so.
                            Beschreibe bitte Deinen funktionierenden Weg ganz genau für andere, die es evtl.nutzen wollen. Danke.

                            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            634

                            Online

                            32.6k

                            Benutzer

                            82.3k

                            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