Node API bereitstellen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • RocknRollArmy
    Smart Home'r
    • 05.11.2015
    • 45

    Node API bereitstellen

    Hallo,

    was ist die "beste" TM Vorgehensweise wenn ich einen Node Prozess laufen lassen möchte, der eine API zur Verfügung stellen soll?

    Warum generell?

    Ich möchte gerne https://github.com/jishi/node-sonos-http-api über den Loxberry laufen lassen. Mehr oder weniger als Ersatz für das bestehende Sonos Plugin.

    Ebenso möchte ich mir das Thema Loxberry Plugins damit mal ein bisschen näher anschauen.

    Warum nicht das bestehende Sonos Plugin?

    Nach dem Update auf v3.9.0 habe ich Probleme dass die Klingel (Doorbird -> Miniserver -> Loxberry -> Sonos) nicht mehr per sendmesage getriggert wird. Da ich keine Lust habe mir den PHP Kram anzuschauen, und wie oben erwähnt mir das Thema generell anschauen möchte, kam die Idee ein eigenes Plugin zu erstellen.

    Problem aktuell ist, dass nichts mehr getriggert wird, und die Antwort ist ein 200 mit <PRE> als Body. Werde dazu aber noch separat nachfragen.

    Gedachte Vorgehensweise

    Aktuell könnte ich mir vorstellen das Plugin so umzusetzen
    • Installation von Node.js per preinstall.sh (evtl. nvm verwenden?)
    • Node.js Ausführung per daemon überwachen
    • Gewünschtes Frontend wie im Wiki zu finden, erstellen
    • Node.js API zur Verfügung stellen
    Bei dem letzten Punkt bin ich mir nicht sicher wie das umzusetzen wäre. Der Konsistenz wegen wäre es ja ganz schön wenn die "fremde" API auch über den bekannten Pfad erreichbar wäre.

    z.B. http://loxberry/plugins/new_and_shin...p/tuergong.mp3

    Da würde ich dazu tendieren mod_proxy zu verwenden, bin mir aber aktuell nicht sicher ob der mit an Bord ist, oder ob das zu tiefgreifende Änderungen bedeuten würde.

    Zur Not würde die API per Port anzusprechen sein, wobei ich aber aktuell nicht genau weiss ob hier irgendwelche Einschränkungen bestehen, die evtl. angepasst werden müssten.

    z.B. http://loxberry:5005/kueche/clip/tuergong.mp3

    Lange Rede, kurzer Sinn. Der Test Raspi ist unterwegs, und ich wäre froh für jeden Hinweis wie eine Node API am besten einzubinden ist.


    Gruss und Danke,

    Daniel





  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11218

    #2
    Node.js und npm+yarn sind ab LB2.0 „serienmäßig“ an Bord.
    Am LB2.0 gibt es die plugindatabase.json, aus denen du die Plugin-Pfade und -Files zb in einem Node auslesen kannst:
    Zuletzt geändert von Christian Fenzl; 12.11.2019, 19:10.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6292

      #3
      Ich würde die API über einen eigenen Port direkt ansprechen. Sollte bei Deiner Proxy Anbindung etwas schief gehen, kommst Du nicht mehr auf das WebUI und viele können weder ssh, noch haben die einen Monitor und Tastatur am Pi.
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar

      • RocknRollArmy
        Smart Home'r
        • 05.11.2015
        • 45

        #4
        Zitat von Christian Fenzl
        Node.js und npm+yarn sind ab LB2.0 „serienmäßig“ an Bord.
        Na Super, wer lesen kann ist klar im Vorteil



        Schau ich mir mal. Danke für den Hinweis.


        Zitat von svethi
        Ich würde die API über einen eigenen Port direkt ansprechen. Sollte bei Deiner Proxy Anbindung etwas schief gehen, kommst Du nicht mehr auf das WebUI und viele können weder ssh, noch haben die einen Monitor und Tastatur am Pi
        Valider Punkt. Ich lese aus der Antwort auch heraus, dass es da jetzt nichts gibt um eine Proxy-Anbindung "wasserdicht" zu integrieren. Wäre dann wenn vermutlich eine Anpassung der Apache Konfiguration per Script.

        Ich werde einfach mal ein bisschen experimentieren. Danke schonmal für die Hinweise.

        Kommentar

        Lädt...