[Gelöst] Homebridge Installation für Unbegabten

Begonnen von miggun, 21 November 2018, 21:14:31

Vorheriges Thema - Nächstes Thema

miggun

Auch wenn gelöst.
Für andere Neulinge, die nicht weiter kommen. Das Problem war, dass FHEM mit serviced nichts anfangen konnte.
Dafür muss das  98_serviced.pm auf den Raspberry gebracht werden und dort in das richtige Verzeichnis ( FHEM-Ordner) wo die anderen *.pm-Dateien auch liegen.

Leider funktioniert es bei mir trotzdem noch nicht. Bei gestarteter Homebridge über den Putty läuft es, lässt sich aber über FHEM  nicht stoppen.

https://forum.fhem.de/index.php/topic,79952.msg719659.html#msg719659
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

Das mit dem Kopieren bzw. wie das Modul einzurichten ist steht aber ja im verlinkten Thread ;)

Steht etwas im fhem Log!?

Evtl. das Gleiche wie das hier: https://forum.fhem.de/index.php/topic,60452.msg863201.html#msg863201  ?

(fehlender Eintrag bzgl. sudo ohne Passwort für User fhem in sudoers bzw. neu eine Datei [ähnlich die für den User pi] im Verzeichnis /etc/sudoers.d/ )

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)

miggun

Naja, ich habe es mehrfach gelesen, aber nicht gesehen, dass da eine Datei hinter hängt.
Somit hat es bei mir etwas länger gedauert, bis verstanden habe, das etwas fehlt.
Danach musste ich raus bekommen, wie ich die Datei aus dem Forum auf denRasPi bekkomme. Der Prozess hat gedauert.

2018-11-26 06:58:09 serviced homebridge stopping
2018-11-26 06:58:14 serviced homebridge status
2018-11-26 06:58:14 serviced homebridge error: none
2018-11-26 06:58:14 serviced homebridge status: Active: failed (Result: exit-code) since Mon 2018-11-26 06:58:14 CET; 150ms ago
2018-11-26 06:58:14 serviced homebridge failed


Das gibt das Log aus, wenn ich Stop klicke. Homebridge stopped nicht.

Und meine sudoers hatte ich auch abgeändert.  Die sieht wie folgt aus.

  GNU nano 2.7.4               Datei: /etc/sudoers.tmp

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

fhem    ALL=(ALL) NOPASSWD:/bin/systemctl * homebridge

# 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
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

#63
Ich habe jetzt die sudoers noch einmal geändert und fhem unter sudo geschrieben.

  GNU nano 2.7.4               Datei: /etc/sudoers.tmp

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

# 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
fhem    ALL=(ALL) NOPASSWD:/bin/systemctl * homebridge

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

#includedir /etc/sudoers.d


Ein und ausschalten funktioniert nur manchaml (sehr komisch. entweder es geht oder es geht nicht).

Wenn ich über FHEM stoppe bekomme ich

Nov 26 08:40:22 PiFHEM01 systemd[1]: Stopping Homebridge Server...
Nov 26 08:40:22 PiFHEM01 homebridge[1107]: [26.11.2018, 08:40:22] Got SIGTERM, shutting down Homebridge...
Nov 26 08:40:27 PiFHEM01 systemd[1]: homebridge.service: Main process exited, code=exited, status=143/n/a
Nov 26 08:40:27 PiFHEM01 systemd[1]: Stopped Homebridge Server.
Nov 26 08:40:27 PiFHEM01 systemd[1]: homebridge.service: Unit entered failed state.
Nov 26 08:40:27 PiFHEM01 systemd[1]: homebridge.service: Failed with result 'exit-code'.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

#64
Geht es ohne Fehler in der Console?

Aso:

sudo systemctl homebridge stop

Wenn du zum Test mal einen generellen Eintrag nopasswd all in die sudoers machst...

EDIT: bzw. wird/soll ja nicht mehr die sudoers Datei bearbeitet werden, sondern eine Datei im Verzeichnis /etc/sudoers.d/ angelegt/bearbeitet werden... Für den User pi sollte dort bereits eine liegen. Die kann man z.B. kopieren und als Basis nutzen. sudo cp 010_pi-nopasswd 010_fhem-nopasswd    Wobei das nicht das Problem ist/sein dürfte...

Ansonsten ist es wohl ein Thema für den Serviced Thread...
Also mal schsuen, ob da schon mal so ein Problem war, wenn nicht halt deins dort posten...

Evtl. musst du auch noch gewisse Attribute beim Serviced Modul setzen...

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)

miggun

#65
Ich glaube, jetzt habe ich es.
Ich habe die Anleitung von Helmi55 noch zusätzlich angewendet.
https://forum.fhem.de/index.php/topic,58467.msg580760.html#msg580760
Homebridge mit Autostart einrichten

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


Node V6 installieren
sudo curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

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


System neu starten

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

Rechte
sudo chmod -R 777 /home/pi

Neustart danach Homebridge - Enter



Dadurch wird unter /home/pi das  Verzeichnis  .Homebridge angelegt


sudo nano ~/.homebridge/config.json

Inhalt der 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": []
}


sudo chmod 777 /home/pi/.homebridge


Autostart einrichten. (systemd)

https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi#configuration

https://gist.github.com/johannrichard/0ad0de1feb6adb9eb61a/



Download the two files and place homebridge under /etc/default and homebridge.service under /etc/systemd/system on your Raspberry Pi.

Datei /etc/systemd/system/homebridge.service editieren:

ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS

Datei /etc/default/homebridge editieren:

HOMEBRIDGE_OPTS=-U /var/lib/homebridge


User einrichten
sudo useradd --system homebridge

Rechte
sudo chmod -R 777 /var/lib

Und Verzeichnis homebridge unter /var/lib erstellen
Die config.json (mit accessories und persist) hierher kopieren.

Dem User homebridge die Rechte auf /var/lib/homebridge einrichten

sudo chown homebridge /var/lib/homebridge
sudo chmod 775 /var/lib/homebridge

Dem User homebridge die Rechte auf /home/pi/homebridge einrichten
sudo chown homebridge /home/pi/.homebridge
sudo chmod 775 /home/pi/.homebridge

sudo chown homebridge:homebridge /var/lib/homebridge -R



Beim ersten Start

sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo systemctl start homebridge

Check
sudo systemctl status homebridge







Homebridge händisch starten bzw stoppen
sudo service homebridge start
sudo service homebridge stop


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



Jetzt funktioiert das starten und stoppen, sowie der Restart von der Console aus, sowie aus FHEM. einzig die Rückmeldung Stop kommt nicht sauber. Da bekomme ich die Rückmeldung Failed.
Aber die Homebridge ist gestoppt und lässt sich über beides, also console, sowie FHEM starten.
Jetzt weiß ich nicht, ob das failed nicht sogar richtig ist.
Einzig die Anzeige in der iPhone Home-App kommt sehr verzögert, ca 2min.

Hier der log aus FHEM, wenn ich Stop drücke.

2018-11-26 10:57:57 serviced homebridge stopping
2018-11-26 10:58:03 serviced homebridge status
2018-11-26 10:58:03 serviced homebridge error: none
2018-11-26 10:58:03 serviced homebridge status: Active: failed (Result: exit-code) since Mon 2018-11-26 10:58:02 CET; 151ms ago
2018-11-26 10:58:03 serviced homebridge failed
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

An der Stelle (noch mal) der Hinweis: einfach irgendwelche Linux-Kommandos in die Shell klopfen ohne zu wissen/prüfen WAS man da tut halte ich für gefährlich!!

Das ganze Rechtesetzen etc. auf 777 (jeder darf alles) ist nicht wirklich eine gute Idee...
Da kann man gleich das ganze System unter root laufen lassen...
...dann gibt es auch keine Berechtigungsprobleme...
...aber klug ist es nicht...
...und steht witzigerweise in totalem Gegensatz zu deinem sehr restriktiven Eintrag in der sudoers... ;)

Und ich denke die Hälfte von dem Zeug hätte auch gereicht wahrscheinlich sogar weniger...

Sowas mache ich maximal beim ersten Versuch ein Modul etc. zum Laufen zu kriegen (gut du hier auch ;)  ) aber auch dabei versuche ich schon zu verstehen was gemacht wird und versuche zu entscheiden, ob es wirklich sinnvoll/notwendig scheint...
Das aber erst mal auf einem Testsystem und dann versuche aber rauszukriegen was ich tatsächlich brauche und nur das wandert dann (gut dokumentiert) auf das Hauptsystem...

Das Hauptsystem sollte/muss stabil laufen (meine Meinung) und sollte nicht "wild ruminstalliert" sein...

Wie geschrieben: nur meine Meinung...

EDIT: wenn das failed "nur" im Modul kommt etc. da gibt es Attribute im Modul bzgl. "Auswertung" der Rückmeldungen des Service...

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)

miggun

Ja, das ist gerade das Problem, das jetzt erst mal die Rechte blöd vergeben sind.
Aus dem Grund habe ich auch erst mal jeden Schritt dokumentiert, um Ihn dann auch rückgängig machen zu können.
Noch hängt ja bei mir kein Schaltbares gerät dran, somit ein Testsystem.
Wenn es richtig los geht, also die Hardware da ist, werde ich das ganze noch mal ganz neu aufsetzen, damit wirklich alles sauber ist.
Was ich gerade mache ist wirklich der versuch zu lernen, Informationen umzusetzen und deren Wirkung zu verstehen.

Nov 26 10:58:02 PiFHEM01 systemd[1]: Stopped Homebridge Server.
Nov 26 10:58:02 PiFHEM01 systemd[1]: homebridge.service: Unit entered failed state.
Nov 26 10:58:02 PiFHEM01 systemd[1]: homebridge.service: Failed with result 'exit-code'.


Das ist die Rückmeldung aus der Konsole, somit ist Faild in FHEM als Rückmeldung Deckungsgleich mit der Konsole.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

Ich sehe schon: "Trockenübung" ohne Geräte ist ein gutes Training! ;)

Wenn du es so machst, dann kann/brauche ich ja diesbezüglich nichts mehr schreiben... ;)

Evtl. noch nen 2ten PI als Hauptsystem...
...wird vermutlich nicht das letzte Mal "etwas ausprobieren" gewesen sein, glaub mir.
Es gibt sooo viele Ideen, Module, etc. ;)

Und selbst "alte Hasen" brauchen für manche Ideen/Module etc. mehr als einen Anlauf...
Und nicht jede Idee kommt bei mir auf's Hauptsystem...

Ich habe mindestens immer so 1, 2, 3 "Spielwiesen"... ;)


So, jetzt aber: wenn dich das failed stört, dann evtl. mal die Attribute im Modul anschauen. Dort kann man angeben was eine erwartete Rückmeldung ist. Wenn also der Service bei stop failed zurückliefert, kann man evtl. sogar das als "erwartetes Ergebnis" einstellen. Somit wäre das Modul "zufrieden"...

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)

miggun

Ui, das mit dem zweiten Pi ist eine sehr gute Idee. Die OP am offenen Herzen ist immer doof, besonders das neu Aufsetzen ist sehr zeitraubend.
Dann könnte ich tatsächlich eins laufen lassen und wenn ich bis zum Ende rumgespielt habe....was ja bei mir immer was länger braucht... und alles funktioniert, kann ich dann erst ans scharfe System gehen.

Das mit dem failed bei Stop werde ich wohl so machen. weil tatsächlich ist die Homebridge ja deaktiviert.

Vielen Dank
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

Zitat von: miggun am 26 November 2018, 14:05:16
Ui, das mit dem zweiten Pi ist eine sehr gute Idee.
Bei der Gelegenheit hast du dann auch die Möglichkeit darüber nachzudenken, ob es wirklich ein Pi als (Zweit?)-System sein soll...
Als Testsystem ist ein Pi kaum zu schlagen, aber als Hauptsystem ist die Plattform eben ein Kompromis, das hatten wir an anderer Stelle ja schon diskutiert.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

miggun

Was wäre denn die geeignete Plattform, wenn ich jetzt investiere.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

Hängt von vielen Faktoren ab, angefangen beim Budget ;) .

Viele sind mit einem NUC glücklich (Linux-Kompabilität beachten!), ich würde auch eher auf lüfterose PC-Technik mit SSD setzen. Gibts neu nicht nur als als NUC: BRIX, Zotac ... und gebraucht z.B. als ThinClient oder Notebook.
Gibt aber auch Einplatinen-Lösungen mit SSD oder eMMC (Rock64, Le Potato oder andere Platformen, die offiziell bei armbian gelistet sind, der LattePanda (?) basiert auf x86 und kann reguläres Debian).

Der Möglichkeiten sind viele :) , ich hatte auch schon eine TV-Box umgeflasht und eine Zeitlang als FHEM-Server genutzt (das soll jetzt aber bitte nicht als empfolene Lösung verstanden werden, das war eher eine Machbarkeitsstudie ::) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

miggun

Oh, das sind viele Lösungen.
Budget sollte klein gehalten werden. Du weißt ja wie begrenzt meine Fähigkeiten sind. Wenn ich später mal soweit bin, dass ich ohne jede Kleinigkeit vorgekaut zu bekommen, etwas eingestellt bekomme, dann kann ich sicher auch das Budget aufstocken.
Also viel teurer als ein RasPi sollte es nicht sein und es sollte  gleich zu bedienen sein, damit ich das überhaupt hin bekomme.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

Beta-User

Dann würde ich einen T610 empfehlen (hp ThinClient); kostet ca. 50 Euro gebraucht, Installationsanleitung ist im Wiki zu finden; wenn du magst, kannst du die SSD gegen eine größere ersetzen, das kostet etwa nochmal denselben Betrag (je nach Größe), hat aber den Vorteil, dass das x86-System auf jeder anderen x86-Platform laufen sollte (maW: Du könntest die SSD rausnehmen und z.B. in einen Zotac oder BRIX stecken; das Ding sollte trotzdem rennen...).

Dabei habe ich "gleich zu bedienen" mit
- "die Installation sollte ähnlich einfach sein" und
- "die Wartung geht via ssh mit sudo"
übersetzt.

GPIO's und ähnlichen Unfug wie beim Pi gibt es da nicht, dafür aber gleich eine Hardwareuhr. Das Einbinden z.B. von Steckmodulen für den Pi geht dann natürlich auch anders, z.B. mit einem USB-Seriell Wandler (steht im Wiki, der entsprechende Artikel müßte im Thin-Client Artikel verlinkt sein; da kannst du nachsehen, ob das für dich löttechnisch ein Problem ist).

Einarbeiten in Linux mußt du dich so oder so, dein aktueller Wissensstand ist mAn. nicht ausreichend!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors