Installation des ROON http-api zwecks Homebridge-Bedienung über homebridge-http Plugin

  • Ich müsste hier einmal kurz die unendliche Weisheit dieser community anzapfen im Hinblick auf Linux Kenntnisse:


    Ich nutze seit einiger Zeit zur Steuerung meiner diversen Musik-Streamer und Musikbibliotheks-Verwaltung die Roon Software (http://www.roonlabs.com).


    Hierfür gibt es zwar kein "natives" homebridge-plugin, aber ein http-api, das unter node.js läuft. Das hätte ich gern auf meine Homebridge-Raspi installiert, dann könnte ich die diversen Befehle (Play/Pause, nächster Titel, voriger Titel etc..) über das homebridge-http plugin entsprechend an das Roon API weiterreichen.


    Das Api findet sich hier: https://github.com/st0g1e/roon-extension-http-api


    Wenn ich so installiere, wie dort beschrieben, bekomme ich es nicht dauerhaft zum laufen. Es lief nach der Installation, sobald ich das Terminal geschlossen hatte, war die Verbindung zum API weg und ich habe sie seitdem auch nicht wieder aufbauen können.


    Könnte mir hier jemand auf die Sprünge helfen, wie ich dieses API installieren muss, damit es für den Zugriff über die homebridge / das homebridge-http-plugin dauerhaft zur Verfügung steht?


    Vielen Dank schon einmal

  • Logisch. Du hast ein Fenster geöffnet, in dem Fenster ein Programm gestartet und das Fenster geschlossen. Damit hast du die API wieder beendet. Gut gemacht.


    Da du dich entschlossen hast durch Schließen des Fensters die API zu beenden, wird es dir sicherlich sehr schwerfallen, dorthin eine Verbindung aufzubauen. Das gleiche Ergebnis würdest du bekommen, entschlössest du dich, deinen Raspi mit Opas Vorschlaghammer auszuschalten.


    Du hast drei Möglichkeiten:

    1. Du schließt das Fenster nicht mehr. Nicht heute, nicht morgen, eigentlich nie wieder. Um zu verhindern, dass es sich schließt, wenn du deinen Rechner ausschaltest, bleibt der für immer einfach an.
    2. Du startest das Programm manuell im Hintergrund, so dass es weiterläuft, auch wenn du das Fenster schließt.
    3. Du lässt das Programm durch das Betriebssystem starten und kümmerst dich nicht weiter.

    Bitte beachte, dass die letzten beiden Punkte zwar außerordentlich vielversprechend aussehen, aber keine Lösung für Opas Vorschlaghammer darstellen.


    Ich finde ja Punkt 3 am geilsten. Ich würde dir ja gerne eine Step-2-Step-Anleitung geben, aber du hast nicht angegeben, in welches Verzeichnis du deine roon-extension installiert hast. Daher musst du an einer bestimmten Stelle kreativ werden.


    sudo nano /etc/systemd/system/roon-extension.service


    Dort den folgenden Text einfügen:

    [Unit]

    Description=Roon Extension

    After=network-online.target

    Wants=network-online.target


    [Service]

    User=pi

    WorkingDirectory=/home/pi/Git/roon-extension-http-api

    ExecStart=/usr/local/bin/node server.js

    Restart=on-failure

    RestartSec=5


    [Install]

    WantedBy=multi-user.target


    Oben in fett: WorkingDirectory. Dort steht /home/pi/Git/roon-extension-http-api, aber das musst du ändern in das Verzeichnis, in dem du deine roon-extension installiert hast. Den Pfad kennst nur du.


    Abspeichern, und dann

    sudo systemctl daemon-reload

    sudo systemctl restart roon-extension; sudo journalctl -fau roon-extension


    Auf dem Bildschirm sollte stehen:

    Jun 06 14:51:30 homepi systemd[1]: Started Roon Extension.

    Jun 06 14:51:31 homepi node[14612]: Listening on port: 3001


    Falls das der Fall ist, sorgst du dann dafür, dass die roon-extension auch beim Booten des Raspi gestartet wird:

    sudo systemctl enable roon-extension


    Das war's. Fenster schließen.

  • Logisch. Du hast ein Fenster geöffnet, in dem Fenster ein Programm gestartet und das Fenster geschlossen. Damit hast du die API wieder beendet. Gut gemacht.


    Ja, sowas habe ich mir dann auch gedacht :P:saint:


    Ich habe das in /home/pi/Roon installiert. Ich werde dann Deine Vorgaben mal strikt befolgen und schauen wo ich lande...


    Vielen Dank jedenfalls für Deine einmal mehr sehr schnelle und präzise Rückmeldung. Damit ist uns DilleTanten und -Onkels doch immer sehr gedient. :thumbup:


    Ich gebe Rückmeldung.

  • Es läuft - fast. Ich bekomme die Meldung das er auf Port 3001 zuhört. Wo komme ich nun zurück auf die p@raspberryi:> Befehlszeile um den allerletzten Befehl einzugeben. Solange er "zuhört" macht er das nicht, sieht so aus:



    NB: Habe das Fenster gekillt, neu geöffnet und dann die letzte Zeile eingegeben. Dann kam:

    Created symlink /etc/systemd/system/multi-user.target.wants/roon-extension.service → /etc/systemd/system/roon-extension.service.


    Nun sollte es laufen. Jetzt sehe ich mal zu dass ich die http-Befehle füttere. :thumbup:

    Einmal editiert, zuletzt von bubffm ()

    • Hilfreich

    Das macht man neuerdings mit ctrl-c (oder control-c oder strg-c). Also so seit 1981 vielleicht?