[Gelöst] Homebridge Installation , komme nicht weiter

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

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
Kein Zugriffsproblem sondern falscher Ort für die config.json

Die config.json muss im Home des startenden Users und dort dann im .homebridge Verzeichnis liegen.

Also für den User "fhem" (home: /opt/fhem):

/opt/fhem/.homebridge

Für den User "pi" (home: /home/pi):

/home/pi/.homebridge

Also zuerst klären/entscheiden/festlegen welcher User nun starten soll...
Als User "pi" scheint es ja von der Console aus zu laufen bzw. sich starten zu lassen...


Genau die Stelle wo du "anpassen/ersetzen" sollst bzgl. Logging dort steht doch der User drin...
...aktuell halt noch der User "fhem".

su - "fhem" bedeutet: logge User "fhem" ein bzw. führe als User "fhem" aus...
...su: switch user

Also:
/etc/init.d/homebridge

Ist die "Service-Datei" womit homebridge beim Booten als Service gestartet wird.
(bitte mal nach den Begriffen googeln und lernen! Sonst wird es echt schwer mit Erläutern)

Also nix in der config.json!


In der config.json ist dann die Konfiguration von homebridge hinterlegt.
Also die Athentifizierung externer Aufrufe und der Zugriff auf fhem zum Auslesen und Steuern der Geräte...

Dort muss halt der Zugriff auf dein fhem passen (sollte aber später im Log stehen, wenn was nicht passt und du das Logging mal "aktiviert" hast).
Also user/passwort falls eingerichtet und eben auch ob per http oder https etc.

Besser vielleicht mal zum Test einen weiteren Webzugang ohne alles einrichten und den mal in die config.json eintragen.
Wenn das dann geht, kann man ja die Sicherheit hochschrauben...
Wenn man denkt, dass es nötig ist.
Aber wenn kein Port nach außen auf ist sollte es im eigenen Netz nicht wirklich nötig sein (außer man will Benutzer im eigenen Netz "aussperren") und bei externem Zugriff macht es ohne https überhaupt keinen Sinn...
...aber wir schweifen ab... ;)


Also entscheiden/probieren mit welchem User homebridge laufen soll und dann entsprechend die config.json platzieren und halt im Startscript (/etc/init.d/homebridge) den entsprechenden User eintragen...

Mehr kann ich nicht mehr erläutern...
...evtl. mal hier schauen (da ist noch mal einiges erläutert / aber aufpassen: nicht plötzlich auf systemd wechseln!! Bitte nur lesen und lernen/verstehen! Sonst geht zuviel durcheinander ;)  ): https://forum.fhem.de/index.php/topic,93540.msg861872.html#msg861872

EDIT: vielleicht noch mal ein "ls -la" posten vom Verzeichnis wo homebridge "installiert" ist bzw. wohin es "entpackt" wurde und du dann npm install aufgerufen hast (nehme an das sollte ähnlich wie bei alexa-fhem sein)... Und auch mal "sagen" wo das denn ist... Damit lässt sich dann eher entscheiden welcher User starten sollte. Ansonsten kann es sein, dass die Rechte nicht passen und dann wird es "anstrengend"... ;)

EDIT2: zum editieren der Datei /etc/init.d/homebridge wirst du sudo brauchen. Also beispielsweise mit: sudo nano /etc/init.d/homebridge  / zum Eintragen der Erweiterung um "Logging"...

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,

hab mich jetzt mal mit deinen Antworten, vielen Dank, und das auch noch am Heiligen Abend, beschäft und versuche dies jtzt mal nacheinander abzuarbeiten.

Zuerst die config.json bis zum manuellen Start der homebridge.
Ich möchte es aus dem user fhem machen und nicht pi.
die config.json steht auch korrekt in /opt/fhem/.homebridge/config.json

Folgender Inhalt:
      "port":51826,
      "pin":"031-45-154"
    },

    "platforms":[
      {
        "platform":"FHEM",
        "name":"fhem",
        "server":"127.0.0.1",
        "port":"8085",
        "ssl": true,
        "auth": {"user": "xxxxx", "pass": "xxxx"},
        "filter":"room=Homekit"
       }
      ],
      "accessories":[]
     }


Habe einige Tests gefahren, homebridge zu start,  ohne die "ssl":true Zeile, bekomme dann aber Authorisation error.

Mit der jetztigen Version des config.json kommen folgende Informationen an der Konsole:

      pi@raspberrypi:~ $ su fhem
Password:
fhem@raspberrypi:/home/pi$ homebridge
[12/25/2018, 12:25:40 PM] Loaded config.json with 0 accessories and 1 platforms.
[12/25/2018, 12:25:40 PM] ---
[12/25/2018, 12:25:40 PM] Loaded plugin: homebridge-fhem
homebridge API version: 2.2
this is homebridge-fhem 0.4.5
[12/25/2018, 12:25:40 PM] Registering platform 'homebridge-fhem.FHEM'
[12/25/2018, 12:25:40 PM] ---
[12/25/2018, 12:25:40 PM] Loading 1 platforms...
[12/25/2018, 12:25:40 PM] [fhem] Initializing FHEM platform...
starting longpoll: https://127.0.0.1:8085/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1545737141223
[12/25/2018, 12:25:41 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:41 PM] Loading 0 accessories...
Server listening on: http://<ip>:8282
[12/25/2018, 12:25:41 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:42 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:42 PM] [fhem] Fetching FHEM devices...


Und das Fetching FHEM devices hört nicht mehr auf .. , bis dass ich Kitty abwürge und mich neu anmelde.

in FHEM habe ich siri und den Raum Homekit angelegt. Ein Homematic Gerät liegt in dem Raum.

Kann es sein , dass es die Gross/Kleinschreibung ist .. fhem, FHEM ..











binford6000

ZitatEin Homematic Gerät liegt in dem Raum.
Ist das Attribut "genericDeviceType" mit zB. switch gesetzt?

UweUwe

Sorry, zu schnell abgeschickt.

Habe es auch schon in der config.json mit "name" : "FHEM" versucht, anstatt "name" : "fhem".

dann läuft die Zeile

[12/25/2018, 12:25:41 PM] [fhem] Fetching FHEM devices...

leicht verändert mit

[12/25/2018, 12:25:41 PM] [FHEM] Fetching FHEM devices...

durch.

Ich denke, solange ich hier keine funktionierendem Homebridge Start hinbekomme, brauche ich nicht weiterzumachen.  Aber wo ist mein Thema? Schreibrechte?

Uwe


binford6000

#19
      pi@raspberrypi:~ $ su fhem
Password:
fhem@raspberrypi:/home/pi$ homebridge
[12/25/2018, 12:25:40 PM] Loaded config.json with 0 accessories and 1 platforms.
[12/25/2018, 12:25:40 PM] ---
[12/25/2018, 12:25:40 PM] Loaded plugin: homebridge-fhem
homebridge API version: 2.2
this is homebridge-fhem 0.4.5
[12/25/2018, 12:25:40 PM] Registering platform 'homebridge-fhem.FHEM'
[12/25/2018, 12:25:40 PM] ---
[12/25/2018, 12:25:40 PM] Loading 1 platforms...
[12/25/2018, 12:25:40 PM] [fhem] Initializing FHEM platform...
starting longpoll: https://127.0.0.1:8085/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1545737141223
[12/25/2018, 12:25:41 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:41 PM] Loading 0 accessories...
Server listening on: http://<ip>:8282
[12/25/2018, 12:25:41 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:42 PM] [fhem] Fetching FHEM devices...
[12/25/2018, 12:25:42 PM] [fhem] Fetching FHEM devices...


Homebridge startet doch manuell und sucht nach Geräten. Findet aber keine. Deswegen genericDeviceType checken...
Der Raum für Homebridge muss natürlich auch gesetzt sein.

VG Sebastian

binford6000

#20
Hast du auch ein siri Gerät unter fhem?
Internals:
   NAME       siri
   NR         147
   STATE      active
   TYPE       siri
   homebridge-fhem version 0.4.5
Attributes:
   devStateIcon active:ios-on-blue
   icon       it_smartphone
   room       90_System->92_Webdevices


Wenn homebridge läuft sollte hier im Reading homebridge-fhem die korrekte Version auftauchen.

VG Sebastian

UweUwe

Hallo binford6000

ne, ich habe in der Raum Homekit aktuell nur einen Homematic Rauchmelder HM_SEC_SD. Hier wird in der Attribut Liste dieses genericDeviceType gar nicht angeboten.

soll ich es mit attr   xx genericDeviceType switch  "besetzten"?


binford6000

Zitatne, ich habe in der Raum Homekit aktuell nur einen Homematic Rauchmelder HM_SEC_SD. Hier wird in der Attribut Liste dieses genericDeviceType gar nicht angeboten.

attr Rauchmelder userattr genericDeviceType
attr Rauchmelder genericDeviceType security


Keine Ahnung ob das was bringt. Habe nur Aktoren und Leuchtmittel in homebridge drin...
Hast du keine Aktoren oder Leuchtmittel?

VG Sebastian

UweUwe

Hallo binford 600,

ich bin gerade an einer Neuinstallation und hab erstmal nur die Rauchmelder drin. Ich will zuerst alle Dienste klarziehen, bevor ich an die Geräte gehen.

Das Attribut genericDeviceType auf die Rauchmelder habe ich hinbekommen, bringt aber beim homebridge start keine Änderung. Leider


MadMax-FHEM

#24
Warum willst du homebridge unter "fhem" laufen lassen, wenn es zumindest unter "pi" startet...

Da machen Tests mit "pi" auf der Console eigentlich keinen Sinn...
...bzw. bleiben dann nachher nur Probleme beim "Ummodeln"...

Wie geschrieben für Tests mal einen simplen (neuen) Webzugang einrichten...

Und vielleicht auch mal einen simplen Dummy einrichten.
Beispiel aus dem alexa-fhem Wiki sollte passen (bis auf alexaName etc.)...

Damit sind etliche "Problemquellen" ausgeschlossen...
Wenn das dann geht kann man ja stückchenweise ändern etc.

Auch mal den verlinkten Thread angeschaut!?

EDIT: was soll ein Rauchmelder denn mit homebridge tun? Bzw. homebridge mit dem Rauchmelder? ;)

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,

dann werde ich deinem Rat mal folgen.
Das alles dauert bei mir leider, da ich nicht der Experte bin..





MadMax-FHEM

Dauern ist kein Problem (wie du dem anderen Thread entnehmen kannst ;)  )...

Lieber langsam und in Ruhe!
Lieber 3x lesen und überlegen...

Viel Erfolg!

Achja: poste doch mal 'ls -la' vom "Installationsverzeichnis" und nenne auch mal den Pfad (also dort wo du homebridge "entpackt" hast und npm install ausgeführt hast [sofern das bei homebridge so ähnlich wie bei alexa-fhem ist]). Dann sieht man wie es ist/wäre, wenn man auf einen anderen User umstellen will...

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,

ich bin nach dem wiki.Homebridge_einrichten vorgegangen. Die Installation habe ich hier durchgeführt:

npm install -g -- unsafe-perm homebridge
und
npm install -g homebridge-fhem


Das Ergebnis von ls -la lautet:

pi@raspberrypi:~ $ ls -la
total 18660
drwxrwxrwx 8 pi   pi       4096 Dec 23 13:45 .
drwxr-xr-x 3 root root     4096 Nov 13 14:09 ..
-rw------- 1 pi   pi      17791 Dec 25 15:46 .bash_history
-rw-r--r-- 1 pi   pi        220 Nov 13 14:09 .bash_logout
-rw-r--r-- 1 pi   pi       3523 Nov 13 14:09 .bashrc
drwx------ 3 pi   pi       4096 Dec 23 13:40 .config
-rw-r--r-- 1 pi   pi      88408 Dec 12 14:54 coprocessor_update.eq3
-rw-r--r-- 1 pi   pi      88408 Dec 12 14:55 coprocessor_update.eq3.1
-rw-r--r-- 1 root root 18774592 Oct  7 19:03 fhem-5.9.deb
drwxr-xr-x 4 pi   pi       4096 Dec 23 13:45 .homebridge
-rw------- 1 pi   pi         48 Dec 20 20:52 .mysql_history
drwxr-xr-x 2 pi   pi       4096 Dec  8 08:03 .nano
drwxr-xr-x 5 root root     4096 Dec 23 13:23 node_modules
drwxr-xr-x 4 pi   pi       4096 Dec 23 13:40 .npm
-rw-r--r-- 1 root root    71093 Dec 23 13:23 package-lock.json
-rw-r--r-- 1 pi   pi        675 Nov 13 14:09 .profile
drwx------ 2 pi   pi       4096 Dec 23 11:36 .ssh
-rw-r--r-- 1 pi   pi        180 Dec 12 14:54 .wget-hsts


Du willst aber sicherlich noch:

pi@raspberrypi:~ $ cd /opt/fhem/.homebridge/
pi@raspberrypi:/opt/fhem/.homebridge $ ls -la
total 20
drwxr-xr-x  4 fhem dialout 4096 Dec 25 12:15 .
drwxrwxrwx 15 fhem dialout 4096 Dec 23 16:05 ..
drwxr-xr-x  2 fhem dialout 4096 Dec 23 19:53 accessories
-rw-r--r--  1 fhem dialout  439 Dec 25 12:10 config.json
drwxr-xr-x  2 fhem dialout 4096 Dec 23 19:53 persist


Uwe


MadMax-FHEM

#28
Wie du vielleicht selber sehen kannst:

Die Insrallationsdateien (also das "Programm" homebridge) "gehören" dem User "pi"...

...die Konfiguration liegt und "gehört" dem User "fhem"...

Ich würde (da ja wie geschrieben es von Console mit User "pi" läuft) die Sachen unter /opt/fhem/.homebridge nach /home/pi/.homebridge verschieben:

sudo mv /opt/fhem/.homebridge /home/pi/

Und danach die Rechte anpassen:

sudo chown -R pi:pi /home/pi/.homebridge


Und dann im Startscript (/etc/init.d/homebridge) "fhem" durch "pi" ersetzen (und auch gleich die 2 Einträge/Ergänzungen bzgl. Logging einfügen)


Hast du nach "nackt" /home/pi "installiert"...
...hätte man vorher evtl. ein Verzeichnis /home/pi/homebridge (nicht verwechseln mit: /home/pi/.homebridge !!) anlegen können, dann wäre (für später) klar, was nun zu homebridge gehört und was "einfach so" schon im Home-Verzeichnis vom User "pi" war... ;)


Dann (wie auch schon geschrieben) einen Webzugang "ohne alles" (also einfach define HomeBridgeWeb FHEMWEB 8088 global   / Port nat. gegebenenfalls anpassen) den dann in der config.json (jetzt unter /home/pi/.homebridge ;)  ) eintragen...

Einen "Testdummy" anlegen, etwa so:


define Lampe dummy
attr Lampe genericDeviceType switch
attr setList on off
attr room homebridge


Ob für homebridge weitere Attribute notwendig sind weiß ich leider nicht (bei alexa-fhem gibt es ja "spezielle" wie beispielsweise alexaName etc.).

Das Attribut room muss nat. zum "Filter" in der config.json passen.

Und dann mal Vollgas! ;)



Oder die Konfiguration lassen und die Installation auf den User fhem "umbiegen.
Ist aber (verm.) deutlich aufwändiger und ich kann da nicht viel helfen, dazu kenne ich mich mit node-js zu wenig aus.

Minimal müsstest du die "Berechtigungen" auf den User "fhem" "umbiegen", da aber dank der (für mich nicht anders erkennbaren) "nackten" Installation nach /home/pi/ nicht (für mich) so klar erkennbar ist was da alles dazu gehört: schwierig...
(der Befehl dazu würde so lauten: sudo chown -R fhem:dialout <Dateien/Verzeichnisse>  und da wird's halt schwer, also bei: <Dateien/Verzeichnisse>)

Und ob das reicht weiß ich nicht...
...wie geschrieben zu wenig Ahnung bzgl. node...

Besser wäre natürlich noch vorher die Dateien/Verzeichnisse (hier wieder: welche genau -> keine Ahnung) irgendwo nach /opt/fhem "verschieben", damit alles sauber beieinander liegt...
(evtl. halt nach /opt/fhem/homebridge   nicht verwechseln mit /opt/home/.homebridge)


So, noch ausführlicher kann ich nicht...
...alles weitere: Linux lernen, node-js einarbeiten und die Zusammenhänge (Installation/Programm, Konfiguration, Servicestart usw.)

EDIT: wie geschrieben (mehrfach) würde ich es einfach sauber unter "pi" zum Laufen bringen (alexa-fhem läuft bei mir auch unter dem User "pi" kann ganz normal per "Service-Steuerung" aus fhem heraus gestartet etc. werden). Ich verstehe da den Sinn (immer noch nicht) es unter "fhem" laufen zu lassen (bzw. beim "Umarbeiten" am Ende eine komplett kaputte Installation zu haben)... Aber: jedem sein System... ;)

EDIT2: mal den verlinkten Thread angesehen!? Da ist so ziemlich alles haarklein erläutert... ;)

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 ..
habe jetzt die homebridge manuell am Laufen und kann über ios mit dem Dummy sprechen.
Ich sag jetzt nicht,wo mein Fehler war, er war trivial. und mehr als beschämend.
Ich habe alles unter fhem gelassen, uns von dort aus läuft es auch user fhem.
So hatte ich es ja auch gemäss Wiki machen sollen.. dies war der Grund für fhem.

Folgendes verwirrt mich im WIKI "Homebridge einrichten". Man lässt einen bis Ende "Manueller Start" die homebridge auf fhem einrichten und ab "Homebridge automatisch starten" sagt man :: startet den Homebridge Server als Benutzer "pi" und nimmt an, das sich .homebridge/config.json in seinem Homeverzeichnis unter /home/pi/befindet..
Irgendwie verwirrt dies den Anfänger.. (dieses Wochenende bekomme ich LINUX Kurs).
Ich habe jetzt die config.json entsprechend kopiert.

Nächstes Verständisthema habe ich mit hombridge Konfigurationsatei:

Es gibt ja 2 Wikis: Homebridge Start und Status in FHEM & Homebridge_einrichten .

Die Vorlage für den bomebridge "service" ist nahezu gleich.

In der Vorlage Wiki Homebridge Start und Staus in FHEM gibt es zusätzliche 4 Zeilen:

homeBridgeUser="fhem"
fhemHost=127.0.0.1
fhemhostTelnetPort=7072
fhemDefine"Sys_Homebridge"

Soll ich diese Zeilen in den Service "homebridge" einfügen.
==> ich hab ihn eingefügt.

Mein status mit homebridge ist jetzt folgendermassen:

Starte ich von PI "homebridge" so fährt homebridge hoch und zeigt mir das Scan-Bild und die Console bleibt blockiert bis Ctrl c

sudo service homebridge start bringt:

pi@raspberrypi:/ $ sudo service homebridge start
Warning: homebridge.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for homebridge.service failed because the control process exited with error code.
See "systemctl status homebridge.service" and "journalctl -xe" for details.
pi@raspberrypi:/ $


Sudo /etc/init.d/homebridge start bringt:

pi@raspberrypi:/ $ sudo /etc/init.d/homebridge start
Homebridge starting
Homebridge is running PID 1364
pi@raspberrypi:/ $


Bin etwas ratlos