Homebridge - Autostart

Begonnen von pi3hacker, 03 Oktober 2016, 21:01:51

Vorheriges Thema - Nächstes Thema

DeeSPe

Zitat von: Helmi55 am 02 Februar 2017, 18:16:47
Servus
Ja, die config.json gehört ins Verzeichnis .homebridge - nur wohin gehört dieses.
Oder bring ich da jetzt was mit der init.d durcheinander.
Als ich mit der Installation begonnen habe, war ich der Meinung in /opt/fhem/.homebridge
Kopf raucht.....

Dann gib doch mal mehr Beef! 8)
Wie hast Du denn HB eingerichtet? init.d oder systemd? Nach welchen Howto? Oder selbst irgendwie probiert?

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

Helmi55

#46
Servus
nach dem https://wiki.fhem.de/wiki/Homebridge_einrichten

Und gerade auf einen meiner Fehler gekommen (hoffe ich) bezüglich init.d
Code einfügen (startet den Homebridge Server als Benutzer "pi" und nimmt an, dass sich .homebridge/config.json in seinem Homeverzeichnis unter /home/pi/ befindet):

Hab jetzt unter /home/pi kopiert
pi@raspberrypi:~ $ sudo journalctl -f -u homebridge
-- Logs begin at Don 2017-02-02 18:28:38 CET. --
Feb 02 18:28:52 raspberrypi su[610]: pam_unix(su:session): session closed for user fhem
Feb 02 18:28:52 raspberrypi homebridge[583]: Homebridge starting
Feb 02 18:28:54 raspberrypi homebridge[583]: Homebridge is running PID 624
Feb 02 18:28:54 raspberrypi systemd[1]: Started LSB: Start daemon at boot time for homebridge.
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** Please fix your application to use the native API of Avahi!
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** Please fix your application to use the native API of Avahi!
Feb 02 18:28:55 raspberrypi node[624]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>


Am iPhone sehe ich FHEM aber lässt sich nicht mit meinen code der Json koppeln??

Ja jetzt fehlt mir anscheinend noch die  /etc/default/homebridge
Die muss ich noch befüllen? - Was gehört hier bitte genau hinein??
Danke
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

DeeSPe

Wie Du richtig erkannt hast benutzt Du init.d!
Wie Du aber falsch erkannt hast und ich aber schon weiter oben geschrieben habe gehört dann die Datei dort hin:
/home/pi/.homebridge/config.json

Eine "/etc/default/homebridge" benötigst Du nur für systemd.

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

Helmi55

Ok werde prüfen - im Moment habe ich fhem gekillt.
Kann nicht mehr drauf zugreifen. Da war ich gründlich 😡😡😡
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

hensing

Bekomme meine Installation irgendwie nicht gestartet:

Folgendes Protokoll....

*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
[2017-02-05 15:51:53] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-fhem' since we already loaded the same plugin from '/usr/lib/node_modules/homebridge-fhem'.
[2017-02-05 15:51:53] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-http' since we already loaded the same plugin from '/usr/lib/node_modules/homebridge-http'.
[2017-02-05 15:51:53] Loaded plugin: homebridge-fhem
homebridge API version: 2.1
this homebridge-fhem 0.2.71
[2017-02-05 15:51:53] Registering platform 'homebridge-fhem.FHEM'
[2017-02-05 15:51:53] ---
[2017-02-05 15:51:53] Loaded plugin: homebridge-http
[2017-02-05 15:51:53] Registering accessory 'homebridge-http.Http'
[2017-02-05 15:51:53] ---
[2017-02-05 15:51:54] Loaded plugin: homebridge-philipshue
[2017-02-05 15:51:54] Registering platform 'homebridge-philipshue.PhilipsHue'
[2017-02-05 15:51:54] ---
[2017-02-05 15:51:54] Loaded config.json with 0 accessories and 1 platforms.
[2017-02-05 15:51:54] ---
[2017-02-05 15:51:54] Loading 1 platforms...
[2017-02-05 15:51:54] [FHEM] Initializing FHEM platform...
[2017-02-05 15:51:54] [FHEM] Checking devices and attributes...
[2017-02-05 15:51:54] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2017-02-05 15:51:54] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=siri&XHR=1
starting longpoll: https://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1486306314838
[2017-02-05 15:51:54] [FHEM] Fetching FHEM devices...
[2017-02-05 15:51:54] [FHEM] fetching: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=Homekit&XHR=1
[2017-02-05 15:51:54] Loading 0 accessories...
Server error: Error: listen EADDRINUSE :::8282
Server listening on: http://<ip>:8283


Was kann ich tun, um den Fehler zu lokalisieren ?

FÜR JEDEN RAT DANKBAR !!!

Gruss
HENSING

Wernieman

Port kontrolliert?
Server error: Error: listen EADDRINUSE :::8282
Server listening on: http://<ip>:8283
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

justme1968

und wie kommst du drauf das etwas nicht startet?

die meldung sagt nur das port 8282 belegt ist und statt dessen port 8283 verwendet wird.

das log sollte danach noch weiter gehen.

gruss
  andre

ps: wenn du homebridge-fhem verwendest gibt es keinen grund homebridge-philipshue zusätzlich zu verwenden. das gilt für homebridge-http vermutlich auch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wernieman

Ich habe doch nur gefragt, ob der die Portangaben kontrolliert hat .. ich habe nicht gesagt, das es die Lösung ist ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

justme1968

die frage war garnicht an dich gerichtet :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hensing

TOLL. dass ich so schnell Euer Feedback bekomme...

Was heißt Port kontrollieren ?!?

mein FHEM läuft unter http://<ip>/fhem:8083

Das Log endet an der Stelle ...
Server listening on: http://<ip>:8283


Gruss
Hensing



justme1968

und was passiert wenn du per browser auf die url zugreifst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Helmi55

Guten Abend
so, ich habe nun mein Testumgebung neu aufgesetzt.
Hier meine Mitschrift für das Aufsetzen von Homebridge - leider ohne Erfolg.
Ich sehe zwar im iPhone "Homebridge" aber beim Verbinden bekomme ich die Meldung dass der Code falsch ist:

System Updaten - dann
sudo apt-get install build-essential libssl-dev

NodeJS V5 installieren
sudo curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

sudo apt-get install -y nodejs

Python, g++, MDNS installieren
sudo apt-get install python g++ libavahi-compat-libdnssd-dev


Homebridge installieren

sudo npm install -g --unsafe-perm homebridge

SHIM installieren
sudo npm install -g homebridge-fhem

Homebridge aktualisieren

sudo npm -g outdated
sudo npm -g update homebridge
sudo npm -g update homebridge-fhem

sudo nano /etc/passwd
Folgendes ändern:
(diesen Wert: fhem:x:999:20::/opt/fhem:/bin/false
in diesen ändern: fhem:x:999:20::/opt/fhem:/bin/bash
Das ist schon alles, nun kann man den Nutzer wechseln)

sudo su - fhem

sudo chmod -R 777 /home/pi

Mit FileZilla das Verzeichnis .homebridge erstellen

sudo nano /home/pi/.homebridge/config.json

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": ,,xxx.xx.xxx"
    },

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

    "accessories": []
}




Homebridge autom. Starten

Sudo nano /etc/init.d/homebridge
Folgendes einfügen

#!/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`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
else
        su - pi -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"
        $0 status
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"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0


Diesen Autostart aktivieren (Rechte)
sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults

Starten
sudo service homebridge start


Zum überprüfen
sudo journalctl -f -u homebridge







Hier das Ergebnis vom Pi

Last login: Sun Feb  5 17:50:29 2017 from 192.168.1.5
pi@Fhem-Wien:~ $ sudo service homebridge start
pi@Fhem-Wien:~ $ sudo journalctl -f -u homebridge
-- Logs begin at Son 2017-02-05 17:47:55 CET. --
Feb 05 17:48:07 Fhem-Wien homebridge[583]: Homebridge starting
Feb 05 17:48:07 Fhem-Wien homebridge[583]: Homebridge is not running
Feb 05 17:48:07 Fhem-Wien systemd[1]: Started LSB: Start daemon at boot time for homebridge.
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi.
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** Please fix your application to use the native API of Avahi!
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs>
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** Please fix your application to use the native API of Avahi!
Feb 05 17:48:09 Fhem-Wien nodejs[619]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister>
Feb 05 17:53:39 Fhem-Wien systemd[1]: Started LSB: Start daemon at boot time for homebridge.



Muss ich in der "sudoers" auch noch was tun? = fhem ALL=(ALL) NOPASSWD:/etc/init.d/homebridge.  ???

Ja, das Verzeichnis .homebridge liegt unter /home/pi mit der config.json
{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "111-22-333"
    },

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

    "accessories": []
}


Wie von Dan oben beschrieben, habe ich .homebridge nach var/lib kopiert.

Was habe ich nun bei der ganzen Installation falsch gemacht, ich hoffe meine Doku gibt euch Aufschluss

Herzlichen Dank.......
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

hensing

es erscheint eine seite auf der 2 einträge bzw. unterverzeichnisse verlinkt sind

- cached
- subscriptions

unter "cached" finde ich

home

https://127.0.0.1:8083
  connected: true; connects: 1
  received: 0; received total: 0


unter "subscriptions" finde ich

home

subscriptions: {}


Gruss
Hensing

justme1968

@Helmi55: wenn 111-22-333 wirklich deine pin ist liegt es vermutlich daran. homekit erlaubt so einfache kombinationen nicht.

@hensing: wie vermutet: das bedeutet homebridge läuft. schmeiss mal alles ausser homebridge-fhem aus deiner config, dann schau ob die fhem konfiguration korrekt ist und ob der filter passt. schau ob du die urls die beim start ausgegebene werden von hand aufrufen kannst.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hensing

@justme1968  Welche Config soll ich wie ändern .. stehe gerade mal auf dem Schlauch ???