Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19001560 - Chromecast Audio Control

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    LBS 19001560 - Chromecast Audio Control

    Hallo zusammen,

    ich habe einen relativ simplen LBS für die Steuerung von Chromecasts (Audio) geschrieben.
    Der LBS wurde vornehmlich zur Steuerung der Musikwiedergabe per PM und Taster entwickelt.

    Download: http://service.knx-user-forum.de/?co...ad&id=19001560

    Der LBS verwendet als externe Komponente die "cast-web-api" (https://github.com/vervallsweg/cast-web-api) in v0.3.0.
    Die spezifische Version ist in diesem Fall wichtig. Die weitere Entwicklung ändert die Schnittstelle, die Nachfolgeversion scheint aktuell aber wohl noch in Arbeit zu sein.
    Leider ist es mir aktuell zeitlich nicht möglich mich um eine etwaige Integration der externen Komponenten in den LBS zu kümmern. Diese müssen also extern bereit gestellt werden - bspw. durch einen Docker Container.


    In Version 1.0.0 bietet der LBS u.a:
    - Fünf konfigurierbare "Sender" (URLs).
    - Konditionale und unkonditionale Start und Stop Befehle.
    - Senderwechsel mit optionalem Autoplay.
    - Lautstärkeregelung.


    Als Einstiegshilfe für den LBS habe ich einige Beispiele vorbereitet:

    1. Simple ansteuerung eines Chromecasts, bspw. per Taster:
    E1.PNG

    2. Erweiterung des vorherigen Beispiels um Lautstärkeregelung per Dimmfunktion.
    Hierzu wird ein weiterer LBS (ID 19000380) verwendet. Danke hier auch an woda.
    Ex2.PNG

    3. Erweiterung des vorherigen Beispiels um Start/Stop durch PM statt Taster.
    Stop wird hier mit zusätlichem Nachlauf ausgeführt.
    Ex3.PNG

    4. Mein aktueller "Echt"-Aufbau mit Lautstärke per Dimmer, Sperre der Wiedergabe über Tag/Nacht, An/Aus per PM sowie einer kleinen Baustein-Kaskade um Start/Stop am taster über ein einzelnes Objekt abbilden zu können.
    Ex4.PNG
    Zuletzt geändert von MKHR; 05.05.2018, 22:37.

    #2
    Sehr cool. Vielen Dank für deine Bemühungen.
    ist es damit auch möglich mehrere chromecasts, die in einer Gruppe sind anzusteuern? Stichwort: Multiroom?

    Kommentar


      #3
      Ich habe es selbst noch nicht getestet, aber wenn ich die Informationen richtig verstanden habe dann sollte das ohne Probleme funktionieren.

      Wenn Gruppen erstellt werden wird scheinbar eines der Geräte zum "Master". Die Gruppe kann dann über dieses Gerät plus anderem Port angesprochen werden.
      Die cast-web-api verwendet als default 8009 (oder so) wenn kein Port angegeben wird. Dies entspricht dem Gerät ohne Gruppe. Für die jeweilige Gruppe muss dann entsprechend als Geräteadresse eben iport eingetragen werden.

      Die IP kann man bspw. über einen Aufruf an die cast-web-api heraus finden. Leider funktioniert das discovery wohl aufgrund von Multicast-Problemen NICHT aus einem Docker-Container heraus. Da ich mich noch nicht mit dem Thema Gruppen beschäftigt habe kann ich leider keine Alternativen nennen...

      Kommentar


        #4
        Hallo MKHR

        Ich würde gerne meine Chromecast mit Edomi steuern und dazu deinen LBS verwenden. Kannst du mir ggf. genauere Hinweise für die Installation der cast-web-api geben? Ich habe hier eine Windows-Maschine die 24/7 läuft, darauf möchte ich das gerne laufen lassen.

        Kommentar


          #5
          Hallo elnino22,

          Zur installation der cast-web-api unter Windows kann ich leider keine Hilfestellung geben.
          Habe das ganze bei mir der Einfachheit wegen im Docker-Container laufen.

          Kommentar


            #6
            Hallo,

            das ist ein cooler LBS. Wo muss die Cast-Web-Api installiert werden? Edomi läuft bei mir auf einem NUC. Parallel habe ich noch einen Raspberry am Start, jedoch ist die Installation auf dem Raspberry scheinbar nicht machbar.

            Kommentar


              #7
              Hallo Schulle,

              wo die API läuft ist eigentlich quasi egal, wenn die Rahmenbedingungen stimmen (Kommunikation mit EDOMI und den Chromecasts muss klappen).
              Eigentlich wird hier auch nur irgend etwas, dass JavaScript verarbeiten kann benötigt. Sollte auch auf einem Raspi zu machen sein...

              Kommentar


                #8
                Update für LBS 19001560 und 19001561:

                Aufgrund zahlreicher Änderungen wird der v1 (19001560) Baustein in Zukunft nicht mehr "weiter Entwickelt".
                Soll heißen: Falls neue Features auftauchen werden diese in v2 (19001561) implementiert.

                Bugfixes schließe ich nicht aus. Tatsächlich gibt es auch direkt einen für den v1 Baustein:


                LBS 19001560 (Chromecast Audio Control) v1.1.0:
                Die vorherige Version hat die Lautstärke nicht korrekt berechnet / verwendet. v1.1.0 behebt diesen Fehler.


                LBS 19001560 (Chromecast Audio Control) v2.0.0:
                Aufgrund weitgehender (interner) Änderungen wurde der Baustein als v2 weitergeführt.
                Im Detail:

                - Kanalwahl ausgegliedert. Bei Bedarf kann bspw. 19000272 verwendet werden. Ausgang "Channel" entfällt.
                - Neuer Ausgang "PlaybackStateChanged". Ausgang gibt "1" aus, wenn die Wiedergabe startet oder endet.
                - "Reservierte" Eingänge entfernt.
                - Weitere interne Änderungen um Wartbarkeit zu erhöhen.

                Kommentar


                  #9
                  Hallo MKHR,

                  vielen Dank für deine Antwort auf meine PN.
                  Damit alle profitieren werde ich hier noch kurz erklären wie ich den LBS 19001561 mit der cast-web-api unter Windows zum laufen gebracht habe.

                  Bitte um Nachsicht, wenn ich nicht alle Fachbegriffe richtig verwende. Ich bin absoluter Laie in solchen Dingen!

                  Wie MKHR schon geschrieben hat, funktioniert der LBS nur mit cast-web-api Version V0.3.0

                  Die Installationsanleitung findet ihr hier: Link
                  kurz erklärt:
                  1. Node.js JavaScript Runtime Engine installieren
                  2. Node.js command prompt ausführen
                  3.
                  Code:
                  npm i cast-web-api@0.3.0 -g
                  in die Konsole eingeben
                  Jetzt sollte die API geladen und installiert werden
                  4.
                  Code:
                  cast-web-api
                  startet die web-api
                  Fertig

                  wie ihr den LBS beschaltet und parametriert hat MKHR in seinen Scrennshots dargestellt bzw. steht in der Hilfe des LBS.

                  Anfangs hatte ich noch das Problem, dass einige Streamlinks nicht funktionierten.
                  Probiert einfach mal am Ende des Links "mp3" hinzu zu schreiben. Bei einigen Links war das die Lösung.

                  Viel Erfolg!

                  Grüße
                  rischr

                  Kommentar

                  Lädt...
                  X