[Gelöst] Homebridge Installation , komme nicht weiter

Begonnen von UweUwe, 23 Dezember 2018, 21:37:43

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo MadMax FHEM,
da bin ich wieder. Wollte jetzt Alexa installieren. Ist dazu jetzt ein guter Zeitpunkt und über welchen Weg soll man gehen?
Du hast mit bei Homebridge gute und nützliche Tips gegeben. Jetzt will ich von Start an auf das richtige Pferd setzen.
Merci

Uwe

MadMax-FHEM

Hallo,

ob jetzt (schon) der richtige Zeitpunkt ist weiß ich nicht (so genau).

Aber alexa-fhem (wenn man "nur" den Smart Home Skill braucht/will) ging noch nie so einfach :)

Siehe:
https://wiki.fhem.de/wiki/FHEM_Connector
https://forum.fhem.de/index.php/topic,95272.msg880923.html#msg880923

Es wird halt grad noch (in den letzten Zügen) dran gearbeitet...
...ich hab's auf einem Testsystem schon laufen.
Ging fix und problemlos...
...aber wie gesagt: neues Testsystem (nackt ohne irgendwas ;)  )

Werde aber (wenn es keine "Baustelle" mehr ist) umziehen auf mein aktuelles System und auch ein paar andere Dinge von meinem "Haupt-Testsystem" auf mein "Hauptsystem" ziehen...

Je nachdem wieviel Lust/Energie du hast evtl. noch etwas "nachbasteln" zu müssen oder wie gern du es jetzt schon haben willst: (etwas) warten (und "beobachten"/lesen) oder (sofort) los legen ;)

oder irgendwas dazwischen ;)

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)

Nomo

Und Jahre später scheitere auch ich kläglich am Homebridge Service. Vielleicht hat Joachim ja noch etwas Geduld oder interessiert sich für das Rätsel:

Installiert nach Anleitung
  https://wiki.fhem.de/wiki/Homebridge_einrichten und
  https://wiki.fhem.de/wiki/Homebridge_Start_und_Status_in_FHEM

Im Terminal läuft Homebridge prima, als user fhem. Soweit so gut.
Das init.d/homebridge script macht aber irgendwie faxen:
stefan@raspberrypi:/opt/fhem/log $ sudo service homebridge status
● homebridge.service - LSB: Start daemon at boot time for homebridge
     Loaded: loaded (/etc/init.d/homebridge; generated)
     Active: active (exited) since Tue 2023-03-14 14:50:20 CET; 7h ago
       Docs: man:systemd-sysv-generator(8)
    Process: 547 ExecStart=/etc/init.d/homebridge start (code=exited, status=0/SUCCESS)
        CPU: 2.726s

Mär 14 14:50:09 raspberrypi systemd[1]: Starting LSB: Start daemon at boot time for homebridge...
Mär 14 14:50:11 raspberrypi su[563]: (to fhem) root on none
Mär 14 14:50:11 raspberrypi su[563]: pam_unix(su-l:session): session opened for user fhem(uid=999) by (uid=0)
Mär 14 14:50:15 raspberrypi homebridge[547]: Homebridge starting
Mär 14 14:50:16 raspberrypi homebridge[704]: Can't connect to 127.0.0.1:7072
Mär 14 14:50:16 raspberrypi homebridge[738]: Can't connect to 127.0.0.1:7072
Mär 14 14:50:18 raspberrypi homebridge[930]: Homebridge is not running
Mär 14 14:50:19 raspberrypi homebridge[935]: Can't connect to 127.0.0.1:7072
Mär 14 14:50:20 raspberrypi homebridge[1042]: Can't connect to 127.0.0.1:7072
Mär 14 14:50:20 raspberrypi systemd[1]: Started LSB: Start daemon at boot time for homebridge.


Script:
#!/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"
export LOGPATH="/opt/fhem/log"

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 > $LOGPATH/homebridge-`date +%Y-%m`.log 2>&1 &"
#        su - fhem -c "/usr/local/bin/homebridge > /opt/fhem/log/homebridge.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


Die Log-Datei wird ums v@#@! nicht vom service angelegt.
Ein sudo -n journalctl -o cat -n 2500 -f -u homebridge
zeigt keine Änderungen wenn ich manuell "sudo service homebridge start" eingebe.
:-\
Wenn ich das script direkt aufrufe kommt:
stefan@raspberrypi:~ $ sudo /etc/init.d/homebridge start
Homebridge starting
Homebridge is not running


Auch wird keine /opt/fhem/log/homebridge2023-03.log Datei erzeugt.

die Permissions der init.d sind identisch mit den anderen Dateien (755 root.root) und die links in die rcX.d Verzeichnisse sehen auch gut aus.

Es ist mir ein Rätsel, warum der Service weder startet noch die log Datei angelegt wird. Permission der /opt/fhem/log lässt natürlich das Anlegen zu...


MadMax-FHEM

#48
Was hast du für ein System?

init.d ist doch schon lange "ersetzt" durch systemd...

Und ich habe noch nicht gesehen, dass homebridge als User fhem läuft...
Zeig das doch mal.

Wenn das tatsächlich geht, dann sollte ein Unit-File (systemd) auch gehen...

EDIT:
Was ich nich sehe:
Zitat
Mär 14 14:50:16 raspberrypi homebridge[704]: Can't connect to 127.0.0.1:7072

Steht im Startscript, also dass Telnet verwendet wird. Bin jetzt aber kein Homebridgenutzer/-kenner...
Bei einer neuen Installation von fhem wird kein Telnet mehr angelegt.

define telnetPort telnet 7072 global

In deinem Fall (local host 127.0.0.1) kann wohl auch das global im define weg. Ist aus Sicherheitssicht besser, da dann telnet nur lokal geht.
Ob Telnet generell (noch) gebraucht wird von Homebridge oder "nur", weil das in deinem (alten) Script steht: keine Ahnung...

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)

DeeSPe

Der Homebridge Dienst sollte per systemd bereits seit Jahren so eingerichtet werden:
https://gist.github.com/johannrichard/0ad0de1feb6adb9eb61a/

Dann einfach da Modul 98_sysemd benutzen um den Dienst aus FHEM heraus steuerbar zu machen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Nomo

Zitat von: MadMax-FHEM am 15 März 2023, 07:05:03
Was hast du für ein System?

init.d ist doch schon lange "ersetzt" durch systemd...

Und ich habe noch nicht gesehen, dass homebridge als User fhem läuft...
Zeig das doch mal.

Wenn das tatsächlich geht, dann sollte ein Unit-File (systemd) auch gehen...

EDIT:
Was ich nich sehe:
Steht im Startscript, also dass Telnet verwendet wird. Bin jetzt aber kein Homebridgenutzer/-kenner...
Bei einer neuen Installation von fhem wird kein Telnet mehr angelegt.

define telnetPort telnet 7072 global

In deinem Fall (local host 127.0.0.1) kann wohl auch das global im define weg. Ist aus Sicherheitssicht besser, da dann telnet nur lokal geht.
Ob Telnet generell (noch) gebraucht wird von Homebridge oder "nur", weil das in deinem (alten) Script steht: keine Ahnung...

Gruß, Joachim

Ich habe nach einem SD-Fehler ein neu aufgesetztes Raspbian System mit bullseye.
Ich habe mich ein paar Jahre nicht mehr mit den aktuellen Entwicklungen bei fhem beschäftigt und habe noch andere Hobbies, man möge mir das verzeihen.
Ich finde die Idee gut, dass man Wissen sammelt und viele sich an der Aktualisierung beteiligen. Insofern finde ich das fhem wiki grundsätzlich gut.
Natürlich schaue ich bei den Artikeln, wann die zuletzt bearbeitet wurden. Bei der Homebridge Installations Anleitung steht da: Diese Seite wurde zuletzt am 26. Januar 2022 um 08:59 Uhr bearbeitet
Wenn man in der hem-Gemeinde einhellig der Meinung ist, dass diese Art der Installation völlig veraltet ist, wäre es vielleicht sinnvoll, diesen Artikel zumindest mit einem Hinweis zu versehen, dass er veraltet ist.
Man erspart damit Mitmenschen sinnlos Zeit zu verschwenden.

Aber wenn das heute mein Linux-Update-Trainings-Tag ist, soll es halt so sein.

Homebridge läuft grundsätzlich unter dem User fhem, wie in der Anleitung beschrieben. Ist getestet, bei Bedarf schicke ich den Beweis.

Telnet geht grundsätzlich, kann ich auf dem CLI nachvollziehen. Global habe ich entfernt, danke für den Hinweis.

Ja, der erste Telnet geht ins Leere, da läuft der fhem wohl noch nicht. Ist ein grundsätzliches Problem, keine Ahnung warum das noch niemandem aufgefallen ist. Das erklärt aber nicht, warum auch ein späterer Start des services fehlschlägt. Und warum die f**ing Logdatei nicht angelegt wird.
Selbst wenn ich die telnets auskommentiere, startet die Homebridge nicht und es wird auch keine Logdatei angelegt. Also what am I missing here????

Ok, ich lese mich dann mal in System ein, wenn niemand eine Idee hat..


MadMax-FHEM

Mal die Anmerkungen von mir und DeeSPe bzgl. systemd vs. initd (was du ja "vehement" nutzt/nutzen willst ;)  ) beachten...
(Seit Stretch ist systemd statt initd)

Zitat
Homebridge läuft grundsätzlich unter dem User fhem, wie in der Anleitung beschrieben. Ist getestet, bei Bedarf schicke ich den Beweis.

Ja wäre hilfreich, wie geschrieben.

Weil wenn das geht und man (wir) sieht wie du es startest, kann man (wir) evtl. ein systemd Unit-File erstellen.
(wenn du es nicht zeigst: Unit-File selber machen)

Aber wie geschrieben: evtl. hilft ja bereits der Link von DeeSPe...

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)

Nomo

Zitat von: MadMax-FHEM am 15 März 2023, 12:18:24
Mal die Anmerkungen von mir und DeeSPe bzgl. systemd vs. initd (was du ja "vehement" nutzt/nutzen willst ;)  ) beachten...
(Seit Stretch ist systemd statt initd)

Ja wäre hilfreich, wie geschrieben.

Weil wenn das geht und man (wir) sieht wie du es startest, kann man (wir) evtl. ein systemd Unit-File erstellen.
(wenn du es nicht zeigst: Unit-File selber machen)

Aber wie geschrieben: evtl. hilft ja bereits der Link von DeeSPe...

Gruß, Joachim

Sorry wenn das so rüberkommt, als wollte ich unbedingt init.d verwenden. Ich wollte nur darauf hinweisen, dass das so in der "aktuellen" Anleitung steht. Und natürlich wurmt es mich, wenn ich nicht verstehe, warum ein einfaches script nicht das tut, was da drin steht. Init.d ist abgehakt, ich gelobe systemd zu verwenden 😊


stefan@raspberrypi:~ $ sudo -u fhem bash
fhem@raspberrypi:/home/stefan$ [b]homebridge >> /opt/fhem/log/homebridge.log 2>&1 &
[/b][1] 8669
fhem@raspberrypi:/home/stefan$ pidof homebridge
fhem@raspberrypi:/home/stefan$ pidof homebridge
8669
fhem@raspberrypi:/home/stefan$ tail -f /opt/fhem/log/homebridge.log
                                                     
                                                     
                                                     
Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    │ 012-45-696 │     
    └────────────┘     
                       
[15.3.2023, 14:38:08] Homebridge v1.6.0 (HAP v0.11.0) (Homebridge) is running on port 51826.
^C
fhem@raspberrypi:/home/stefan$


Und das Beste: Ich kann mit dem iPhone sogar die fhem devices steuern. Läuft also UND funktioniert. Ein Traum 😊

Wenn wir jetzt einen Homebridge.service neu bauen (und das funktioniert auch 😊 ), wie bekommen wir das in die Anleitung? Kann das nur ein Owner, gibt es eine Autoren-Gruppe?

Aber eins nach dem anderen 😜


MadMax-FHEM

Zitat von: Nomo am 15 März 2023, 14:59:47
Sorry wenn das so rüberkommt, als wollte ich unbedingt init.d verwenden. Ich wollte nur darauf hinweisen, dass das so in der "aktuellen" Anleitung steht. Und natürlich wurmt es mich, wenn ich nicht verstehe, warum ein einfaches script nicht das tut, was da drin steht. Init.d ist abgehakt, ich gelobe systemd zu verwenden 😊

Alles gut ;-)

Wollte nur sehen, ob User fhem das mit dem init.d Script tut oder einfach direkt homebridge aufruft...

Ich bin jetzt auch kein Unit-File Spezialist (habe nur ein oder 2 für "simple Dinge" angelegt), würde aber mal folgendes ins Rennen werfen (angelehnt an meine simplen Unit-Files und an das verlinkte etc.)


sudo nano /etc/systemd/system/homebridge.service


Da dann folgendes pasten:


[Unit]
Description=Node.js HomeKit Server
After=network-online.target

[Service]
Type=simple
User=fhem
# EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge >> /opt/fhem/log/homebridge.log 2>&1
Restart=on-failure
RestartSec=10
#KillMode=process

[Install]
WantedBy=multi-user.target


Vorausgesetzt homebridge liegt unter /usr/local/bin:


which hombridge


oder auch

whereis homebridge


Dann folgendes


sudo systemctl daemon-reload

sudo systemctl enable homebridge.service


Und dann mittels


sudo systemctl start homebridge.service


Und dann mal sehen.

Bei einigen Punkten muss man probieren:

# EnvironmentFile=/etc/default/homebridge
Ich habe es mal auskommentiert, mal sehen...

#KillMode=process
Müsste ich mich einlesen, auch mal auskommentiert...

Restart=on-failure
RestartSec=10
Gut da muss man halt sehen was "vernünftig" ist/besser passt und ob 10sec ausreichen.
Man könnte das auch mal weglassen (auskommentieren), wäre ja nur, dass nachgestartet wird, falls mal was wäre...

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)

Nomo

Zitat von: MadMax-FHEM am 15 März 2023, 15:31:49
Alles gut ;-)

Wollte nur sehen, ob User fhem das mit dem init.d Script tut oder einfach direkt homebridge aufruft...

Ich bin jetzt auch kein Unit-File Spezialist (habe nur ein oder 2 für "simple Dinge" angelegt), würde aber mal folgendes ins Rennen werfen (angelehnt an meine simplen Unit-Files und an das verlinkte etc.)


sudo nano /etc/systemd/system/homebridge.service


Da dann folgendes pasten:


[Unit]
Description=Node.js HomeKit Server
After=network-online.target

[Service]
Type=simple
User=fhem
# EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge >> /opt/fhem/log/homebridge.log 2>&1
Restart=on-failure
RestartSec=10
#KillMode=process

[Install]
WantedBy=multi-user.target


Vorausgesetzt homebridge liegt unter /usr/local/bin:


which hombridge


oder auch

whereis homebridge


Dann folgendes


sudo systemctl daemon-reload

sudo systemctl enable homebridge.service


Und dann mittels


sudo systemctl start homebridge.service


Und dann mal sehen.

Bei einigen Punkten muss man probieren:

# EnvironmentFile=/etc/default/homebridge
Ich habe es mal auskommentiert, mal sehen...

#KillMode=process
Müsste ich mich einlesen, auch mal auskommentiert...

Restart=on-failure
RestartSec=10
Gut da muss man halt sehen was "vernünftig" ist/besser passt und ob 10sec ausreichen.
Man könnte das auch mal weglassen (auskommentieren), wäre ja nur, dass nachgestartet wird, falls mal was wäre...

Viel Erfolg, Joachim

stefan@raspberrypi:~ $ sudo nano /etc/systemd/system/homebridge.service
stefan@raspberrypi:~ $ sudo systemctl daemon-reload
stefan@raspberrypi:~ $ sudo systemctl enable homebridge.service
Synchronizing state of homebridge.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable homebridge
stefan@raspberrypi:~ $ sudo systemctl start homebridge.service
stefan@raspberrypi:~ $ pidof homebridge
stefan@raspberrypi:~ $

😕
Logfile wird auch nicht angefasst.
sudo -n journalctl -o cat -n 2500 -f -u homebridge  schweigt still

Habe das Logfile mal weggemacht, dafür ist ja das journal da?
Geht auch nicht 😕😕

Vielleicht war das mit dem homebridgemapping für heute genug Erfolg 😊

Bei Amazon gibt es gerade die Ring Intercom für 49€. Deswegen überhaupt Homebridge, weil es da ein plugin gibt 😜

Laut ChatGPT ist das ja total einfach, das in fhem einzubinden:
Um Ring Intercom in FHEM zu integrieren, gibt es verschiedene Ansätze, je nachdem, welche Art von Integration Sie suchen. Hier sind einige Möglichkeiten, wie Sie Ring Intercom in FHEM einbinden können:

Verwendung des offiziellen Ring-APIs: Ring bietet eine offizielle API an, die es Ihnen ermöglicht, auf Ihre Ring-Geräte zuzugreifen und sie zu steuern. Sie können das FHEM-Modul "FHEM::Ring" verwenden, um diese API zu integrieren und auf Ihre Ring Intercom-Geräte zuzugreifen. Weitere Informationen zur Verwendung des Moduls finden Sie in der FHEM-Dokumentation.
Verwendung von ioBroker: ioBroker ist eine alternative Open-Source-Plattform für die Hausautomatisierung, die Ring-Integrationen unterstützt. Sie können ioBroker in FHEM einbinden und die Ring-Adapter von ioBroker verwenden, um auf Ihre Ring Intercom-Geräte zuzugreifen.
Verwendung von Node-RED: Node-RED ist eine visuelle Programmierplattform, die es Ihnen ermöglicht, auf einfache Weise Datenflüsse zwischen verschiedenen Geräten und Diensten zu erstellen. Sie können Node-RED in FHEM einbinden und einen Node-RED-Fluss erstellen, der auf Ihre Ring Intercom-Geräte zugreift und sie steuert.
In jedem Fall sollten Sie sicherstellen, dass Sie die erforderlichen API-Schlüssel und Authentifizierungsdaten haben, um auf Ihre Ring-Intercom-Geräte zugreifen zu können. Außerdem sollten Sie die Dokumentationen und Anleitungen sorgfältig lesen, um sicherzustellen, dass Sie die Integration korrekt durchführen.

;D



MadMax-FHEM

Hast du nach dem Start des Services mal den Status abgefragt?

Also sudo systemctl status homebridge.service ?

Mal die Alternativen probiert?

Wie genau sieht dein Unit File aus:

cat /etc/systemd/system/homebridge.service

Wenn du etwas am Unit File änderst das daemon reload nicht vergessen...

Was ist die Ausgabe von ls - la /etc/systemd/system

init.d hast du deaktiviert/gelöscht?

Sonst hast du ja 2x homebridge als Service...
Evtl. das Unit File mal anders nennen, nur um Namenskonflikt bzgl. Service zu vermeiden...

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)

Nomo

Zitat von: MadMax-FHEM am 15 März 2023, 17:20:04
Hast du nach dem Start des Services mal den Status abgefragt?

Also sudo systemctl status homebridge.service ?

stefan@raspberrypi:~ $ sudo systemctl status homebridge.service
● homebridge.service - Node.js HomeKit Server
     Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2023-03-15 10:55:44 CET; 7h ago
      Tasks: 0 (limit: 1596)
        CPU: 0
     CGroup: /system.slice/homebridge.service

Mär 15 10:55:34 raspberrypi systemd[1]: Starting LSB: Start daemon at boot time for homebridge...
Mär 15 10:55:35 raspberrypi su[554]: (to fhem) root on none
Mär 15 10:55:36 raspberrypi su[554]: pam_unix(su-l:session): session opened for user fhem(uid=999) by (uid=0)
Mär 15 10:55:40 raspberrypi homebridge[543]: Homebridge starting
Mär 15 10:55:42 raspberrypi homebridge[824]: Homebridge is not running
Mär 15 10:55:43 raspberrypi homebridge[827]: Can't connect to 127.0.0.1:7072
Mär 15 10:55:44 raspberrypi homebridge[944]: Can't connect to 127.0.0.1:7072
Mär 15 10:55:44 raspberrypi systemd[1]: Started LSB: Start daemon at boot time for homebridge.
stefan@raspberrypi:~ $

Komisch, das mit dem "start" hat nicht wirklich gut funktioniert.

Zitat von: MadMax-FHEM am 15 März 2023, 17:20:04
Mal die Alternativen probiert?
Welche?

Zitat von: MadMax-FHEM am 15 März 2023, 17:20:04
Wie genau sieht dein Unit File aus:

cat /etc/systemd/system/homebridge.service

Wenn du etwas am Unit File änderst das daemon reload nicht vergessen...
[Unit]
Description=Node.js HomeKit Server
After=network-online.target

[Service]
Type=simple
User=fhem
# EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge
Restart=on-failure
RestartSec=10
#KillMode=process

[Install]
WantedBy=multi-user.target


Zitat von: MadMax-FHEM am 15 März 2023, 17:20:04Was ist die Ausgabe von ls - la /etc/systemd/system
lrwxrwxrwx  1 root root   35 22. Sep 02:09 display-manager.service -> /lib/systemd/system/lightdm.service
-rw-r--r--  1 root root  456 15. Feb 02:16 fhem.service
drwxr-xr-x  2 root root 4096 15. Feb 01:54 getty.target.wants
drwxr-xr-x  2 root root 4096 22. Sep 02:14 getty@tty1.service.d
drwxr-xr-x  2 root root 4096 22. Sep 02:07 graphical.target.wants
drwxr-xr-x  2 root root 4096 22. Sep 02:06 halt.target.wants
-rw-r--r--  1 root root  380 15. Mär 17:56 homebridge.service
-rw-r--r--  1 root root 1024 15. Mär 16:16 .homebridge.servicesudo.swp
drwxr-xr-x  2 root root 4096 15. Mär 16:24 multi-user.target.wants
drwxr-xr-x  2 root root 4096 22. Sep 02:07 network-online.target.wants


Zitat von: MadMax-FHEM am 15 März 2023, 17:20:04init.d hast du deaktiviert/gelöscht?

Sonst hast du ja 2x homebridge als Service...
Evtl. das Unit File mal anders nennen, nur um Namenskonflikt bzgl. Service zu vermeiden...

stefan@raspberrypi:~ $ mv /etc/init.d/homebridge /etc/init.d/homebridge.obsolete
mv: das Verschieben von '/etc/init.d/homebridge' nach '/etc/init.d/homebridge.obsolete' ist nicht möglich: Keine Berechtigung
stefan@raspberrypi:~ $ sudo mv /etc/init.d/homebridge /etc/init.d/homebridge.obsolete
stefan@raspberrypi:~ $ sudo update-rc.d homebridge remove
stefan@raspberrypi:~ $ ls -la /etc/rc?.d/*homebridge
ls: Zugriff auf '/etc/rc?.d/*homebridge' nicht möglich: Datei oder Verzeichnis nicht gefunden
stefan@raspberrypi:~ $ sudo systemctl daemon-reload
stefan@raspberrypi:~ $ sudo systemctl enable homebridge.service
stefan@raspberrypi:~ $ sudo systemctl start homebridge.service
stefan@raspberrypi:~ $ sudo systemctl status homebridge.service
● homebridge.service - Node.js HomeKit Server
     Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2023-03-15 10:55:44 CET; 7h ago
      Tasks: 0 (limit: 1596)
        CPU: 0
     CGroup: /system.slice/homebridge.service

Mär 15 10:55:34 raspberrypi systemd[1]: Starting LSB: Start daemon at boot time for homebridge...
Mär 15 10:55:35 raspberrypi su[554]: (to fhem) root on none
Mär 15 10:55:36 raspberrypi su[554]: pam_unix(su-l:session): session opened for user fhem(uid=999) by (uid=0)
Mär 15 10:55:40 raspberrypi homebridge[543]: Homebridge starting
Mär 15 10:55:42 raspberrypi homebridge[824]: Homebridge is not running
Mär 15 10:55:43 raspberrypi homebridge[827]: Can't connect to 127.0.0.1:7072
Mär 15 10:55:44 raspberrypi homebridge[944]: Can't connect to 127.0.0.1:7072
Mär 15 10:55:44 raspberrypi systemd[1]: Started LSB: Start daemon at boot time for homebridge.
stefan@raspberrypi:~ $


?

MadMax-FHEM

#57
Wo kommt das her:

-rw-r--r--  1 root root 1024 15. Mär 16:16 .homebridge.servicesudo.swp
EDIT: eine "Sicherungskopie" vom Editieren? Wie hast du die Unit-Datei angelegt? Wie/womit kopiert? Was kommt bei cat /etc/systemd/system/homebridge.service


Es sieht so aus als würde immer noch init.d genutzt.

Gib doch dem Unit-File mal einen anderen Namen und nat. den Service unter dem neuen Namen neu registrieren.
EDIT:
sudo mv /etc/systemd/system homebridge.service /etc/systemd/system/test.service

Vorher den "alten" Dienst mal disablen und dann nat. den "neuen" Dienst wieder aktivieren:
sudo systemctl disable homebridge.service
dann "rename", also sudo mv ...
und dann
sudo systemctl enable test.service
Und nat. mal starten: sudo systemctl start test.service
Besser aber mal mit dem "allersimpelsten" Unit-File, siehe nächster Post.
Also evtl. mal disablen und homebridge.service löschen und neu anlegen unter test.service...

Stimmt der Pfad zu homebridge?

Wie hast du kopiert bzw. die Unit Datei angelegt?

Sieht irgendwie eigenartig aus, was du hier "präsentierst"...

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

Werf doch mal alles raus bis auf ExecStart und Install...

Bzw. probier mal folgendes:


[Unit]
Description=Node.js HomeKit Server

[Service]
User=fhem
Group=dialout
# EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge

[Install]
WantedBy=multi-user.target


Und prüfen, ob homebridge auch unter /usr/local/bin liegt, also das was von Console aus als User fhem geht.

Also mal als User fhem genau das genau so (mit Pfad) starten...

Wenn das geht, das (simple) Unit File aber nicht, dann weiß ich nicht weiter bzw. ist wohl irgendwas "schräg" bei dir...

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)

Nomo

Zitat von: MadMax-FHEM am 15 März 2023, 19:33:50
Wo kommt das her:

-rw-r--r--  1 root root 1024 15. Mär 16:16 .homebridge.servicesudo.swp
EDIT: eine "Sicherungskopie" vom Editieren? Wie hast du die Unit-Datei angelegt? Wie/womit kopiert?
Ja komisch. Habe mir im Terminal irgendwie ein Sonderzeichen eingefangen und nicht mehr gesehen, das ich tippe bzw. reinkopiere. Da habe ich wohl durch mehrmals nano starten diese Datei provoziert. Nano hatte mich gefragt, ob ich die Datei wirklich mehrmals öffnen möchte...

Datei ist gelöscht, alles gut.

Zitat von: MadMax-FHEM am 15 März 2023, 19:33:50



Es sieht so aus als würde immer noch init.d genutzt.

Gib doch dem Unit-File mal einen anderen Namen und nat. den Service unter dem neuen Namen neu registrieren.
EDIT:
sudo mv /etc/systemd/system homebridge.service /etc/systemd/system/test.service

Vorher den "alten" Dienst mal disablen und dann nat. den "neuen" Dienst wieder aktivieren:
sudo systemctl disable homebridge.service
dann "rename", also sudo mv ...
und dann
sudo systemctl enable test.service
Und nat. mal starten: sudo systemctl start test.service
Besser aber mal mit dem "allersimpelsten" Unit-File, siehe nächster Post.
Also evtl. mal disablen und homebridge.service löschen und neu anlegen unter test.service...

Stimmt der Pfad zu homebridge?

Wie hast du kopiert bzw. die Unit Datei angelegt?

Sieht irgendwie eigenartig aus, was du hier "präsentierst"...


Was soll ich sagen, ich habe mal neu gebootet und es geht. Eigentlich untypisch für Linux, das ist eigentlich der Grund, warum ich Windows nicht so mag. Aber diesmal war irgendwas schräg, auch nach dem Löschen/umbenennen der init.d Datei etc.

Jetzt erscheint auch wieder der log im systemd Journal. 😊
Wer braucht da schon eine eigene Log-Datei...

Alle Fragen die Du noch hattest, hatte ich schon vorher geprüft, aber das wußtest Du ja nicht.

VIELEN DANK!

Ich bin mir fast sicher, dass es auch mit init.d funktioniert hätte, aber ich habe da jetzt auch keine Lust mehr zu suchen.
Was machen wir jetzt mit https://wiki.fhem.de/wiki/Homebridge_Start_und_Status_in_FHEM ? Wer darf das ändern?