Autor Thema: fhempy: googlecast  (Gelesen 18994 mal)

Offline loosu

  • New Member
  • *
  • Beiträge: 7
Antw:fhempy: googlecast
« Antwort #255 am: 06 Juni 2021, 20:16:48 »
Zitat
ich habe gestern ein Update auf die neue Version gemacht. Spotify geht wieder  :), aber seitdem funktioniert die Speak-Funktion nicht mehr.
Hat noch jemand das Problem? Oder liegt es an meinem System?

Ja!!!!!!!! ,bei mir auch. Ich lasse mir die Temperaturen und Fensterzustände bei kritischen Situationen durchsagen. habe heute den ganzen Tag probiert und herausgefunden das alle meine original google mini und co. , auch in Gruppen nichts mehr mit Speak sagen. ein einzelner LG WK7 mit Assistent machts noch, aber dann auch nur direkt und nicht aus der Gruppe heraus. ärgerlich.  Es sieht so aus als ob Google seinen Geräten ein neues Updaten verpasst hat. Pakete wie nodejs usw. habe ich auch schon aktualisiert. keine Chance. Auch der direkte URL-Stream läuft mit PLAY im Gegensatz zum normalen WEB-Radiostream nicht. http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=das%20ist%20ein%20test.
Auch mit dem alten Modul geht das nicht mehr.
Über den Webbrowser oder VLC wird der Stream ausgegeben! ich tappe total im dunklen. bin auch in der Programmierung nicht fit. Da kann, glaube ich, nur einer helfen, wenn er mal Zeit hat.

Offline a_quadrat

  • Full Member
  • ***
  • Beiträge: 291
Antw:fhempy: googlecast
« Antwort #256 am: 07 Juni 2021, 20:14:22 »
Danke für deine Antwort, dann scheint es an Google zu liegen.

Offline Atara

  • New Member
  • *
  • Beiträge: 5
Antw:fhempy: googlecast
« Antwort #257 am: 07 Juni 2021, 21:25:15 »
Bei mir geht 'Speak' ebenfalls nicht mehr.
Es kommt, wie immer, ein Ping am Lautsprecher und danach nichts mehr.
Zustimmung Zustimmung x 1 Liste anzeigen

Offline loosu

  • New Member
  • *
  • Beiträge: 7
Antw:fhempy: googlecast
« Antwort #258 am: 08 Juni 2021, 13:32:54 »
Seit heute läuft Speak wieder! jedenfalls im Moment

Offline a_quadrat

  • Full Member
  • ***
  • Beiträge: 291
Antw:fhempy: googlecast
« Antwort #259 am: 09 Juni 2021, 08:11:16 »
Bei mir läuft's auch wieder  :).

Offline loosu

  • New Member
  • *
  • Beiträge: 7
Antw:fhempy: googlecast
« Antwort #260 am: 09 Juni 2021, 16:21:50 »
Aber verdammt langsame Geschwindigkeit, genau wie direkt bei Google translate selbst. Naja vielleicht ändert sich das auch wieder.

Offline robii

  • New Member
  • *
  • Beiträge: 7
Antw:fhempy: googlecast
« Antwort #261 am: 09 Juni 2021, 20:08:27 »
es funktioniert wieder aber diese weinerlich bist selbstmordgefährdet klingende Stimme nervt echt. War irgendwie besser als es gar nicht mehr funktioniert hat ...
Zustimmung Zustimmung x 1 Liste anzeigen

Offline loosu

  • New Member
  • *
  • Beiträge: 7
Antw:fhempy: googlecast
« Antwort #262 am: 09 Juni 2021, 22:10:07 »
habe schon mal ein Feedback an google geschickt.....vieleicht wird es irgendwann mal wieder besser

Offline presskopf

  • Jr. Member
  • **
  • Beiträge: 98
Antw:fhempy: googlecast
« Antwort #263 am: 28 Juni 2021, 23:45:05 »
Das Speak ist schon klasse. Ich lasse meiner Frau berichten, dass die Waschmaschine fertig ist. :D (Sie findet es wirklich gut!)


Ein anderes Thema beschäftigt mich gerade:

Ich streame gerne Radiostreams auf meinen Onkyo per googlecast. Das funktioniert recht gut.
Mir ist aber aufgefallen, dass keine Daten zum Stream angezeigt werden. Ich fänd es prima, wenn z.B. Radiosender, Artist oder Song angezeigt werden. Das ließe sich doch prima im FTUI visualisieren. :)
Wenn ich den Stream im VLC am PC abspiele, erhalte ich diese Daten. Die sind also da.

Muss ich noch was einstellen oder ist das im Moment nicht möglich?
Beispielstreams:
set onkyo.chromecast play http://streams.radiobob.de/bob-acdc/mp3-192/mediaplayer

http://br-br3-live.cast.addradio.de/br/br3/live/mp3/128/stream.mp3


Offline presskopf

  • Jr. Member
  • **
  • Beiträge: 98
Antw:fhempy: googlecast
« Antwort #264 am: 03 Juli 2021, 10:37:52 »
Für mein zuvor beschriebenes Problem habe ich nun folgenden Workaround gefunden; elegant ist aber anders, finde ich:

Ich verwende den MPD, um den Stream aus dem Internet zu holen und gebe als Output-Device einen httpd an: z.B. localhost:8000
Der MPD zeigt mir Artist und Title als Reading an, welches ich dann am FTUI ausgeben kann.

Nun nutze ich fhempy-googlecast, um den Stream am localhost an den Onkyo weiterzuleiten. Dabei wird der Stream vom MPD per lame re-encodiert. Ein Durchreichen habe ich nicht gefunden. Es geht, ist aber gefühlt Käse, zwei Devices zum Streamen einzuschalten :(

Weiterer Nachteil:
Wenn man einen Stream am MPD umschaltet, dauert es doch einige Sekunden, bis das am Onkyo ankommt.
« Letzte Änderung: 03 Juli 2021, 10:41:22 von presskopf »

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 182
Antw:fhempy: googlecast
« Antwort #265 am: 16 August 2021, 11:52:19 »
Hallo,

Spotify geht seit einiger Zeit nicht mehr, liegt jedoch an der pychromecast lib und nicht an fhempy.
Es gibt schon ein fix bei pychromecast, habe es bei mir eingebaut und dann geht es wieder.
unter \.local\lib\python3.x\site-packages\pychromecast\controllers\spotify.py ersetzen durch:
"""
Controller to interface with Spotify.
"""
import logging
import threading
import requests
import json

from . import BaseController
from ..config import APP_SPOTIFY
from ..error import LaunchError

APP_NAMESPACE = "urn:x-cast:com.spotify.chromecast.secure.v1"
TYPE_GET_INFO = "getInfo"
TYPE_GET_INFO_RESPONSE = "getInfoResponse"
#TYPE_SET_CREDENTIALS = "setCredentials"
#TYPE_SET_CREDENTIALS_ERROR = "setCredentialsError"
#TYPE_SET_CREDENTIALS_RESPONSE = "setCredentialsResponse"
TYPE_ADD_USER = "addUser"
TYPE_ADD_USER_RESPONSE = "addUserResponse"
TYPE_ADD_USER_ERROR = "addUserError"

# pylint: disable=too-many-instance-attributes
class SpotifyController(BaseController):
    """Controller to interact with Spotify namespace."""

    def __init__(self, access_token=None, expires=None):
        super().__init__(APP_NAMESPACE, APP_SPOTIFY)

        self.logger = logging.getLogger(__name__)
        self.session_started = False
        self.access_token = access_token
        self.expires = expires
        self.is_launched = False
        self.device = None
        self.credential_error = False
        self.waiting = threading.Event()

    def receive_message(self, _message, data: dict):
        """
        Handle the auth flow and active player selection.

        Called when a message is received.
        """
        if data["type"] == TYPE_GET_INFO_RESPONSE:
            self.device = data["payload"]["deviceID"]
            self.client = data["payload"]["clientID"]
            headers = {
                'authority': 'spclient.wg.spotify.com',
                'authorization': 'Bearer {}'.format(self.access_token),
                'content-type': 'text/plain;charset=UTF-8'
            }

            request_body = json.dumps({'clientId': self.client, 'deviceId': self.device})

            response = requests.post('https://spclient.wg.spotify.com/device-auth/v1/refresh', headers=headers, data=request_body)
            json_resp = response.json()
            self.send_message({
                "type": TYPE_ADD_USER,
                "payload": {
                    "blob": json_resp["accessToken"],
                    "tokenType": "accesstoken"
                }
            })
        if data["type"] == TYPE_ADD_USER_RESPONSE:
            self.is_launched = True
            self.waiting.set()

        if data["type"] == TYPE_ADD_USER_ERROR:
            self.device = None
            self.credential_error = True
            self.waiting.set()
        return True

    def launch_app(self, timeout=10):
        """
        Launch Spotify application.

        Will raise a LaunchError exception if there is no response from the
        Spotify app within timeout seconds.
        """

        if self.access_token is None or self.expires is None:
            raise ValueError("access_token and expires cannot be empty")

        def callback():
            """Callback function"""
            self.send_message({"type": TYPE_GET_INFO, "payload": {}})
           
        self.device = None
        self.credential_error = False
        self.waiting.clear()
        self.launch(callback_function=callback)

        counter = 0
        while counter < (timeout + 1):
            if self.is_launched:
                return
            self.waiting.wait(1)
            counter += 1

        if not self.is_launched:
            raise LaunchError(
                "Timeout when waiting for status response from Spotify app"
            )

    # pylint: disable=too-many-locals
    def quick_play(self, **kwargs):
        """
        Launches the spotify controller and returns when it's ready.
        To actually play media, another application using spotify connect is required.
        """
        self.access_token = kwargs["access_token"]
        self.expires = kwargs["expires"]

        self.launch_app(timeout=20)

Ich habe zusätzlich zu dieser Änderung auch ein Update auf die Versin 9.2.0 von pychromecast gemacht... (.local\lib\python3.x\site-packages\fhempy\lib\googlecast\manifest.json)

Gruss Jan
« Letzte Änderung: 16 August 2021, 15:54:46 von JF Mennedy »

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2776
Antw:fhempy: googlecast
« Antwort #266 am: 16 August 2021, 15:37:02 »
Hi Jan,

danke für die Info! Ist in der 9.2.0 Version der Bug schon behoben? Wenn ja, dann aktualisiere ich gleich die Abhängigkeit.
fhempy -  https://github.com/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 182
Antw:fhempy: googlecast
« Antwort #267 am: 16 August 2021, 15:50:29 »
Hi Dominik,

nein ist noch nicht behoben, ist aber schon ein PR gestellt... Ich halte das mal im Auge und melde mich, wenn es gemerged ist...

Gruss Jan

Offline dominik

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2776
Antw:fhempy: googlecast
« Antwort #268 am: 16 August 2021, 15:57:20 »
Super, danke dir!
fhempy -  https://github.com/dominikkarall/fhempy: GoogleCast, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 182
Antw:fhempy: googlecast
« Antwort #269 am: 31 August 2021, 08:54:31 »
Hi,

hier der Stand der Dinge bezüglich Pychromecast und Spotify: Anscheinend wird Pychromecast nicht aktualisiert https://github.com/home-assistant-libs/pychromecast/pull/509, dafür ist Spotify in eine eigene Lib https://github.com/fondberg/spotcast ausgelagert worden.

Zur Zeit läuft Spotify bei mir mit pychromecast 9.2.0 und dem beschriebenen Fix, aber wahrscheinlich auch nur so lange, bis auf Seiten von Spotify wieder etwas geändert wird, was im Übrigen auch der Grund war, weshalb der SpotifyController aus Pychromecast ausgelagert wird :-(

Gruss Jan