FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gestein am 13 August 2019, 22:08:29

Titel: fhem: Rechte für Scripte
Beitrag von: gestein am 13 August 2019, 22:08:29
Hallo,

seit ich mit meinem fhem auf eine Neuinstallation unter Buster umgezogen bin, kann mein fhem keine scripte mehr aufrufen.
Es kommt folgende Fehlermeldung:
Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben


Dass das mit der sudoers zu tun hat, weiß ich.
Aber was muss ich dort eintragen, damit fhem die scripte richtig aufrufen kann?

Momentan habe ich folgendes mittels "sudo visudo" eingetragen:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem ALL=(ALL) NOPASSWD:/usr/sbin/service
fhem ALL=(ALL) NOPASSWD:/sbin/shutdown
fhem ALL=(ALL) NOPASSWD:/usr/bin/hcitool
fhem ALL=(ALL) NOPASSWD:/opt/fhem/presence.sh
fhem ALL=(ALL) NOPASSWD:/opt/fhem/presenceBT.sh


# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d


Wenn ich das script händisch aufrufen, klappt es natürlich.
Und in der alten Installation unter Jessie hatte es mit den beiden ersten "fhem"-Zeilen geklappt. Kann das sein?
Die letzten 3 "fhem"-Zeilen habe ich dazu gefügt, bringt aber leider keine Abhilfe.

Könnte mir bitte jemand helfen?

Danke im Voraus
lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 13 August 2019, 22:30:25
Hallo Gerhard,

meines Wissens muss ein Leerzeichen sein
NOPASSWD:/usr....
NOPASSWD: /usr....

Aber:
Ich empfehle Dir die sudoers Datei so zu lassen wie sie ist. Mach es lieber über eine include Datei!

Ich habe das hier mal notiert: https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html

Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: amenomade am 13 August 2019, 23:06:04
Wenn fhem Mitglied der Gruppe sudo ist (was wahrscheinlich der Fall ist), hat die Zeile
%sudo   ALL=(ALL:ALL) ALL
Vorrang auf deinen fhem Zeilen, sprich... fhem, als Mitglied der Gruppe sudo darf alles "sudo-en", aber ein Passwort wird gefragt. Da fhem kein Terminal hat, bringt es dann diese Fehlermeldung

Lösung in dem Fall: deine fhem Zeilen am Ende... oder die include Lösung wie Otto geschrieben hat
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 13 August 2019, 23:11:59
Bezüglich der Scripte wäre da auch noch hier https://wiki.ubuntuusers.de/sudo/Konfiguration/ der 2. rote Kasten zu beachten!!!
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 00:53:12
Danke für die Hinweise.

Habe das alles mal befolgt und auch die Einträge in die include ausgelagert.
Irgendwie hilft das aber alles nix.
Es kommen trotzdem die Einträge:
Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben


Welche Programme muss ich in die Liste beim sudoers aufnehmen, damit man auch bluetooth zugreifen kann.
Ich habe nun schon das hcitool und das Script angeführt.
Gehört auch bash dazu?

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: amenomade am 14 August 2019, 01:11:09
Was sagt sudo visudo -c?
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 01:31:35
das sagt:
pi@fhem2:~ $ sudo visudo -c
/etc/sudoers: Analyse OK
/etc/sudoers.d/010_at-export: Analyse OK
/etc/sudoers.d/010_pi-nopasswd: Analyse OK
/etc/sudoers.d/011_fhem-nopasswd: Analyse OK
/etc/sudoers.d/README: Analyse OK


Und im "/etc/sudoers.d/011_fhem-nopasswd" steht:
fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt, /usr/bin/hcitool, /opt/fhem/presence.sh, /opt/fhem/presenceBT.sh
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/cpanm *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/perl - App\:\:cpanminus


lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: amenomade am 14 August 2019, 01:45:10
Funktioniert es mit "sudo -S <script>"?
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 14 August 2019, 07:26:10
Moin,

ist fhem Mitglied der Gruppe sudo?
Wenn ja, wäre das ein grober Fehler.

Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 13:18:37
Da kann ich erst heute Abend wieder ran.

Wie prüfe ich denn, ob fhem Mitglied von %sudo ist?
Stimmt das mit "id fhem"?

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 14 August 2019, 13:22:32
Hi,
ich würde groups fhem machen.

Grüße Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 19:59:54
Hallo,

groups fhem ergibt:
pi@fhem2:~ $ groups fhem
fhem : dialout audio


Und der Aufruf mit "sudo -S /opt/fhem/presenceBT.sh" funktioniert.

ein "ls -l presenceBT.sh" zeigt:
-rwxr-xr-x  1 fhem dialout    522 Aug 14 16:51 presenceBT.sh


In der Datei "/opt/fhem/presenceBT.sh" steht folgendes (ist vom presence.sh kopiert):
#!/bin/bash
# detect Iphone/Android by BT MAC address.
# returns 1 if detected or 0

# exit immediately if no parameters supplied
if [ $# -lt 1 ]
  then
    echo "UNDEF"
  exit 1
fi

# Set variables
MAC=$1

PRECHECK=`hcitool -i hci0 info ${MAC} | grep -o "${MAC}"`
if [ ${#PRECHECK} -eq ${#MAC} ]; then
  # exit when phone is detected
  echo "1"
  exit 0
  fi

PRECHECK=`sudo hcitool -i hci0 leinfo ${MAC} | grep -o "${MAC}"`
if [ ${#PRECHECK} -eq ${#MAC} ]; then
  # exit when phone is detected
  echo "1"
  exit 0
  fi


In der "99_myUtils.pm" steht:
sub
CheckPresenceBT($) {
  my $mac = @_;
  my $ret = "";

  $mac = lc($mac);

  $ret = qx( /opt/fhem/presenceBT.sh $mac);

  $ret =~ s,[\r\n]*,,g; # remove CR from return-string

  if ($ret != 0 && $ret != 1) {
    Log3 "CheckPresenceBT", 2, "CheckPresenceBT: $ret";
    return 0;
   }

  return $ret;
}


Und im entsprechenden PRESENCE-Device steht:
Internals:
   CHANGED   
   DEF        function {CheckPresenceBT("40:98:AD:80:76:BB")} 30 30
   FUUID      5d51d1ab-f33f-0b7a-9324-30bfb464d31a3427
   FVERSION   73_PRESENCE.pm:0.183140/2019-01-18
   INTERVAL_NORMAL 30
   INTERVAL_PRESENT 30
   MODE       function
   NAME       iPhone_Barbara_BT2
   NOTIFYDEV  global
   NR         1273
   NTFY_ORDER 50-iPhone_Barbara_BT2
   STATE      error
   TYPE       PRESENCE
   READINGS:
     2019-08-12 22:52:59   command_accepted yes
     2019-08-14 19:44:07   model           function
     2019-08-14 19:56:24   state           error
   helper:
     ABSENT_COUNT 0
     PRESENT_COUNT 0
     call       {CheckPresenceBT("40:98:AD:80:76:BB")}
Attributes:
   event-on-change-reading state
   room       Anwesenheiten
   verbose    5




Sinn des Ganzen ist es, eine Anwesenheitserkennung meines iPhones zu bekommen.
Ich habe gemerkt, dass es sich immer wieder verabschiedet und sich bei einem Scan nicht mehr meldet (auch nicht bei WLAN).
Aber ein info-Aufruf klappt bisher immer.

Danke im Voraus
lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 20:01:20
Und im log-file steht:
2019.08.14 20:00:25.990 5: PRESENCE (iPhone_Barbara_BT2) - stopping timer
2019.08.14 20:00:25.994 5: PRESENCE (iPhone_Barbara_BT2) - starting blocking call for mode function
2019.08.14 20:00:26.050 5: PRESENCE (iPhone_Barbara_BT2) - execute perl function: iPhone_Barbara_BT2|{CheckPresenceBT("40:98:AD:80:76:BB")}|0
Can't create connection: Operation not permitted
Can't create connection: Operation not permitted
Could not create connection: Input/output error
Could not create connection: Input/output error
2019.08.14 20:00:26.147 1: PERL WARNING: Argument "" isn't numeric in numeric ne (!=) at ./FHEM/99_myUtils.pm line 74.
2019.08.14 20:00:26.179 1: PERL WARNING: Argument "" isn't numeric in numeric ne (!=) at ./FHEM/99_myUtils.pm line 74.
2019.08.14 20:00:26.180 5: PRESENCE (iPhone_Barbara_BT2) - function returned with:
2019.08.14 20:00:26.185 5: PRESENCE (iPhone_Barbara_BT2) - blocking scan result: iPhone_Barbara_BT2|0|error|unexpected function output (expected 0 or 1):
2019.08.14 20:00:26.186 2: PRESENCE (iPhone_Barbara_BT2) - error while processing check: unexpected function output (expected 0 or 1):
2019.08.14 20:00:26.186 4: PRESENCE (iPhone_Barbara_BT2) - rescheduling next check in 30 seconds
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 14 August 2019, 20:23:17
Hallo Gerhard,

deine Scripte werden doch gar nicht mit sudo aufgerufen, müssen sie auch nicht!
Aber in deinem Script wird sudo hcitool mit Parametern aufgerufen!
Ich habe mir aufgeschrieben:
Zitat/usr/sbin/service * -> für alle Parameter
Also sollte der Eintrag in Deiner etc/sudoers.d/011_fhem-nopasswd" sein:
fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt, /usr/bin/hcitool *

Ohne einen Eintrag für die Scripte, der ist gefährlich!

abschließend chmod 0440 für die 011_fhem-nopasswd hattest Du gemacht?

Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 14 August 2019, 22:44:32
Hallo Otto,

vielen Dank. Da hätte ich nicht durchgeblickt.
Das mit dem "*" steht zwar eine Zeile drunter auch, dessen war ich mir aber nicht bewusst.

Damit ist nun das Zugriffsproblem gelöst.
Vielen herzlichen Dank!

Nun habe ich zwar immer noch das Problem, dass der interne Bluetooth-Adapter RPi 4 folgendes meldet:
Can't create connection: Input/output error
Aber das scheint ein anderes Problem zu sein.

Die Meldung kommt, wenn ich das Script über fhem aufrufe.
Wenn ich es 20x händisch aufrufe, kommt die Fehlermeldung nie.
Ist schon eigenartig.

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Wernieman am 15 August 2019, 09:51:47
Noch ein paar kleine Anmerkung:
- sudo möglichst klein halten, wirklich nur die nötigsten.
- Wenn Scripte nötig werden, darf KEINER (außer root) Schreibrechte haben, ansonsten große Sicherheitslücke
- prüfen, ob es nicht alternative Möglichkeiten gibt ..... (Richtige Gruppe setzen, Rechte anpassen ...)
...
- Mal google bemühen ("hcitool non root user")
z.B. für bluetooth: (ungetestet) https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root (https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root)
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 00:18:53
Hallo,

Danke nochmals für all die Hilfe.
Das Script wird nun aufgerufen.

Allerdings komme ich im Script immer noch nicht an die Bluetooth-Schnittstelle ran.

So wie im presence-Modul beschrieben, habe ich in meiner Script-Datei folgendes:
PRECHECK=`sudo hcitool -i hci0 info ${MAC} | grep -o "${MAC}"`
if [ ${#PRECHECK} -eq ${#MAC} ]; then
  # exit when phone is detected
  echo "1"
  exit 0
  fi


Als Fehlermeldung kommt jedesmal:
2019.08.16 23:59:51.364 5: PRESENCE (iPhone_Gerhard_BT2) - stopping timer
2019.08.16 23:59:51.365 5: PRESENCE (iPhone_Gerhard_BT2) - starting blocking call for mode function
2019.08.16 23:59:51.452 5: PRESENCE (iPhone_Gerhard_BT2) - execute perl function: iPhone_Gerhard_BT2|{CheckPresenceBT("38:53:9c:8e:ec:ff")}|0
Can't create connection: Input/output error
2019.08.16 23:59:56.628 1: PERL WARNING: Argument "" isn't numeric in numeric ne (!=) at ./FHEM/99_myUtils.pm line 74.
2019.08.16 23:59:56.630 5: PRESENCE (iPhone_Gerhard_BT2) - function returned with:
2019.08.16 23:59:56.640 5: PRESENCE (iPhone_Gerhard_BT2) - blocking scan result: iPhone_Gerhard_BT2|0|error|unexpected function output (expected 0 or 1):
2019.08.16 23:59:56.642 2: PRESENCE (iPhone_Gerhard_BT2) - error while processing check: unexpected function output (expected 0 or 1):
2019.08.16 23:59:56.643 4: PRESENCE (iPhone_Gerhard_BT2) - rescheduling next check in 30 seconds


Den Tipp von Wernieman habe ich so eingegeben (libcap2-bin war bereits installiert):
sudo setcap 'cap_net_raw,cap_net_admin+eip' `which hcitool`
pi@fhem2:/opt/fhem $ getcap `which hcitool`
/usr/bin/hcitool = cap_net_admin,cap_net_raw+eip


Wenn ich mit "su fhem -c ./presenceBT.sh 40:98:AD:80:76:BB" versuche das Script als fhem aufzurufen, werde ich nach einem Passwort gefragt.
Aber welches Passwort hat der User fhem?

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 17 August 2019, 09:56:26
Zitat von: gestein am 17 August 2019, 00:18:53
Aber welches Passwort hat der User fhem?
Guten Morgen Gerhard,

normal hat der User fhem kein Passwort und keine Möglichkeit der interaktive Anmeldung. Die könntest Du einrichten, ich halte es aber für den falschen Weg.
Zitatsudo cp /etc/passwd /etc/passwd.sav
sudo nano /etc/passwd
# in der Zeile: fhem:x:999:20::/opt/fhem:/bin/false
# von /bin/false auf /bin/bash ändern und speichern

Dann für den Benutzer fhem ein Kennwort eingeben
sudo passwd fhem

Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: MadMax-FHEM am 17 August 2019, 10:29:24
Du kannst auch mal folgendes probieren:

sudo -su fhem bash

Dann solltest du fhem sein...
...dann kannst du das Script ja mal aufrufen...
...und sehen was passiert...

Gruß, Joachim
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 10:58:01
Guten Morgen Otto, guten Morgen Joachim,

Danke.
Ich denke auch, dass das mit einem Passwort für fhem der falsche Weg wäre.
Aber warum fragt er mich dann nach einem Passwort?
Wahrscheinlich, weil fhem nicht in der Gruppe "root" ist. Oder?

Aber warum darf fhem nicht auf den Bluetooth-Adapter zugreifen?

Ich habe das script nun händisch so ausgerufen: "sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86" und nur die gescannte BT-MAC ausgeben lassen.
Damit bekomme ich bei einigen Aufrufen hintereinander folgende Ausgaben:
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
pi@fhem2:/opt/fhem $ sudo -u fhem ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86


Mit dem von Joachim bekomme ich folgendes:
pi@fhem2:/opt/fhem $ sudo -su fhem bash
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
Can't create connection: Input/output error
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86
fhem@fhem2:~$ ./presenceBT.sh 38:53:9C:7F:C3:86
38:53:9C:7F:C3:86


Manchmal kann der user fhem auf den Bluetooth-Adapter zugreifen, manchmal nicht. Eigenartig.
Kann es sein, das Buster hier Probleme mit den Zugriffsrechten hat?
Oder der Treiber nicht richtig funktioniert?

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: MadMax-FHEM am 17 August 2019, 11:15:41
Das Passwort bei deinem Versuch ist wegen "einloggen" auf der Console...

Du hast doch das Script bei sudoers für den User fhem ohne Passwort eingetragen!?

Was passiert, wenn du nach meinem Befehl das Script mit sudo auftufst?

Gruß, Joachim
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 17 August 2019, 11:50:15
Hallo Gerhard,

nur mal so nebenbei: Ich habe ein neues System auf einem Pi3+ mit Buster aufgesetzt. Ohne große "Zauberei" Einfach nur Grundeinrichtung und FHEM analog hier (https://heinz-otto.blogspot.com/2019/05/setup-raspberry-pi-2019.html).
Dann habe ich existierenden BT Presence Definitionen aus meinem Produktivsystem übertragen (https://heinz-otto.blogspot.com/2019/07/definitionen-in-fhem-komplett-umziehen.html).
bash fhemcl.sh $inst1 "list -r TYPE=PRESENCE:FILTER=BT_Mi.*"|bash fhemcl.sh 8083
Das läuft ohne Probleme. Also die BT Schnittstelle unter Buster hat scheinbar kein Problem.

Warum hast Du eigentlich so einen komplizierten Ansatz mit eigenen Scripten?

Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 12:39:15
Hallo Otto,

genau nach Deiner Anleitung habe ich den Umzug auch gemacht ;)

Das Script habe ich aus dem Presence-Modul bzw. einem Thread dazu kopiert und angepasst (alleine hätte ich da ja eh nicht geschafft).
Im Presence-Device wird das Script aufgerufen, die 0 bzw. 1 zurückliefert.

Mein Problem ist, dass mein iPhone sich zwar auf einen BT-scan meldet, sich dann aber mal "schlafen" legt und nicht mehr antwortet.
Auch die Lösung hier (von da habe ich auch das Script) funktioniert bei mir nicht zuverlässig. https://forum.fhem.de/index.php/topic,76342.0.html
hping3 weckt das iPhone nicht (immer) auf.

Irgenwann habe ich dann gemerkt, dass das iPhone aber immer auf eine Info-Abfrage antwortet.
Also wollte ich das natürlich umsetzen.

Im Prinzip nicht schwierig (dachte ich mir).
Einfach das Script presence.sh etwas abwandeln und schon klappt es.
Aber leider ergeben sich da meine Schweirigkeiten mit dem Zugriff auf den Bluetooth-Adapter.
Der ist übrigens der interne des RPi4.

lg, Gerhard


Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 12:43:14
Hallo Joachim,

ich habe mir die Tipps zu Herzen genommen und die Scripts wieder aus dem sudoers rausgenommen.
Die Datei sieht nun so aus wie von Otto vorgeschlagen.

Dafür habe ich den Vorschlag von Wernieman mit den caps umgesetzt.
Zugriff scheint fhem zu haben. Aber nicht immer.

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 12:45:39
Wenn ich das script nach der Eingabe von "sudo -su fhem bash" aufrufe, dann hat das Script manchmal Zugriff und manchmal nicht (siehe den zweiten Teil meines Postings von 10:58).

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 17 August 2019, 12:47:36
ok verstanden. Ich hatte bis vor kurzem auch mal ein Android Phone welches sich offenbar immer mal per BT verabschiedete. Geheimnisvoll das Ganze.
Ich bin bei dem dann wieder dazu übergegangen Wlan abzufragen.
Leider gibt es offenbar mit Smartphones keine stabile Universallösung.  :(

Viel Erfolg noch
Gruß Otto
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 17 August 2019, 12:52:14
Hallo Otto,

tja, das Ganze ist wirklich zu Verzweifeln - ständig neue Probleme ;)

lg, Gerhard
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Wernieman am 17 August 2019, 17:43:45
Könnte es sein, das der BT Adaptr es PI4 Probleme macht?

1. ist der vom PI3... auch nicht super
2. Ist der PI4 so neu, das eventuell einige Treiber noch nicht vollständig sind

Hast Du eventuell einen USB-Adapter "rumliegen"?
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: Otto123 am 20 August 2019, 13:41:47
Hab ich gerade gefunden: https://forum.fhem.de/index.php/topic,75559.msg967004.html#msg967004

Passt das vielleicht auch zu dem Thema?
Titel: Antw:fhem: Rechte für Scripte
Beitrag von: gestein am 23 August 2019, 08:42:21
Hallo Otto,

danke für den Tipp. Das scheint wirklich so zu sein.
Der Treiber für das interne Bluetooth hat (noch) was.

Auf den Rat von Wernieman hin, habe ich mir vorgestern einen externen Adapter zugelegt.
Momentan bin ich noch am Testen, aber es scheint (besser) zu funktionieren.

Danke nochmals
lg, Gerhard