[ Gelöst] Homebridge Steuerung aus FHEM und Anbindung IOS Geräte

Begonnen von UweUwe, 27 Dezember 2018, 11:06:14

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
Ja vermutlich...

Hast du einen anderen Rechner mit Linux? ;)

Oder zumindest die Möglichkeit ein Linux-Live-Sytem zu booten (von USB oder DVD/CD)?

Dann das machen und die Karte dann da rein und dann mal nach einer guten, frischen sudoers Datei im Internet suchen und dann "drüberbügeln"...
Vermutlich geht auch den Inhalt mit einer sudoers die du hier gepostet hast (und noch funktioniert hat !?) eintragen...

Dazu herausfinden, wo die Karte gemountet wurde.
Bei Ubuntu z.B. /media

Also mal
ls -la /media
hier posten...

Dann machen wir weiter...

EDIT: drum soll man ja visudo nehmen, der macht syntax-check...

EDIT2: hier noch ein Link bzgl. Linux-Live-Sytem und Dateizugriff: https://forum.fhem.de/index.php/topic,94896.msg876905/topicseen.html#new. Aber nur mal zum Lesen/als "Unterstützung" vermutlich nicht direkt zum "Nachturnen", da klein wenig andere Problematik...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Bin wieder da,

Neuinstallation durchgeführt, von der Console läuft

sudo service homebridge status /stop/ start etc. und ich habe auch über IOS Zugriff.
fhem@raspberrypi:~$ sudo update-rc.d homebridge defaults
fhem@raspberrypi:~$ sudo service homebridge start
fhem@raspberrypi:~$ sudo service homebridge status
● homebridge.service - LSB: Start daemon at boot time for homebridge
   Loaded: loaded (/etc/init.d/homebridge; generated; vendor preset: enabled)
   Active: active (exited) since Sun 2018-12-30 17:23:45 CET; 26s ago
     Docs: man:systemd-sysv-generator(8)

Dec 30 17:23:45 raspberrypi systemd[1]: Starting SYSV: Enable service provided by daemon....
Dec 30 17:23:45 raspberrypi homebridge[1436]: Homebridge is already running
Dec 30 17:23:45 raspberrypi systemd[1]: Started SYSV: Enable service provided by daemon..
fhem@raspberrypi:~$ sudo service homebridge status
● homebridge.service - LSB: Start daemon at boot time for homebridge
   Loaded: loaded (/etc/init.d/homebridge; generated; vendor preset: enabled)
   Active: active (exited) since Sun 2018-12-30 17:23:45 CET; 40s ago
     Docs: man:systemd-sysv-generator(8)

Dec 30 17:23:45 raspberrypi systemd[1]: Starting SYSV: Enable service provided by daemon....
Dec 30 17:23:45 raspberrypi homebridge[1436]: Homebridge is already running
Dec 30 17:23:45 raspberrypi systemd[1]: Started SYSV: Enable service provided by daemon..
fhem@raspberrypi:~$ sudo service homebridge status
● homebridge.service - LSB: Start daemon at boot time for homebridge
   Loaded: loaded (/etc/init.d/homebridge; generated; vendor preset: enabled)
   Active: active (exited) since Sun 2018-12-30 17:23:45 CET; 2min 10s ago
     Docs: man:systemd-sysv-generator(8)

Dec 30 17:23:45 raspberrypi systemd[1]: Starting SYSV: Enable service provided by daemon....
Dec 30 17:23:45 raspberrypi homebridge[1436]: Homebridge is already running
Dec 30 17:23:45 raspberrypi systemd[1]: Started SYSV: Enable service provided by daemon.
.

Aber mit der SYS-Homebridge werde ich nicht warm.

Der Versuch, die Homebridge von FHEM aus zu starten, etop etc.. läuft im Logfile auf folgende Fehler:

018.12.30 17:19:51 3: Login denied via TELNETPORT_127.0.0.1_36122
2018.12.30 17:19:51 3: Login denied via TELNETPORT_127.0.0.1_36124
2018.12.30 17:19:51 3: Login denied via TELNETPORT_127.0.0.1_36126
2018.12.30 17:20:07 3: Login denied via TELNETPORT_127.0.0.1_36130
2018.12.30 17:20:07 3: Login denied via TELNETPORT_127.0.0.1_36132
2018.12.30 17:20:07 3: Login denied via TELNETPORT_127.0.0.1_36134
2018.12.30 17:23:45 3: Login denied via TELNETPORT_127.0.0.1_36180
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
2018.12.30 17:27:02 3: Login denied via TELNETPORT_127.0.0.1_36218
2018.12.30 17:27:02 3: Login denied via TELNETPORT_127.0.0.1_36220
2018.12.30 17:27:05 3: Login denied via TELNETPORT_127.0.0.1_36222
2018.12.30 17:27:05 3: Login denied via TELNETPORT_127.0.0.1_36224


List TELNETPORT bringt:

   CONNECTS   11
   DEF        7072
   FD         37
   NAME       TELNETPORT
   NR         123
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2018-12-30 16:59:24   state           Initialized
Attributes:
   DbLogExclude .*
   room       GERAETE


und die //etc/init.d/homebridge sieht so aus:

fhem@raspberrypi:~$  cat /etc/init.d/homebridge
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
export LOGPATH="/home/pi/homebridge/log"


PID=`pidof homebridge`
homeBridgeUser="fhem"
fhemHost=127.0.0.1          #FHEM Server (Masterinstanz)
fhemHostTelnetPort=7072     #TelnetPort der FHEM Instanz
fhemDefine="SYS_Homebridge"

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
         perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is already running"


else
#       su - $homeBridgeUser -c "homebridge > /dev/null 2>&1 &"
        su - "fhem" -c "homebridge > $LOGPATH/homebridge-`date +%Y-%m`.log 2>&1 &"
        echo "Homebridge starting"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge starting"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"
        sleep 2
        $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
else
        kill $PID
        echo "Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
        sleep 2
        $0 status
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge running as PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"
else
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0


nur zur Vorsicht:

die sudoers sieht so aus:

#
# 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:/etc/init.d/homebridge
fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge start
fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge stop
fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge restart
fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge status

# 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

%admin ALL=(ALL) ALL


Mal sehen was du jetzt dazu sagst.. ich vermute ein Zugriffsproblem über Telnet..


Uwe








MadMax-FHEM

#17
Wie hast du die sudoers bearbeitet?

visudo?

Würde mich (fast) wundern, da die Einträge so (zumindest finde ich) nicht passen.

Und ich kann's auch noch mal schreiben:

Der Dummy nutzt das "Programm" service in der sudoers steht aber immer noch das "Programm" /etc/init.d/homebridge

Wird (neben dem dass die sudoers Einträge generell eigenartig sind) nicht funktionieren...

Oder hast du den Befehl im Dummy angepasst/geändert?


Hast du ein allowed für telnet?

Hast du mal überlegt (statt Dummy) das Modul serviced zu verwenden?

Oft genug verlinkt bzw. angemerkt...
...unter anderem im im anderen Thread verlinkten Thread ("homebrige für unerfahrenen" oder so)...

EDIT: ich poste nachher mal mein umgearbeitetes initd-Script (ist zwar alexa-fhem aber ist im Prinzip ja ähnlich, ich passe es auch mal für "dein" homebridge an) welches ich zusammen mit dem serviced-Modul (statt dummy/DOIF nutze)... Und auch (noch mal) den Link zu dem Modul-Thread...

Warum startet der User "fhem" (/etc/init.d/homebridge Script) die Logdatei liegt aber unter /home/pi/himebridge/log ?
Nur ein "Schönheitsfehler" aber so ein "User-Durcheinander" führt (wegen Unübersichtlichkeit) später oft zu Problemen...

Ansonsten (erneut): Linux lernen und lesen und verstehen...

Irgendwie drehen wir uns (die letzten Einträge lang) immer um das Selbe bzw. schreibe ich quasi immer das Selbe...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#18
Den Hinweis/Anmerkung bzgl. /etc/sudoers.d (der auch in der sudoers Datei selbst steht) hast du mal bewusst nicht gewählt? ;)

Zitat
# 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.
#

Dazu sollte auch was im in diesem Thread verlinkten Thread (bzgl. sudoers) was stehen...

EDIT: aber daran liegt es nicht. Ist nur als Anregung zu verstehen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#19
So hier wie versprochen die Angaben bzgl. Nutzung des Moduls serviced (statt Dummy).
Wobei die Einstellungen bzgl. sudoers auch für den Dummy passen sollten (vielleicht fällt dir jetzt der Unterschied auf ;)  ).

Also zunächst (noch) mal der Link zum Thread bzgl. des serviced-Moduls:

https://forum.fhem.de/index.php/topic,79952.0.html

Das Modul musst du (noch) "manuell" instalieren, soll heißen aus dem Thread runter laden und dann nach /opt/fhem/FHEM kopieren.
Ich mache das immer nach dem Runterladen aus der Linux-Console meines Notebooks mittels "scp":


scp Dateiname pi@IP-Des-RasPi:/home/pi/


und dann per ssh auf den RasPi und dort dann:


sudo cp Dateiname /opt/fhem/FHEM

(sudo weil der User "pi" in /opt/fhem/FHEM nicht schreiben darf / und "nur" Dateiname weil normalerweise befindet man sich nach dem Einloggen auf dem RasPi als User "pi" eben schon in /home/pi/ wo die Datei ja nach dem "scp" liegen sollte, ein sudo cp /home/pi/Dateiname ist somit eigentlich unnötig ABER: nicht falsch... Bzw. funktioniert immer egal in welchem Verzeichnis man "steht"...)

dann noch die Zugehörigkeit anpassen:

sudo chown fhem:dialout /opt/fhem/FHEM/Dateiname


Alle Befehle bzgl. "Dateiname" anpassen!
Und die Pfade etc. sind für eine "Standard-fhem-Installation" gültig.
Wenn du anders installiert hast, dann auch das anpassen...

Dann entweder fhem neu starten oder ein "reload" der Datei über FHEM-Web-cmd...


Damit das Modul (oder dein Dummy) services starten/stoppen etc. kann/darf braucht es den Eintrag in der sudoers OHNE Passwort (ist ja keiner da eins einzugeben)...

Wie bereits geschrieben habe ich dazu (was auch in der sudoers Datei geraten wird) für fhem eine unter /etc/sudoers.d/ eigene Datei angelegt.
Hier der Inhalt meies /etc/sudoers.d/


pi@MadMax-PI-FHEM:/etc/sudoers.d $ ls -la
total 20
drwxr-xr-x  2 root root 4096 Dez  8  2017 .
drwxr-xr-x 84 root root 4096 Nov 19 19:06 ..
-r--r-----  1 root root   27 Okt 18  2016 010_pi-nopasswd
-r--r-----  1 root root   29 Sep 16  2017 020_fhem-nopasswd
-r--r-----  1 root root  958 Jun  5  2017 README



Ich habe als "Vorlage" die Datei vom User "pi" genommen:


sudo cp /etc/sudoers.d/010_pi-nopasswd /etc/sudoers.d/020_fhem-nopasswd


Inhalt dann wie im serviced-Thread angegeben:

fhem ALL=(ALL) NOPASSWD:/usr/sbin/service


Vorher mittels:

which service


Den Pfad noch mal prüfen...

Besser natürlich mittels "visudo" bearbeiten:

sudo visudo -f /etc/sudoers.d/020_fhem-nopasswd


Das sollte auch für den Dummy passen...

Solltest du umsteigen auf systemd, dann eben die Einträge in der sudoers anpassen und auch das Startscript, nachzulesen hier:

https://forum.fhem.de/index.php/topic,93540.msg861872.html#msg861872


Wenn du das serviced-Modul statt dem Dummy nehmen willst, wirst du vermutlich noch das Startscript anpassen müssen.
Weil die Aufrufe per Telnet brauchst du nicht und ich habe festgestellt, dass nur das Rausnehmen der Aufrufe zwar reicht den Dienst zu starten/stoppen aber Fehler beim Starten etc. nicht "bemerkt" werden...

Hier mal mein (für dein homebridge angepasstes) Startscript:


#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
export LOGPATH="/home/pi/homebridge/log"
PID=`pidof homebridge`

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "homebridge is already running"
else
        su - "fhem" -c "homebridge > $LOGPATH/homebridge-`date +%Y-%m`.log 2>&1 &"
        echo "homebridge starting"
        sleep 5

        PID=`pidof homebridge`

        if ! ps -p $PID > /dev/null 2>&1; then
        echo "homebridge not started!"
        exit 7
        fi
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "homebridge is not running"
else
        kill $PID
        echo "homebridge closed"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "homebridge is running PID $PID"
else
        echo "homebridge is not running"
        exit 3
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
echo "script done"
exit 0


Wie immer:

ohne Gewähr! ;)
Bei Aufrufen mit "sudo" IMMER genau prüfen! Nachlesen WAS das tut und WOZU das notwendig ist (oder auch nicht, dann weglassen)!

EDIT: den Dummy brauchst du dann natürlich nicht mehr (also bei Nutzung des serviced-Moduls). Und nach dem Anpassen der Startdatei /etc/init.d/homebridge immer das update-rc.d ausführen...

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo Joachim,

erstmal vielen Dank für die die Ausarbeitung. Hab mich intensiv in den letzten Stunden damit beschäftigt.
Toll, Toll, Toll der support.

Mein Stand: Ich habe die sudoers immer mit Visudo bearbeitet, aus root, immer, immer, seit dem Absturz.

su
visudo


konsequent, ohne Fehlermeldung. Ich habe auch dann gleich mal

fhem ALL=(ALL) NOPASSWD:/usr/sbin/service

eingefügt, was keine Änderung gebracht hat. Neustart, sudo update-rc.d homebridge defaults. Den Pfad habe ich geprüft. Wohl habe ich keine zusätzlichen Dateien erzeugt, sondern alles in einer Datei gehalten. Dies weiss ich wie geht und es führt nicht zu zusätzlichen Fehlern.


Wenn ich den Dummy (habe ich auch nochmals gelöscht und aufgebaut) bediene, so sehe ich im Logfile kosequent weiterhin


sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified


Die von dir angepasste homebridge Datei habe ich getestet. Ich habe verstanden, dass dort über Perl der Status jetzt nicht an FHEM weitergegeben wird. Trotz allem bringe ich die Datei nicht zum Laufen. Bricht ab mit

Zitatpi@raspberrypi:~ $ sudo service homebridge start
Job for homebridge.service failed because the control process exited with error code.
See "systemctl status homebridge.service" and "journalctl -xe" for details.

Sorry, fand ich keine Lösung.


Hab dann an meiner ursprünglichen homebridge service Datei weitergarbeitet:

Der Perl Befehl aus der Homebridge Datei an Telnet bringt auch den/die Fehler:

Zitat018.12.31 18:09:42 3: Login denied via TELNETPORT_127.0.0.1_51938
2018.12.31 18:09:48 3: Login denied via TELNETPORT_127.0.0.1_51942
2018.12.31 18:09:48 3: Login denied via TELNETPORT_127.0.0.1_51944
2018.12.31 18:09:51 3: Login denied via TELNETPORT_127.0.0.1_51946

Das konnte ich nachweisen, ich habe die entsprechenden Zeilen maskiert, dann war es weg.

Auch Telnet habe ich gelöscht, auch allowedTelnet gelöscht, habe es mit Passwort und ohne Passowort versucht, kein Thema immer gleich,
Login denied..immer Fehler.

Auch das "serviced Modul" sollte nicht die Lösung sein, bringt nur noch weitere Hürden mit sich. Bin ich falsch, wenn ich sage: das Passwortthema ist ein grundsätzliches Thema und auch das Telnet Thema ist ein grundsätzliches Thema. Ich sehe hier 2 Themen, die nichts miteinander zu tun haben. Telnet könnte man lösen, indem man keine Rückmeldung gibt, aber Passwort ist schlecht, dann ist die eigentliche Funktion des dummies weg. Ich kann weder von der Console auf FHEM Mitteilungen senden, noch von FHEM an den Raspberry Commandos absetzen. Solange dies nicht funktioniert, sind alles andere Scheingefechte.

Liege ich falsch?

"Homebridge" läuft, und "start service hombridge Start/stop/status funktioniert weiterhin von der Konsole. Nur diese Kommando Kommunikation mit FHEM hängt. Die Device Informationen laufen auch von FHEM über homebridge nach IOS.

Merci nochmals. Ideen?










MadMax-FHEM

#21
Dass mein Script nicht läuft mag sein, hab es zwar noch mal durchgesehen und konnte jetzt nichts finden aber ich habe es ja auch umgebaut auf homebridge da kann schon mal was schief gehen...

Aber es sollte was (hoffentlich) im Log stehen/gestanden haben.

Ansonsten:

das mit dem Dummy ist (wie bereits geschrieben) "nur" Bequemlichkeit.
Also sofern homebridge bei Systemstart automatisch gestartet wird und läuft dient der Dummy lediglich dazu, wenn etwas homebridge-relevantes geändert wird, dass es aus fhem heraus nachgestartet werden kann...
Lässt sich aber auch tun, wenn man kurz in die Linux-Console wechselt und es dort tut...

Kommt am Anfang sicher öfter mal vor...
...später wohl kaum noch.


Wie hast du den Eintrag in die sudoers vorgenommen?
Extra Datei?
In die vorhandene sudoers eingetragen?

Die alten Einträge gelöscht?!

Den Eintrag für fhem ans Ende der Datei (falls in die sudoers-Datei)?

Was kommt, wenn du die telnet-Aufrufe direkt auf der Linux-Console eingibst?

Was passiert, wenn du folgendes direkt in die fhem-Web-cmd eingibst:

"sudo service homebridge stop"

"sudo service homebridge start"

Die Anführungszeichen mit eingeben!

EDIT: welches System hast du? Raspbian lite!? (also OHNE grafische Oberfläche) Wie hast du fhem installiert: https://debian.fhem.de/ und dann "the easy way"? Oder anders?

EDIT2: sudo visudo ist sicherer als su visudo. Weil: nach dem Kommando su bist du "root". Wenn du dann kein "exit" ausführst bleibst du auch root! Beim "Befehl" sudo wird eben nur das darauf folgende Kommando als "root" ausgeführt, danach wird automatisch zum aufrufenden User zurück geschaltet...

EDIT3: poste doch noch mal den Inhalt deiner sudoers: sudo cat /etc/sudoers und falls extra Datei auch von der für den User "fhem"...

Gruß und guten Rutsch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo,
ein Frohes Fest wünsche ich allen , ganz besodners Joachim, die mich die gesamte Zeit so unterstützt hat.

Zuerst mal die gute Nachricht:

Die Ursache für die Zugriffsproblematik Telnetport habe ich wohl gefunden:

2019.01.01 09:48:57 3: Login denied via TELNETPORT_127.0.0.1_57258
2019.01.01 09:48:58 3: Login denied via TELNETPORT_127.0.0.1_57260
2019.01.01 09:49:00 3: Login denied via TELNETPORT_127.0.0.1_57262
2019.01.01 09:49:00 3: Login denied via TELNETPORT_127.0.0.1_57264


Nachdem ich das "allowed" auf den Telnetport gelöscht habe, funktioniert der Zugriff von der Hombridge auf das SYS_Homebridge device in FHEM:

OnStateChange -1  2 018-12-31 18:08:25
info Homebridge running as PID 10423 2019-01-01 10:45:29
state on 2019-01-01 10:45:29



Das Reading info in der SYS-Homebridge ist neu entstanden, und die PID wird auch beim start der homebridge mit "sudo service hombridge start" von der consule richtig in das reading Info (siehe oben)
Dies ist auch so ok. 

Ein kleiner Schönheitsfehler ist noch da: Gibt man sudo service hombridge stop ein, so wird dies auch richtig in das device übertragen, also homebridge gestopt, nach wenigen Augenblicken springen die readings dann aber wieder zurück auf den ursprünglichen Wert. Ich bekomme diesen Zwischenstand nicht kopiert und "hier" dargestellt. Auch die obere Anzeige "AN" , "AUS" springt bei "homebridge stop" immer kurz nach "Aus" und wieder zurück nach "AN".

ZitatDann blieb nur noch ein  Thema, und für mich die Erklärung, warum das "allowed" den Zugriff verhindert hat.?

Un das 2. Thema ist davon, wie vermutet, unabhängig..

sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified


Weiterhin kommt diese Fehlermeldung in das Logfile konstant nach jedem Kommando aus FHEM aus der SYS_Homebridge.
Immer eine Zeile bei jedem neuen "set sys_homebridge Start bzw Stop".

Diese Meldung  kommt auch , wenn man die folgende Kommandos in FHEM direkt eingibt:

"sudo service homebridge start"
"sudo service homebridge stop"


jeweils einmal. Immer konstant. Immer zuverlässig.

Meine "PI" Ausstattung ist:

ZitatMeine Ausstattung ist:

Hardware und Software:
1. Hardware Raspberry 3
2. FHEM 5.9 auf neuestem Stand
3. Distributor ID: Raspbian, Description:    Raspbian GNU/Linux 9.6 (stretch), Release:        9.6, Codename:       stretch
4. IOS 12 auf den Zielgeräte für Homebridge

ZitatWie habe ich installiert?

Bin dieser Anleitung nachgegangen:

https://www.meintechblog.de/2016/05/fhem-server-auf-dem-raspberry-pi-in-weniger-als-einer-stunde-einrichten/

Hier die sudoers:

pi@raspberrypi:~ $ sudo cat /etc/sudoers
#
# 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:/etc/init.d/homebridge

# 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

%admin ALL=(ALL) ALL


Es gibt noch eine directory /etc/sudoers.d $ mit folgendem Inhalt:

drwxr-xr-x  2 root root 4096 Dec 14 11:43 .
drwxr-xr-x 92 root root 4096 Dec 31 18:06 ..
-r--r-----  1 root root   36 Nov 26 11:28 010_at-export
-r--r-----  1 root root   27 Oct 18  2016 010_pi-nopasswd
-r--r-----  1 root root  958 Jun  5  2017 README


Zitatpi@raspberrypi:/etc/sudoers.d $ sudo cat 010_at-export
Defaults env_keep += "NO_AT_BRIDGE"

und

pi@raspberrypi:/etc/sudoers.d $ sudo cat 010_pi-nopasswd
pi ALL=(ALL) NOPASSWD: ALL


Ist vielleicht die zusätzliche directory sudoers.d und die darin enthaltenen Dateien die Ursache. Überschreiben diese den Status?

Damit sollten auch die Fragen zu sudoers beantwortet sein.

Mir ist schon bewusst, dass das Dummy nur Bequemlichkeit ist, aber ich vermute irgendwo einen nachhaltigen Fehler, der mir irgendwann später dann wiedre in die Quere kommt. Lieber jetzt weg, als immer mitschleppen.

Vielen Dank

Uwe


























MadMax-FHEM

#23
Kein Ding! :)

Gut dass das mit dem Status nun (halb) funktioniert...

Daher ja die Frage nach allowed bzgl. Telnet (schon einige Antworten zuvor ;)  )...

Poste doch mal ein list des Dummy und noch mal das aktuelle Startscript (/etc/init.d/homebridge).

Dann schaue ich mal, ob ich was finde...


Sudoers-Problematik:

die Einträge bzgl. fhem würde ich entweder ganz ans Ende der sudoers setzen oder eben eine eigene Datei unter /etc/sudoers.d/ anlegen wie geschrieben:

sudo visudo -f /etc/sudoers.d/020_fhem-nopasswd

und dort dann entweder mal (zum Test):

fhem ALL=(ALL) NOPASSWD: ALL

oder den Eintrag nur bzgl. "service"...

Wozu dient 010_at-export?
Woher kommt das?


Auch sieht deine sudoers schon "ungewöhnlich" aus, auch ohne die Einträge bzgl. fhem.
Hier mal meine:


#
# 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

# 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


Woher stammt bei dir der Eintrag "admin"!?

Und der Eintrag für fhem muss auf jeden Fall ans Ende, besser eigene Datei...


Bzgl. Installation von fhem:

nimm lieber (auch zukünftig) "offizielle" Quellen.
Also fhem-Forum oder fhem-Wiki.

Leichter und schneller ist die automatische Installation hierüber (auch schon mal genannt): https://debian.fhem.de/
-> the easy way...

Weil: hast du schon mal auf das Datum geschaut von wann der Artikel ist!?
Meine allererste Installation vor so 2-3 Jahren habe ich danach gemacht aber seither hat sich doch einiges geändert...

Welches Raspbian Image hast du denn verwendet?
Sicher ein "lite"!?
Wenn nicht, dann spätestens nächstes mal ein lite nehmen!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo Joachim,

danke mal für die schnelle Antwort. Das sudoers werde ich mir gleich mal zu Gemüte führen. Da brauch ich mehr Zeit.

Zuerst die anderen Dinge:

ZitatGut dass das mit dem Status nun (halb) funktioniert...

Daher ja die Frage nach allowed bzgl. Telnet (schon einige Antworten zuvor ;)  )...

Verstehe ich "allowed" so richtig, dass mit allowed_Telnet impliziet der Zugang nur mit Passwort möglich ist, auch wenn ich kein Passwort vergeben habe?
Was mache ich dann mit dem homebridge-Service, wenn ich auf Telnet ein Passwort vergeben habe. Wo hinterlege ich dieses Passwort für homebridge.
FHEM meckert jetzt bei mir ja an, dass ich Telnet nicht mit einem Passwort versehen habe.

so sieht list SYS-Homebridge heute aus:

   NAME       SYS_Homebridge
   NR         125
   STATE      on
   TYPE       dummy
   READINGS:
     2019-01-01 11:09:29   OnStateChange   -1
     2019-01-01 11:42:22   info            Homebridge running as PID 11412
     2019-01-01 11:42:22   state           on
Attributes:
   DbLogExclude .*
   devStateIcon .*on:general_an .*off:general_aus .*:audio_rec
   eventMap   status:status start:start stop:stop restart:restart
   icon       it_router
   room       GERAETE
   userReadings OnStateChange:(start|stop|restart|status) {  system ("sudo service homebridge ".ReadingsVal($NAME,"state","restart")." &" );  }
   webCmd     status:start:stop:restart


So sieht der service homebridge heute aus:

pi@raspberrypi:/etc $ sudo cat /etc/init.d/homebridge
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules

PID=`pidof homebridge`
homeBridgeUser="fhem"
fhemHost=127.0.0.1          #FHEM Server (Masterinstanz)
fhemHostTelnetPort=7072     #TelnetPort der FHEM Instanz
fhemDefine="SYS_Homebridge"

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is already running"
else
        su - $homeBridgeUser -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"

        perl /opt/fhem/fhem.pl 7072   "setreading $fhemDefine info Homebridge starting"
#       perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge starting"
        perl /opt/fhem/fhem.pl 7072  "set $fhemDefine on"
#       perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort  "set $fhemDefine on"
        sleep 2
        $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
else
        kill $PID
        echo "Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
        sleep 2
        $0 status
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge running as PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"
else
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
pi@raspberrypi:/etc $


ZitatWelches Raspbian Image hast du denn verwendet?
Sicher ein "lite"!?
Wenn nicht, dann spätestens nächstes mal ein lite nehmen!

Ich weiss nicht, was ich benutzt habe.

ZitatWenn nicht, dann spätestens nächstes mal ein lite nehmen!

Ich muss für das Haus meiner Mutter direkt noch eine Installation machen, sobald diese hier steht. Ende Februar muss alles fertig sein mit Alarmanlage.  Seit 4 Jahren gibt es dort eine Installation für Heizung und Rolläden. Sehr sehr wichtig für mich. Ich bin da FHEM sehr grossen Dank verpflichtet. Ohne FHEM ging das alles nicht und ich könnte das Haus so nicht halten.

Uwe








MadMax-FHEM

Klar nimm dir Zeit!

Ich laufe nicht weg ;)


Dummy-Start-Stop-Problematik:

Was ich sehe ist, dass nach dem stop ein sleep von 2s und dann status aufgerufen wird (also innerhalb des Scripts).
Die 2s sollten eigentlich reichen nach einem kill...

Du kannst entweder den status-Aufruf mal rausnehmen oder die Zeit vergrößern...

Bzw. einfach nach einem stop per Dummy mal noch ein wenig warten und dann mal:

sudo service homebridge status

in die Linux-Console eingeben.
Wenn danach der Status passt, dann ist die Zeit zu kurz...
Wenn es dann immer noch nicht passt, dann weiß ich grad auch nicht so recht...

Ansonsten sehe ich halt einen Mix bei den "telnet-Aufrufen", ist aber nur "Schönheit"... ;)


Bzgl. Passwortschutz bei Telnet:

https://fhem.de/HOWTO_DE.html#security
https://fhem.de/commandref_DE.html#telnet

und dann sollte folgendes funktionieren:

perl /opt/fhem/fhem.pl 127.0.0.1:7072 passwort "set Test off"
bzw.
perl /opt/fhem/fhem.pl 7072 passwort "set Test off"


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hi Joachim,

das wars.  :) :)  Ich kann aus FHEM hombridge starten und stoppen, die Problematik mit dem umspringen der "aus" nach "an" ist hier auch vorhanden, ich lese gleich deine neue Mail.

Was habe ich gemacht:

Ich habe jetzt mein sudoers bearbeitet, bzw. die "schwierigen Zeilen rausgenommen", auskommentiert.

Die sudoers sieht jetzt so aus: (jetzt identisch mit deiner sudoers)

pi@raspberrypi:~ $ sudo cat /etc/sudoers
#
# 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  [u]#### [u] :Pdies habe auskommentiert [/u]
[/u]
#fhem ALL=(ALL) NOPASSWD:/usr/sbin/service   [u]####  :Pdies habe auskommentiert [/u]
#fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge     [u]####  :Pdies habe auskommentiert
[/u]
# Allow members of group sudo to execute any command
#%sudo  ALL=(ALL:ALL) ALL     ####  :Pdies habe auskommentiert

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

#includedir /etc/sudoers.d

#%admin ALL=(ALL) ALL  [u] ####  :Pdies habe auskommentiert [/u]


und ich habe die extra Datei angelegt:

ZitatSudoers-Problematik:

die Einträge bzgl. fhem würde ich entweder ganz ans Ende der sudoers setzen oder eben eine eigene Datei unter /etc/sudoers.d/ anlegen wie geschrieben:

Code: [Auswählen]

sudo visudo -f /etc/sudoers.d/020_fhem-nopasswd


und dort dann entweder mal (zum Test):

Code: [Auswählen]

fhem ALL=(ALL) NOPASSWD: ALL


oder den Eintrag nur bzgl. "service"...

woher das kommt weiss ich nicht, hab ich mal gelassen.

Wozu dient 010_at-export?
Woher kommt das?


Jetzt habe ich wohl unter root keine sudo Rechte mehr.. Sollte aber kein Thema sein. Oder?

Vielen Dank   8) 8) 8) 8)
Uwe








MadMax-FHEM

Warum hast du auskommentiert?

In "code-Tags" sind die "Hervorhebungen" nicht wirklich lesbar/hilfreich...
...sehe nicht so genau wie die sudoers jetzt aussieht. ;)

Warum nicht einfach meine (ist eine unbehandelte "Original-sudoers-Datei" von Raspbian Stretch lite) genommen!?

In der fhem-sudoers-Datei steht da nun "fhem ALL=(ALL) NOPASSWD: ALL" oder die auf "service beschränkte" Variante?

EDIT: das nur interessehalber... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo Joachim,

habe die sleep Zeit auf 5 sec erhöht, dies war wohl das Thema. Der Status in der SYS-Homebridge springt jetzt nicht mehr um, sondern bleibt richtig erhalten.
Es ist die Funktion vollständig da.

Zur Vervollständigung stellt ich die wichtigsten Informationen nochmals dar.
Auch für eine Dokumention für die nächsten Hilfesuchenden . Falls gewünscht, so kann ich auch an den wikis entwas ergänzen. Dazu müsstet ihr euch aber melden.

Die endgültig funktionierende Homebridge-Service Datei dar:

pi@raspberrypi:~ $ cat nano /etc/init.d/homebridge
cat: nano: No such file or directory
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules

PID=`pidof homebridge`
homeBridgeUser="fhem"
fhemHost=127.0.0.1          #FHEM Server (Masterinstanz)
fhemHostTelnetPort=7072     #TelnetPort der FHEM Instanz
fhemDefine="SYS_Homebridge"

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is already running"
else
        su - $homeBridgeUser -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"

        perl /opt/fhem/fhem.pl 7072   "setreading $fhemDefine info Homebridge starting"
#       perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge starting"
        perl /opt/fhem/fhem.pl 7072  "set $fhemDefine on"
#       perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort  "set $fhemDefine on"
        sleep 5
        $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
else
        kill $PID
        echo "Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
        sleep 5
        $0 status
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge running as PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"
else
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0



Die sudoers sieht jetzt so aus , die von mir auskommentierten Zeilen habe ich gelöscht:

pi@raspberrypi:~ $ sudo cat /etc/sudoers
#
# 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




# 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


Im directory /etc/sudoers steht jetzt:

pi@raspberrypi:/etc/sudoers.d $ sudo cat 20_fhem-nopasswd
fhem ALL=(ALL) NOPASSWD: ALL


die config.json sieht bei mir folgendermassen aus:

fhem@raspberrypi:/etc/sudoers.d$ cat ~/.homebridge/config.json
{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },

    "platforms": [
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8085",
            "auth": {"user": "xxxxxxxx", "pass": "xxxxxxxxxx"},
            "filter": "room=Homekit"
        }
     ],

    "accessories": []
}


Womit habe ich gekämpft:

1. Es gibt 2 wikis zu dem Thema, der Übergang zwischen den beiden Papieren ist für mich etwas schwierig gewesen. Es war für mich auch aus der wiki nicht wirklich ersichtlich, welche Einzelschritte es gibt und wie man die Einzelschritte dann auch einzeln überprüfen kann. Auch sah ich nicht wirklich, ob es so ok war.
2. Der Hinweis , dass man bei einer nicht funktionierenden Anmeldung der IOS Geräte an homebridge durch die Abänderung des "username" an den letzten beiden Stellen von "30" auf "31" das Thema lösen kann. steht aber so klar im Wiki (homebridge_einrichten)
3. meine sudoers war nicht ok, ich denke, die Lösung war nur dich einen Linix Freak (Joachim  8) 8)) machbar.
4. Nei Telnetport hatte "allowed_ " und hatte den Zugang von Homebridge nach FHEM blockiert
5. Im Service Homebridge ist die sleep Zeit mit 2 sec etwas langsam. Habe diese auf 5 sec erhöht.

Wer war die Lösung zu meinen Themen: Joachim..  8) 8). Ohne ihn , kein Erfolg möglich.

Meine Kenntnisse reichen für solche Installationen nicht aus, habe aber viel dazugelernt. Das war meine Erkenntns.  Heute Abend mach ich mir eine Sicherung der Flash-Karte komplett.

Joachim, man muss ja nach vorne schauen, wie schwierig ist eine Alexa Installation im Vergleich zu homebridge?

Status setze ich auf gelöst, dieses Theats, nicht Alexa  :D :D

Merci nochmals









MadMax-FHEM

Bitte gerne!

Evtl. nächstes Mal früher auf die Tipps hören ;)
(das mit sudoers und wie man das macht stand schon ein paar mal ;)  )

Wenn du was gelernt hast: prima!

Das soll ja Sinn der Sache sein (neben dem, dass es funktioniert)...

Bzgl. Wiki überarbeiten: ist immer eine gute Idee von jemandem, der das gerade durchgemacht hat ;)

Bevor du "Code" von dir postest: noch mal ein wenig "aufräumen" ;)

Eventuell zunächst mal "nur" Anmerkungen die du denkst dass sie helfen, wenn du dir bzgl. anderer Dinge unsicher bist...
Oder am Ende einen "Fehlerbehebungs-Teil" wo du einfach schilderst was passieren kann, also Fehlerbeschreibung und dann die Lösung oder mögliche Lösungen/Ursachen beschreibst.



Bzgl. alexa-fhem Installation:

ist im Prinzip auf Seiten des PI "identisch".
Wie erwähnt ist/war homebridge die Basis.

Allerdings ist es auf Seiten Amazon (noch) etwas sehr kompliziert!
Du kannst ja mal einen Blick ins Wiki werfen: https://wiki.fhem.de/wiki/Alexa-Fhem

Und auch mal durch den Problem-Thread querpflügen: https://forum.fhem.de/index.php/topic,81324.msg733986.html#msg733986 bzw. https://forum.fhem.de/index.php/topic,60452.msg518412.html#msg518412

Allerdings ist Licht am Horizont: https://forum.fhem.de/index.php/topic,82860.msg749944.html#msg749944 bzw. https://forum.fhem.de/index.php/topic,94817.0.html


Alternativ, wenn es "nur" um Ein-/Ausschalten von Geräten geht (vergleichbar mit dem Smart Home Skill), dann evtl. mal die ha-bridge anschauen. Deutlich einfacher... https://forum.fhem.de/index.php/topic,66920.msg582889.html#msg582889

Wenn du aber mehr mit Alexa willst (wobei mittlerweile über Routinen echt viel geht und dann reicht am Ende ein "schaltbares Gerät" egal ob per alexa-fhem oder ha-bridge) brauchst du den Custom Skill und das geht nur mit alexa-fhem.

Ich habe beides laufen (also alexa-fhem und ha-bridge) und nutze den Custom Skill kaum und für das Wenige könnte ich auch mittels Routinen drauf verzichten.
Ich werde mir die neue Möglichkeit der Skillanbindung (die gerade aufgebaut wird) mal ansehen oder dann evtl. ganz auf ha-bridge gehen...

ha-bridge läuft bei meiner Freundin seit längerem ohne Probleme...
...ohne Portfreigabe/-weiterleitung etc. (war mir wichtig, weil ich dort nicht so oft bin und nicht so schnell handeln kann [wie bei mir])...
Und Geräte Ein-/Ausschalten reicht dort ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)