Ankündigung

Einklappen
Keine Ankündigung bisher.

Chromecast Plugin

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

    Chromecast Plugin

    Moin,

    Ich habe mir gerade zwei Chromecast Audio zugelegt -und einen normalen Chromecast habe ich schon.
    Der Plan ist, die Chromecast Audio als Zuspieler für meine Lautsprecher im Bad und Schlafzimmer zu nutzen. Den Verstärker kann ich per KNX bereits an und aus schalten. Ziel ist also, den Verstärker mit dem Zustand der Chromecast Audio zu koppeln. Wenn einer der Statii "Play" ist, dann soll der Verstärker an sein -sonst nicht.
    Aktuell ist der Zuspieler eine Squeezebox. Damit funktioniert zwar auch Spotify -aber eher unhandlich.
    Zudem würde ich gerne z.B. Morgens eine bestimmte Playlist spielen

    Lange Rede kurzer Sinn:
    Ein Chromecast Plugin muss her.
    Hat jemand von euch sich damit schon befasst?

    So weit bin ich bisher:
    Code:
    from __future__ import print_function
    import time
    import pychromecast
    
    pychromecast.get_chromecasts_as_dict().keys()
    cast = pychromecast.get_chromecast(friendly_name="ChromecastSchlafzimmer")
    cast.wait()
    print(cast.device)
    print(cast.status)
    
    mc = cast.media_controller
    mc.play_media('http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4', 'video/mp4')
    print(mc.status)
    
    print(mc.status)
    #<MediaStatus {'content_type': None, 'current_time': 0, 'supports_stream_mute': False, 'media_custom_data': {}, 'volume_level': 1, 'media_session_id': None, 'supports_skip_backward': False, 'content_id': None, 'season': None, 'track': None, 'supports_stream_volume': False, 'playback_rate': 1, 'supported_media_commands': 0, 'album_name': None, 'supports_seek': False, 'episode': None, 'subtitle_tracks': {}, 'duration': None, 'volume_muted': False, 'series_title': None, 'metadata_type': None, 'title': None, 'images': [], 'media_metadata': {}, 'album_artist': None, 'supports_pause': False, 'idle_reason': None, 'player_state': 'UNKNOWN', 'stream_type': 'UNKNOWN', 'supports_skip_forward': False, 'current_subtitle_tracks': [], 'artist': None}>
    print(mc.status)
    #<MediaStatus {'content_type': 'application/x-spotify.track', 'current_time': 92.93, 'supports_stream_mute': True, 'media_custom_data': {}, 'volume_level': 0.015259021896696421, 'media_session_id': 2, 'supports_skip_backward': False, 'content_id': 'spotify:track:69uxyAqqPIsUyTO8txoP2M', 'season': None, 'track': None, 'supports_stream_volume': True, 'playback_rate': 1, 'supported_media_commands': 15, 'album_name': 'A Head Full Of Dreams', 'supports_seek': True, 'episode': None, 'subtitle_tracks': {}, 'duration': 263.786, 'volume_muted': False, 'series_title': None, 'metadata_type': 3, 'title': 'Adventure Of A Lifetime', 'images': [MediaImage(url='https://i.scdn.co/image/9c2c4a9ac9726bfd996ff96383178bbb5efc59ab', height=640, width=640), MediaImage(url='https://i.scdn.co/image/2f66abbf986dcc2fb1dca9bceb892123d5d10c3a', height=300, width=300), MediaImage(url='https://i.scdn.co/image/8a87ac474db652dd6cd9fb208be0f37a4ea9c36b', height=64, width=64)], 'media_metadata': {'albumName': 'A Head Full Of Dreams', 'songName': 'Adventure Of A Lifetime', 'metadataType': 3, 'images': [{'url': 'https://i.scdn.co/image/9c2c4a9ac9726bfd996ff96383178bbb5efc59ab', 'height': 640, 'width': 640}, {'url': 'https://i.scdn.co/image/2f66abbf986dcc2fb1dca9bceb892123d5d10c3a', 'height': 300, 'width': 300}, {'url': 'https://i.scdn.co/image/8a87ac474db652dd6cd9fb208be0f37a4ea9c36b', 'height': 64, 'width': 64}], 'title': 'Adventure Of A Lifetime', 'artist': 'Coldplay'}, 'album_artist': None, 'supports_pause': True, 'idle_reason': 'INTERRUPTED', 'player_state': 'PLAYING', 'stream_type': 'BUFFERED', 'supports_skip_forward': False, 'current_subtitle_tracks': [], 'artist': 'Coldplay'}>
    print(mc.status.player_state)
    #PLAYING
    
    
    mc.pause()
    time.sleep(5)
    mc.play()
    Das sieht ja schon gut aus. Aber bevor ich weiter mache, hätte ich gerne euer Feedback.
    Gibt es das schon?
    Neues Plugin, oder basierend auf dem Squeezebox Plugin starten?
    Weitere Gedanken?

    Gruß,
    Hendrik


    #2
    Moin,

    viel Interesse scheint es ja nicht zu geben.

    Wie auch immer: Ich habe mir das Squeezebox Plugin einmal angesehen. Es ist zu hoch für mich.
    Daher würde ich gerne mit einem leeren Plugin beginnen. Ich orientiere mich an https://github.com/smarthomeNG/smart...ugin-5-minutes

    Mein erster Use-Case ist, den Verstärker anzuschalten, sobald einer meiner Chromecast etwas spielt.
    Die Verknüpfung/Die Aktion kann ich über die Smarthome.py Items machen.
    Also brauche ich noch ein Item, welches den Status des jeweiligen Chromecast (Play, Stop, Pause) darstellt -mehr erstmal nicht.

    Dafür könnte ich jetzt im Plugin einen Scheduler definieren und im Sekundentakt nachsehen, was der jeweilige Chromecast macht. Gibt es dafür keine bessere Alternative? Um ein ordentliches Verhalten zu haben, müsste man eher häufiger als im Sekundentakt nachsehen. Das widerstrebt mir aber. Besser wäre es doch, wenn das Plugin nicht pollt, sondern aktiv wird, wenn der Chromecast was macht.

    Ist das möglich?

    Edit: die Kollegen von Openhab sind schon ein Stück weiter (sogar in python; wusste nicht, dass Plugins von OH in Python sein können):
    https://github.com/balloob/pychromecast/issues/84
    Mit mqtt kann ich aber leider nichts anfangen.

    Gruß,
    Hendrik
    Zuletzt geändert von henfri; 06.11.2016, 13:29.

    Kommentar


      #3
      Hallo nochmal,

      hier ein lauffähiges Skript (noch kein Plugin, keine Verbindung mit sh.py). Es setzt die Lautstärke eines Chromecast auf 33% und zeigt an (print), was läuft.
      Bei jeder Änderung des Status wird der Status aktualisiert.
      Damit könnte man schon den Status in Items schreiben.

      Vielleicht kann mir jemand helfen, das in ein Plugin zu packen?

      Gruß,
      Hendrik

      Kommentar


        #4
        henfri "hier" ist kein script?

        Kommentar


          #5
          Ups!
          Angehängte Dateien

          Kommentar


            #6
            Hallo,

            es hat nicht zufällig jemand in der Zwischenzeit ein Plugin gebastelt? Ich komme momentan nicht dazu.

            Gruß,
            Hendrik

            Kommentar


              #7
              Hallo,

              wenn du den Audiocast mit der Squezzebox verbindest und ihn in der Visu als Player anbindest hast du fast alles was du willst. Die Squezzebox zeigt nur nichts an wenn du direkt auf den Cast sendest musst also üner den Umweg der Squezzebox gehen um immer eine Anzeige zu bekommen.

              Kommentar


                #8
                Hallo,

                danke für deine Antwort.
                Was meinst du mit "den Audiocast mit der Squeezebox verbindest"?

                Gruß,
                Hendrik

                Kommentar


                  #9
                  Man kann den Chromecast Audio als Squeezeplayer "misbrauchen", evlt. meint Knx fan da.
                  Und Squeezebox lässt sich ja über ein Plugin bereits ansteuern.
                  Grüße
                  Matze

                  Kommentar


                    #10
                    Oh, und wie geht das? Da müsste man den rooten, oder?
                    Zuletzt geändert von henfri; 08.02.2017, 15:53.

                    Kommentar


                      #11
                      Nein, geht ohne roten, ist ein LMS (Logitech Media Server) Plugin, wenn ich zu Hause bin, kann ich dir den Link raussuchen, ist aber glaube ich auch unter den Plugins im LMS direkt zu finden.
                      Grüße
                      Matze

                      Kommentar


                        #12
                        Klasse! Läuft. Perfekte Lösung.

                        So schaltet der Chromecast selbst zwischen einer "cast" Quelle und einer Squeezebox Quelle um. Zudem brauche ich kein Squeezeplay/Softsqueeze mehr.

                        Quellen:
                        http://forums.slimdevices.com/showth...-(squeeze2cast)
                        Bzw. direkt die Plugin-Quelle für den LMS:
                        http://downloads.sourceforge.net/pro...es/repo-sf.xml

                        Danke!
                        Zuletzt geändert von henfri; 08.02.2017, 17:32.

                        Kommentar


                          #13
                          Habs leider jetzt erst gelesen, aber genauso meinte ich es. So habe ich es auch bei mir am laufen. Ein normaler Chromecast geht auch musst nur noch das Chromcast Plugin installieren.

                          Wenn du das laufen hast, wie lange brauch der Cast bis er anläuft und kannst du die Player syncronisieren? Ich meine wenn du Play drückst bis zum abspielen. Ich habe das Problem, das er fast 10Sek zu Puffern scheint bis er los legt, syncronisieren geht bei mir nicht.

                          Kommentar


                            #14
                            Hallo,

                            synchronisieren brauche ich in diesem Fall nicht. Für welchen Fall fragst du? 'casten' oder 'Squeezebox-Streamen'.
                            Was momentan aber leider noch nicht geht ist der Status, wenn ich caste. Da bleibt der Player auf 'pause'. Also brauche ich doch ein chromecast plugin :-(

                            Gruß,
                            Hendrik

                            Kommentar


                              #15
                              Ja das habe ich gesagt, der Status geht nur über die Squezzebox.
                              Ich meine wenn du auf der Squezzebox Play drückst, wie lange braucht dann die Musik bis Sie läuft. Über die Google Home App geht syncronisieren, nur über die Squezze nicht, weil das länger braucht. Ich weiss nicht ob es an mir hängt oder das ein allgemeiner Fehler ist.

                              Ich könnte mir vorstellen, das das ganze mit Bubbleupnp funktionieren könnte. Alles was du Castest schickst du an bubbleupnp und dieser dann an die Squezze, so solltest du es auch in die Visu bekommen. Nur als Idee ob das so funzt weiss ich nicht. Die Casts werden unterstützt sowie Transcodierung

                              Kommentar

                              Lädt...
                              X