FHEM Rechteproblem mit Python-Skript

Begonnen von Taobyebye, 11 Juni 2016, 18:41:37

Vorheriges Thema - Nächstes Thema

Taobyebye

Wenn ich dem User fhem nicht diese Root-Rechte gebe, kann ich das Skript nicht über fhem beenden oder es gibt eine andere Lösung die ich nicht kenne.

CoolTux

Mit welchen User Rechten läuft den das Skript

Skript an verfen und dann


ps axu
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Taobyebye

Mit dem ps axu sieht man dass root das python ausführt.
Htop sagt auch aus dass das Skript von Root kommt.

CoolTux

Dann lass das Script doch vom User fhem starten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Taobyebye

Und wie mache ich das?
Wenn ich das Skript von einem anderen User starte (z.B. User Pi) dann stehte da RuntimeError: No access to /dev/mem.  Try running as root!

CoolTux

Ohne das Skript zu kennen kann man hier nichts weiter sagen. Frage wäre wo zu /dev/mem als root.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Taobyebye

Das Skript:
#!/usr/bin/python
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#|R|a|s|p|b|e|r|r|y|P|i|-|S|p|y|.|c|o|.|u|k|
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#
# skript.py
# Detect movement using a PIR module
#
# Author : Matt Hawkins
# Date   : 21/01/2013

# Import required Python libraries


import RPi.GPIO as GPIO
import time
import subprocess

# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

# Define GPIO to use on Pi
GPIO_PIR = 7

print "PIR Module Test (CTRL-C to exit)"

# Set pin as input
GPIO.setup(GPIO_PIR,GPIO.IN)      # Echo

Current_State  = 0
Previous_State = 0

try:

  print "Waiting for PIR to settle ..."

  # Loop until PIR output is 0
  while GPIO.input(GPIO_PIR)==1:
    Current_State  = 0

  print "  Ready"

  # Loop until users quits with CTRL-C
  while True :

    # Read PIR state
    Current_State = GPIO.input(GPIO_PIR)

    if Current_State==1 and Previous_State==0:
      # PIR is triggered
      print "  Motion detected!"
      subprocess.call(['/home/user1/skript2.sh'])

      # Record previous state
      Previous_State=1
    elif Current_State==0 and Previous_State==1:
      # PIR has returned to ready state
      print "  Ready"
      Previous_State=0
# Wait for 10 milliseconds
    time.sleep(0.01)

except KeyboardInterrupt:
  print "  Quit"
  # Reset GPIO settings
  GPIO.cleanup()

Taobyebye

Jetzt ist das Skript drin und keiner antwortet mehr?