[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

Begonnen von dominik, 10 Dezember 2015, 22:43:49

Vorheriges Thema - Nächstes Thema

JF Mennedy

#735
Das ist die Ausgabe, wenn ich direkt über python nach den GoogleCasts suche:

>>> import pychromecast
>>> pychromecast.discovery.discover_chromecasts()
([({'Chromecast-2f395b03dee1a04712003a19643e062b._googlecast._tcp.local.'}, UUID('2f395b03-dee1-a047-1200-3a19643e062b'), 'Chromecast', 'Yamaha', '192.168.0.62', 8009), ({'Google-Home-Mini-ea78301bda5e0deec889469f5865f971._googlecast._tcp.local.'}, UUID('ea78301b-da5e-0dee-c889-469f5865f971'), 'Google Home Mini', 'Julia', '192.168.0.69', 8009), ({'Google-Home-Mini-480366a32abc408f11e592f5a5d82875._googlecast._tcp.local.'}, UUID('480366a3-2abc-408f-11e5-92f5a5d82875'), 'Google Home Mini', 'Iona', '192.168.0.61', 8009), ({'Google-Cast-Group-aeee65558f9f4598aaafe02610f80707-1._googlecast._tcp.local.'}, UUID('aeee6555-8f9f-4598-aaaf-e02610f80707'), 'Google Cast Group', 'Kinderzimmer', '192.168.0.61', 42948), ({'Google-Home-Mini-a7c2928d40f9bd1f9d57da68f18012be._googlecast._tcp.local.'}, UUID('a7c2928d-40f9-bd1f-9d57-da68f18012be'), 'Google Home Mini', 'Badezimmer', '192.168.0.64', 8009), ({'Google-Home-Mini-48375bc89149511b30601dcd62df5425._googlecast._tcp.local.'}, UUID('48375bc8-9149-511b-3060-1dcd62df5425'), 'Google Home Mini', 'Schlafzimmer2', '192.168.0.89', 8009), ({'Google-Cast-Group-2ef11b45e51948cfa60fddc824aa87f2-1._googlecast._tcp.local.'}, UUID('2ef11b45-e519-48cf-a60f-ddc824aa87f2'), 'Google Cast Group', 'Haus ohne Wohnzimmer', '192.168.0.89', 42285), ({'Google-Cast-Group-85cb62720ef54a169ec586e546198804-1._googlecast._tcp.local.'}, UUID('85cb6272-0ef5-4a16-9ec5-86e546198804'), 'Google Cast Group', 'Obergeschoss', '192.168.0.89', 42979), ({'Google-Cast-Group-10eddc407d8f4ee5b51b153a72da0cf3-1._googlecast._tcp.local.'}, UUID('10eddc40-7d8f-4ee5-b51b-153a72da0cf3'), 'Google Cast Group', 'Haus', '192.168.0.89', 42100), ({'Google-Home-Mini-6caa3731bc36980b8d67b053f29977ca._googlecast._tcp.local.'}, UUID('6caa3731-bc36-980b-8d67-b053f29977ca'), 'Google Home Mini', 'Wohnzimmer', '192.168.0.65', 8009), ({'Google-Cast-Group-a449a777c9fd42ae86449ed291ba823f._googlecast._tcp.local.'}, UUID('a449a777-c9fd-42ae-8644-9ed291ba823f'), 'Google Cast Group', 'Erdgeschoss ohne WZ', '192.168.0.65', 42338), ({'Google-Cast-Group-aa80515241a84bd484ee6c7fcd3f90e3-1._googlecast._tcp.local.'}, UUID('aa805152-41a8-4bd4-84ee-6c7fcd3f90e3'), 'Google Cast Group', 'Erdgeschoss', '192.168.0.65', 42202), ({'Chromecast-480591721e4da7defa145f34b3658b55._googlecast._tcp.local.'}, UUID('48059172-1e4d-a7de-fa14-5f34b3658b55'), 'Chromecast', 'Beamer', '192.168.0.83', 8009), ({'Google-Home-Mini-08ed5fab7397a753ea129b37b1472638._googlecast._tcp.local.'}, UUID('08ed5fab-7397-a753-ea12-9b37b1472638'), 'Google Home Mini', 'Bureau', '192.168.0.106', 8009), ({'Google-Home-6df0950fa307343738740dbbfe058a20._googlecast._tcp.local.'}, UUID('6df0950f-a307-3437-3874-0dbbfe058a20'), 'Google Home', 'Flur', '192.168.0.63', 8009)], <ServiceBrowser(zeroconf-ServiceBrowser__googlecast._tcp.local._139872622851840, started daemon 139872622851840)>)



Ich habe pychromecast auch schon auf version 3.2 downgegradet, aber leider war es das auch nicht...


Huabafranze

Hallo,
ich habe gerade einen neuen Raspberry aufgesetzt in FHEM ganz neu aufgespielt.
Ich kann die Geräte definieren. Z.B.:
define Wohnzimmer.chromecast GOOGLECAST Wohnzimmer

Jedoch bleiben die Geräte immer "offline"

Der log sagt folgendes:
2020.08.01 15:03:13 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_GOOGLECAST.pm line 195.
Not an ARRAY reference at ./FHEM/98_GOOGLECAST.pm line 194.
2020.08.01 15:03:13 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_GOOGLECAST.pm line 195, <$fh> line 33.
Not an ARRAY reference at ./FHEM/98_GOOGLECAST.pm line 194, <$fh> line 33.

X-Byte

Ich hatte ein ähnliches Problem mit meinem vor ein paar Tagen aktivierten Googlecast Modul und denke, dass es an der nicht passenden PyChromecast Version liegt. Wenn man die Voraussetzungen wie in der FHEM Doku installiert, bekommt man die neueste Version von PyChromecast, aktuell 7.2.0.

98_GOOGLECAST.pm in der aktuellen Version 2.1.5 scheint aber maximal mit PyChromecast 5.1.0 kompatibel zu sein, so schreibt es zumindest Dominik im Changelog zur 2.1.5 seines Moduls.

Aus dem Changelog von PyChromecast geht auch hervor, dass es seitdem einige Breaking Changes bei der Discovery gegeben hat. So sieht der Output von pychromecast.discovery.discover_chromecasts() mit 7.2.0 deutlich anders strukturiert aus als mit 5.1.0.

Man kann sich den Discovery Output mal vor und nach dem Downgrade anschauen:
Code (Discovery output) Auswählen
sudo python3
>>> import pychromecast
>>> pychromecast.discovery.discover_chromecasts()


Code (Discovery Output Schema 7.2.0) Auswählen
([ ({'<DeviceType>-<UUID>._googlecast._tcp.local.'}, UUID('<UUID>'), '<DeviceType>', '<DeviceName>', '<IP>', <Port?>) ], <ServiceBrowser ...>)

Code (Discovery Output Schema 5.1.0) Auswählen
[ ('<IP>', <Port?>, UUID('<UUID>'), '<DeviceType>', '<DeviceName>') ]

Die eigene Version kann man wie folgt prüfen:
Code (Version prüfen) Auswählen
sudo pip3 freeze | grep PyChromecast
PyChromecast==7.2.0


Ein Downgrade auf die als kompatible Version gelistete 5.1.0 geht so:
Code (Downgrade auf 5.1.0) Auswählen
sudo pip3 install 'PyChromecast==5.1.0' --force-reinstall
sudo pip3 freeze | grep PyChromecast
PyChromecast==5.1.0


Allerdings wirft mir FHEM auch nach einem 'reload 98_GOOGLECAST.pm' dann immer noch das vor die Füße
GOOGLECAST: Wohnzimmer initializing...
Not an ARRAY reference at ./FHEM/98_GOOGLECAST.pm line 194


Nach einem 'shutdown restart' in FHEM lief es dann aber endlich 8)

dominik

Zur Info, ich arbeite gerade an einem neuen Googlecast Modul welches komplett in Python implementiert ist und ohne Inline::Python. Damit geht dann auch die neue pychromecast Version und auch die Youtube App wird unterstützt.

Die nächsten Tage sollte die erste Testversion fertig sein.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

KOAL

Hallo Jungs,

danke das ihr euch dem Thema schon annehmt.
Mein GOOGLE HOME funktioniert noch wie immer. Benutze ihn um Befehle an FHEM zu senden, und mir den Status ansagen zu lassen.

Aber er spammt auch mir das LOG zu.... (kann man das temporär deaktivieren, so ne Art "NO LOG" für das eine Device?

2020.08.16 00:34:04.693 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_GOOGLECAST.pm line 189.
2020.08.16 00:34:04.695 1: PERL WARNING: Use of uninitialized value $name in string at ./FHEM/98_GOOGLECAST.pm line 190.
2020.08.16 00:34:24.745 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_GOOGLECAST.pm line 189.
2020.08.16 00:34:24.748 1: PERL WARNING: Use of uninitialized value $name in string at ./FHEM/98_GOOGLECAST.pm line 190.
2020.08.16 00:34:43.253 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_GOOGLECAST.pm line 189.
2020.08.16 00:34:43.255 1: PERL WARNING: Use of uninitialized value $name in string at ./FHEM/98_GOOGLECAST.pm line 190.
2020.08.16 00:35:03.341 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_GOOGLECAST.pm line 189.
2020.08.16 00:35:03.344 1: PERL WARNING: Use of uninitialized value $name in string at ./FHEM/98_GOOGLECAST.pm line 190.
2020.08.16 00:35:23.292 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_GOOGLECAST.pm line 189.
2020.08.16 00:35:23.297 1: PERL WARNING: Use of uninitialized value $name in string at ./FHEM/98_GOOGLECAST.pm line 190.



LG
KOAL
1X DEBAIN 11 ESXI VM, Openvpn-Server, FHEM, DHCP, HM-LAN W, USB-Enocean, Smartvisu V3.X
1X UBUNU 20.X LTS ESXI VM, AUTO-SERVER, Openvpn-Backup Server
1X UBUNU 20.X LTS ESXI VM, MAILSERVER, CLOUD
1X Lockerstor 4, NAS + APC CS650
1X WIN-10 ESXI VM, BLUEIRIS CAM Server

dominik

Hallo,

ich habe nun ein FHEM - Python Binding gebaut. Wer sich fragt was das bedeutet? Man kann damit FHEM Module in Python statt Perl schreiben. Das ermöglicht bei GOOGLECAST die Nutzung des nativen pychromecast Code inkl. automatischen Reconnect und Youtube App Support.

Wer es mal testen will, hier die Anleitung dazu (ich empfehle vorerst die Nutzung auf einem Testsystem):
https://github.com/dominikkarall/fhem_pythonbinding/blob/master/README.md

Bitte beachtet, dass Python 3.7 benötigt wird - ist in Buster normal standardmäßig installiert. Die genaue Installation findet ihr im github README.

Bitte um Feedback ob es bei euch läuft. In den nächsten Wochen würde ich dann auch Spotify App Support integrieren.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

Hallo,

habe nach der Anleitung installiert und bekomme die CastDevices auch online, jedoch kann ich bei den Attributen noch nicht die Favoriten einstellen und ich kann auch noch nichts abspielen... Jedoch wird der Status vom CastDevice angezeigt, wenn etwas abgespielt wird und ich kann auch die Wiedergabe stoppen..

Gruss Jan

dominik

Hi,

beim Abspielen musst du
set castdevice play url="https://youtube....."
nutzen. Das Attribut Favorite habe ich noch nicht implementiert, muss ich noch machen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

So richtig rund läuft es bei mir noch nicht.. Nach einem shutdown restart waren alle castdevice weg und wenn ich sie jetzt neu anlege stehen sie auf PythonBinding timeout... BindingsIO ist opened....

dominik

#744
Danke für die Info. Kannst du mir bitte fhem und PythonBinding Log per PN zur Verfügung stellen?

//Edit: Ich kann zumindest den Fehler beim Restart reproduzieren. Den Fehler bei der Neuanlage des Devices nach einem Restart jedoch noch nicht. Bitte da noch die Logs per PN zusenden. Danke!
Den Restart Bug werde ich heute oder morgen beheben.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

Die logs sind riesig und bekomme sie nicht in eine PN... Ich musste das Device Pythonbinding vom Typ PythonBinding, das sich selber anlegt löschen. Danach konnte ich dann wieder die CastDevices anlegen...

Ich werde sie mal etwas filtern und dann versuchen zu schicken...

von urls kann ich auch noch nichts abspielen , ich habe es gestern versucht mit set castdevice play url="youtou.be..."  es kam auch ein pling vom google home mini und in den readings tat sich was, aber der abgespielt wurde nichts...

JF Mennedy

hier noch das fhem log gefiltert auf bindingsio

dominik

Danke für die Logs, schau ich mir am Abend an. Die Logs sind noch riesig weil überall Debug aktiviert ist, das erleichtert mir am Anfang die Fehlersuche. Wird für den Produktivbetrieb dann deaktiviert.

Kann es sein, dass YouTube am Mini nicht abspielen geht? Ich glaube da braucht man einen Premium Account, oder?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

Premium Account habe ich, daran sollte es nicht liegen...

dominik

#749
Hi,
ich habe es gerade bei mir auf den Minis getestet. Da geht bei mir auch kein Youtube Audio only. Ich vermute mal, dass Google da noch ein paar weitere Authentifizierungsinfos an die Minis schickt, daher klappt es mit pychromecast (die Basis fuer Googlecast) nicht.
Hier habe ich auch einen Artikel gefunden:
https://support.google.com/googlenest/thread/17735428?hl=en

Falls du einen Chromecast oder NestHub hast, kannst es dort mal probieren.

Fuer den Restart Bug kommt heute noch ein Fix.

//Edit: Restart Bug sollte nun behoben sein, kannst du es bitte nach einem Update nochmals testen? Danke!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik