NEWS
[gelöst ] Permission denied-Fehler (GoodWe-Script)
-
Hallo. Ich habe einen GoodWe-Adapter (https://213.136.68.177/topic/34626/goodwe-wechselrichter-und-iobroker) installliert und bekomme u.s. Fehler (Permission denied) und schaffe es nicht, die Ursache zu finden.
Ich denke es hat nichts mit dem Adapter, sondern vielmehr mit der Konfigurtation meines Debian 12/ioBrokers zu tun.
=====================================================
script.js.common.GoodWe: Fehler Python: python3: can't open file '/home/admin/pygoodwe-main/allinone.py': [Errno 13] Permission denied=====================================================
Das Script allinone.py läuft im Terminal einwandfrei und zeigt die abgeholten Werte an. Nur innerhalb von ioBroker läuft das Script nicht.
=====================================================
const exec = require('child_process').exec;exec('/usr/bin/python3 /home/admin/pygoodwe-main/allinone.py', function(error, stdout, stderr) {
if (error) {
console.log('Fehler Python: ' + stderr);
return;
}
if (stdout) {
let arr = stdout.split('\n');
setState('Datenpunkte.0.PV-Anlage.PV-Power', arr[0], true);
setState('Datenpunkte.0.PV-Anlage.PV_Batterie_Status', arr[1], true);
setState('Datenpunkte.0.PV-Anlage.PV_Batterie_Ladung', arr[2], true);
setState('Datenpunkte.0.PV-Anlage.PV_Haus_Last', arr[3], true);
setState('Datenpunkte.0.PV-Anlage.PV_Strom_zu_Stadtwerken', arr[4], true);
setState('Datenpunkte.0.PV-Anlage.PV_Strom_Heute', arr[5], true);
setState('Datenpunkte.0.PV-Anlage.PV_Strom_Gesamt', arr[6], true);
}
});Ich habe bereits folgendes probiert:
=====================================================
sudo chmod +x /home/admin/pygoodwe-main/allinone.py
sudo chmod 755 /home/admin/pygoodwe-main
sudo chown -R admin:admin /home/admin/pygoodwe-mainUnter Instanzen habe ich dem Modul Javascript die <exec>-Rechte gewährt.
Wer hat noch eine zielführende Idee?
Vielen herzlichen Dank!
MrF -
@mr-flexible Der Nutzer iobroker braucht die entsprechenden Rechte - da der iobroker mit diesem Benutzer läuft.
Testen kannst Du das auf der Kommandozeile, in dem Du Dich mit iobroker-Rechten bewegst.
Also:
pi@mwhome:~ $ sudo -su iobroker iobroker@mwhome:/home/pi $ whoami iobroker iobroker@mwhome:/home/pi $
-
Leg das Skript entweder in den $PATH oder dem iobroker in dessen home.
Jeweils entsprechende Rechte/Eigentümer der Datei natürlich vorausgesetzt. -
@mickym Ich habe so viel Ahnung von Linux wie vom Rakenbau.. Aber ich habe mich durchgeschlagen und dem Benutzer iobroker die Rechte auf das Verzeichnis gegeben, wo derzeit das Script liegt. Und jetzt funktioniert es, daher ganz grosses Dankeschön!
-
@thomas-braun Danke sehr! Für die endgültige Installation werde ich es so machen.
-
@mr-flexible sagte in [gelöst ] Permission denied-Fehler (GoodWe-Script):
Aber ich habe mich durchgeschlagen und dem Benutzer iobroker die Rechte auf das Verzeichnis gegeben
Das macht man nicht so. Raketenbau hin oder her...
-
@thomas-braun Also besser verschiebe ich das Script bzw. das ganze Verzeichnis, in dem das Script lieget (pygoodwe-main) in das Home des Users iobroker? Das kann ich vermutlich nur mit dem root-Benutzer, oder?
-
@mr-flexible sagte in [gelöst ] Permission denied-Fehler (GoodWe-Script):
Das kann ich vermutlich nur mit dem root-Benutzer, oder?
Mit einem User, der entsprechende Rechte besitzt.
Geht auch mit dem iobroker.sudo -u iobroker mv quelle ziel
-
@thomas-braun Danke sehr!