NEWS
Mit exec in Dateisystem schreiben
-
@David-G. Ist das ein javascript Programm,stell es bitte rein,damit ich es nachvollziehen kann.
-
Sehe grad, dass mir der iobroker unter Dateien keine Unterordner anzeigt.
Werden diese evtl nicht unterstützt?Schreibe in
/opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyzDas ist der Script Part

-
@David-G. Teste mal bitte auf dem System
sudo -u iobroker which weasyprint sudo -u iobroker weasyprint --versioniobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
@David-G. sagte in Mit exec in Dateisystem schreiben:
Ist ein recht altes System
Und weasyprint ist da auch nicht 'ordentlich' installiert.
Gibt es über das Debian-Repo. -
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
@David-G. Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.
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/passwdLast 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:~$ -
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/passwdLast 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:~$@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.
-
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")....
-
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/passwdLast 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:~$@David-G. sagte in Mit exec in Dateisystem schreiben:
Wie werde ich das aktuelle Los?
Wie hast du es denn hingezirkelt?
-
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")....
@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.pdfScheint gut zu klappen.
-
@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.pdfScheint gut zu klappen.
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
-
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
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-Braun sagte in Mit exec in Dateisystem schreiben:
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:~$@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!
-
@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.pdfScheint gut zu klappen.
-
@David-G. Ich hab es bei mit Javascript Modul html2pdf gemacht. Kann ein Beipiel später reinstellen.
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).

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.