NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg ich mich auch :face_with_rolling_eyes: aber ich habe die Dateien ohne root - Rechte nicht in das home Verzeichnis verschieben können. Egal wie - es ging nur unter root. Das war eigentlich auch DER Grund, warum überhaupt der root Zugang eingerichtet wurde. Egal jetzt...
@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg ich mich auch :face_with_rolling_eyes: aber ich habe die Dateien ohne root - Rechte nicht in das home Verzeichnis verschieben können. Egal wie - es ging nur unter root. Das war eigentlich auch DER Grund, warum überhaupt der root Zugang eingerichtet wurde. Egal jetzt...
Weil du als User "pi" nicht im Home-Verzeichnis des Users "iobroker" schreiben darfst. Kopiere alles am besten ins Home von pi, bzw. in ein Unterverzeichnis, dann hast du die Probleme auch nicht mehr.
-
@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg ich mich auch :face_with_rolling_eyes: aber ich habe die Dateien ohne root - Rechte nicht in das home Verzeichnis verschieben können. Egal wie - es ging nur unter root. Das war eigentlich auch DER Grund, warum überhaupt der root Zugang eingerichtet wurde. Egal jetzt...
Weil du als User "pi" nicht im Home-Verzeichnis des Users "iobroker" schreiben darfst. Kopiere alles am besten ins Home von pi, bzw. in ein Unterverzeichnis, dann hast du die Probleme auch nicht mehr.
pi@raspberrypi:/home/iobroker $ ls -al wetterstation* -rw-r--r-- 1 pi pi 5895 Jan 3 22:12 wetterstation.conf -rwxr-xr-x 1 pi pi 15932 Jan 3 21:25 wetterstation.sh -rw-r--r-- 1 pi pi 66047 Jan 3 21:25 wetterstation.subDas Kopieren erledige ich gleich
-
pi@raspberrypi:/home/iobroker $ ls -al wetterstation* -rw-r--r-- 1 pi pi 5895 Jan 3 22:12 wetterstation.conf -rwxr-xr-x 1 pi pi 15932 Jan 3 21:25 wetterstation.sh -rw-r--r-- 1 pi pi 66047 Jan 3 21:25 wetterstation.subDas Kopieren erledige ich gleich
@gezi70 Dann musst du aber noch den Service stoppen und das Startfile bearbeiten (dann sogar mit sudo ;) )
systemctl stop wetterstation
sudo nano /etc/systemd/system/wetterstation.service
(dort den Pfad anpassen)ExecStart=/home/sborg/script/wetterstation.shsystemctl start wetterstation -
@gezi70 Dann musst du aber noch den Service stoppen und das Startfile bearbeiten (dann sogar mit sudo ;) )
systemctl stop wetterstation
sudo nano /etc/systemd/system/wetterstation.service
(dort den Pfad anpassen)ExecStart=/home/sborg/script/wetterstation.shsystemctl start wetterstation -
pi@raspberrypi:/home/iobroker $ ls -al wetterstation* -rw-r--r-- 1 pi pi 5895 Jan 3 22:12 wetterstation.conf -rwxr-xr-x 1 pi pi 15932 Jan 3 21:25 wetterstation.sh -rw-r--r-- 1 pi pi 66047 Jan 3 21:25 wetterstation.subDas Kopieren erledige ich gleich
Ich würde vorschlagen:
cd ~ mkdir wetterstation mv /home/iobroker/wetterstation* /home/pi/wetterstation -
Ich würde vorschlagen:
cd ~ mkdir wetterstation mv /home/iobroker/wetterstation* /home/pi/wetterstation@thomas-braun Ich habe ein völlig neues Verzeichnis angelegt und neue Dateien eingefügt...
-
@SBorg zum Thema 'root': Bei mir sind alle Dateien 'pi:pi'. Ich hab seit gestern auf dem Raspberry das Log mitlaufen. Die Dateien, die das Script jetzt schreibt sind 'root:root'. Ist das so richtig (? @Thomas-Braun)?
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die Dateien, die das Script jetzt schreibt sind 'root:root'. Ist das so richtig
Vermutlich nicht. Das skript darf nur Rechte im Kontext des users schreiben der es aufruft. Das kommt noch von dem falschen Besitzer des files.
-
@thomas-braun Ich habe ein völlig neues Verzeichnis angelegt und neue Dateien eingefügt...
@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich habe ein völlig neues Verzeichnis angelegt und neue Dateien eingefügt...
Hört sich schwer nach Desktop-Betrieb an...
-
@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich habe ein völlig neues Verzeichnis angelegt und neue Dateien eingefügt...
Hört sich schwer nach Desktop-Betrieb an...
pi@raspberrypi:~ $ mv /home/iobroker/wetterstation* /home/pi/wetterstation mv: das Verschieben von '/home/iobroker/wetterstation.conf' nach '/home/pi/wetterstation/wetterstation.conf' ist nicht möglich: Keine Berechtigung mv: das Verschieben von '/home/iobroker/wetterstation.sh' nach '/home/pi/wetterstation/wetterstation.sh' ist nicht möglich: Keine Berechtigung mv: das Verschieben von '/home/iobroker/wetterstation.sub' nach '/home/pi/wetterstation/wetterstation.sub' ist nicht möglich: Keine Berechtigung -
@Thomas-Braun Kann ich gerade nicht so nachvollziehen.
pi@raspberrypi:~/weather $ ls -la total 136 drwxr-xr-x 3 pi pi 4096 Jan 4 00:00 . drwxr-xr-x 4 pi pi 4096 Jan 2 10:37 .. -rw-r--r-- 1 root root 9377 Jan 3 23:59 20220103_station.log -rw-r--r-- 1 root root 1594 Jan 4 14:38 20220104_station.log drwxr-xr-x 2 pi pi 4096 Jan 3 15:25 Version:2.10.1 -rw-r--r-- 1 pi pi 6075 Jan 3 15:43 wetterstation.conf -rwxr--r-- 1 pi pi 15867 Jan 3 15:03 wetterstation.sh -rw-r--r-- 1 pi pi 65396 Jan 3 15:45 wetterstation.sub -rwxr--r-- 1 pi pi 16659 Jan 3 15:05 ws_updater.shDas Script läuft doch als pi.
-
pi@raspberrypi:~ $ mv /home/iobroker/wetterstation* /home/pi/wetterstation mv: das Verschieben von '/home/iobroker/wetterstation.conf' nach '/home/pi/wetterstation/wetterstation.conf' ist nicht möglich: Keine Berechtigung mv: das Verschieben von '/home/iobroker/wetterstation.sh' nach '/home/pi/wetterstation/wetterstation.sh' ist nicht möglich: Keine Berechtigung mv: das Verschieben von '/home/iobroker/wetterstation.sub' nach '/home/pi/wetterstation/wetterstation.sub' ist nicht möglich: Keine Berechtigung@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
/home/pi/wetterstation
ls -la /home/pi/wetterstation -
@gezi70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
/home/pi/wetterstation
ls -la /home/pi/wetterstation@thomas-braun läuft jetzt, danke
-
@Thomas-Braun Kann ich gerade nicht so nachvollziehen.
pi@raspberrypi:~/weather $ ls -la total 136 drwxr-xr-x 3 pi pi 4096 Jan 4 00:00 . drwxr-xr-x 4 pi pi 4096 Jan 2 10:37 .. -rw-r--r-- 1 root root 9377 Jan 3 23:59 20220103_station.log -rw-r--r-- 1 root root 1594 Jan 4 14:38 20220104_station.log drwxr-xr-x 2 pi pi 4096 Jan 3 15:25 Version:2.10.1 -rw-r--r-- 1 pi pi 6075 Jan 3 15:43 wetterstation.conf -rwxr--r-- 1 pi pi 15867 Jan 3 15:03 wetterstation.sh -rw-r--r-- 1 pi pi 65396 Jan 3 15:45 wetterstation.sub -rwxr--r-- 1 pi pi 16659 Jan 3 15:05 ws_updater.shDas Script läuft doch als pi.
-
@thomas-braun Ich habs gerade gesehen. Im HTOP wird das Script als root ausgeführt - das erklärt die Ablage der neuen Files als root. Dann muss bei der Erstellung des systemd was falsch sein - nur was?
Irgendwo muss ein Knoten sein. Starte ich das Script von Hand läuft es als pi - beim Schreiben des Logfiles gibt es dann 'Permission denied'. -
@thomas-braun Ich habs gerade gesehen. Im HTOP wird das Script als root ausgeführt - das erklärt die Ablage der neuen Files als root. Dann muss bei der Erstellung des systemd was falsch sein - nur was?
Irgendwo muss ein Knoten sein. Starte ich das Script von Hand läuft es als pi - beim Schreiben des Logfiles gibt es dann 'Permission denied'.@rene55 That's my fault :(
Geändert habe ich es schon lange, aber irgendwie vergessen zu kommunizieren. Der systemd lädt beim booten den Service per default unter "root".
Deswegen habe ich im ws_updater den Service so anlegen lassen:[Unit] Description=Service für ioBroker Wetterstation [Service] User=$(whoami) Group=$(whoami) ExecStart=${DIR}/wetterstation.sh [Install] WantedBy=multi-user.targetwhoami ("wer_bin_ich") wird dabei durch den aktuell angemeldeten Usernamen ersetzt.
Muss ich wohl hier einen Mini-Patch bereitstellen der es patcht, oder ihr (betrifft alle, außer diejenigen die den Service mittels ws_updater anlegen ließen) editiert es selbst hinein:sudo nano /etc/systemd/system/wetterstation.service
Dann unter "Service" die beiden ZeilenUser= Group=ergänzen und mit eurem Loginnamen befüllen und speichern.
Service restarten:systemctl restart wetterstationDann läuft es im User-Kontext.
Eben noch geändert: siehe WiKi (fast ganz unten) -
@rene55 That's my fault :(
Geändert habe ich es schon lange, aber irgendwie vergessen zu kommunizieren. Der systemd lädt beim booten den Service per default unter "root".
Deswegen habe ich im ws_updater den Service so anlegen lassen:[Unit] Description=Service für ioBroker Wetterstation [Service] User=$(whoami) Group=$(whoami) ExecStart=${DIR}/wetterstation.sh [Install] WantedBy=multi-user.targetwhoami ("wer_bin_ich") wird dabei durch den aktuell angemeldeten Usernamen ersetzt.
Muss ich wohl hier einen Mini-Patch bereitstellen der es patcht, oder ihr (betrifft alle, außer diejenigen die den Service mittels ws_updater anlegen ließen) editiert es selbst hinein:sudo nano /etc/systemd/system/wetterstation.service
Dann unter "Service" die beiden ZeilenUser= Group=ergänzen und mit eurem Loginnamen befüllen und speichern.
Service restarten:systemctl restart wetterstationDann läuft es im User-Kontext.
Eben noch geändert: siehe WiKi (fast ganz unten) -
Mit was für ein Editor öffne ich das ?
Das war´s auch schon mit der Konfiguration des Skriptes. Anlegen der Datenobjekte im ioBroker: Wir öffnen wetterstation.js aus dem Paket mit einem Texteditor, kopieren uns den gesamten Inhalt in die Zwischenablage und wechseln zum ioBroker. Dort wählen wir "Skripte" und legen per Klick auf das "+" ein neues Javascript vom Typ "Javascript" an. Speicherort (unter common) und Bezeichnung sind frei wählbar. In dieses leere Skript fügen wir nun den Inhalt der Zwischenablage ein. Falls eine andere Instanz des Javascript-Adapters oder eine andere Datenobjektstruktur benutzt wird, muss noch let DP="javascript.0.Wetterstation." angepasst (identische Einstellung wie in der wetterstation.conf unter PRE_DP) werden. Beachtet unbedingt den Punkt hinter "Wetterstation"! Falls das Gateway und/oder Zusatzsensoren (DP40/50/60/70/100/200/250/300 bzw. deren WHxxx-Derivate) benutzt werden muss deren Anzahl nun noch eingetragen werden. -
nano
ist vermutlich der einfachste Editor auf Kommandozeile. -
nano
ist vermutlich der einfachste Editor auf Kommandozeile.@thomas-braun sagte in [Linux Shell-Skript] WLAN-Wetterstation:
nano
ist vermutlich der einfachste Editor auf Kommandozeile.Dann müsstw ich die Skriptdatei (wetterstation.js)auch in den Ordner verschieben?