[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

dominik

#105
Ich glaub die "enum" Installation war doch falsch.

http://stackoverflow.com/questions/34165522/attributeerror-module-object-has-no-attribute-unique

sudo pip uninstall enum
sudo pip uninstall enum-compat
sudo pip install enum32
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

alexmetz

versuche es  miss jetzt familiären Verpflichtungen nachkomnen...
Danke schon mal für die Hilfe!!!
FHEM auf RaspberryPi 4
Homematic

alexmetz

also: hab wie aus dem Link enum deinstalliert und enum34 installiert.
das hier scheint jetzt zu funktionieren:
root@raspberrypi:~# python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pychromecast
>>>


nach einem "shutdown restart" gabs auch beim reload keine Fehlermeldung mehr und ich konnte ein device erstellen. Teste mal weiter.

Vielen Vielen Dank für die Hilfe!!!
FHEM auf RaspberryPi 4
Homematic

NCC1701D

Hallo Dominik.
Hier ist die Ausgabe:

pi@raspberrypi ~ $ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pychromecast
>>> chromecasts = pychromecast.get_chromecasts()
>>> [cc.device.friendly_name for cc in chromecasts]
[u'B\xfcro von Mausi', u'Abendessen', u'Schlafzimmer', u'K\xfcche', u'Supersound', u'Wohnzimmer', u'Hasenbau', u'Bad', u'K\xfcche - B\xfcro']


Wie man sieht gibt er die Umlaute ganz merkwürdig aus z.B. 'K\xfcche' für Küche oder B\xfcro' für Büro

febus

Hi, ich verfolge aufmerksam dieses Thema... Gibt es technisch gesehen eine Chance, das Modul auf einer Synology NAS zum Laufen zu bringen?

Viele Grüße,
Marc

dominik

Update
v1.0.3 - 20161219
- FEATURE: support volume
- FEATURE: add new readings and removed
            castStatus, mediaStatus reading
- FEATURE: add attribute favoriteURL_[1-5]
- FEATURE: add playFavorite [1-5] set function
- FEATURE: retry init chromecast every 10s if not found on startup
- BUGFIX:  support special characters for device name

Bugs / Herausforderungen
- Beim Define (also auch beim Starten) wird FHEM für ca. 10s geblockt
- Umlaute für Chromecast Devices funktionieren aktuell nicht
- playYoutube blockiert FHEM für einige Sekunden
- vor jedem Abspielen muss quitApp ausgeführt werden
- Bei jedem Set wird die gesamte FHEM Instanz für ca. 10s geblockt
- Zeitverzögerung des Commands von ca. 10s bei jedem Set Befehl
- Aktuell nur 2 technische Readings
- Ich verwende die pychromecast Library (in Python geschrieben) um auf die Chromecasts zuzugreifen. Leider habe ich noch keine Möglichkeit gefunden die Library so zu verwenden, dass man nicht bei jedem Set den Chromecast komplett neu verbinden muss. Im Python Code funktioniert das, nur in Kombination mit Inline::Python tut es nicht da da scheinbar der Thread im Hintergrund nicht weiterläuft wenn der Perl Code ausgeführt wird. Wenn jemand Ideen hat, gerne melden :)

Requirements
sudo apt-get install libwww-perl
Linux Distribution jessie
sudo pip install youtube-dl
sudo pip install git+https://github.com/dominikkarall/pychromecast.git (eine von mir abgeänderte Version)
sudo cpanm Inline::Python

Define
define ccWohnzimmer CHROMECAST Wohnzimer
Wohnzimmer = Name des Chromecast Devices

Set
set ccWohnzimmer play https://www.youtube.com/watch?v=tERRFWuYG48
set ccWohnzimmer play http://swr-mp3-m-swr3.akacast.akamaistream.net:80/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3
set ccWohnzimmer play http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
set ccWohnzimmer pause/play/stop/quitApp

Bugs und Verbesserungsvorschläge bitte direkt hier melden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Fixel2012

Zitat von: dominik am 19 Dezember 2016, 20:42:50
Update
v1.0.3 - 20161219
- FEATURE: support volume
- FEATURE: add new readings and removed
            castStatus, mediaStatus reading
- FEATURE: add attribute favoriteURL_[1-5]
- FEATURE: add playFavorite [1-5] set function
- FEATURE: retry init chromecast every 10s if not found on startup
- BUGFIX:  support special characters for device name

Bugs / Herausforderungen
- Beim Define (also auch beim Starten) wird FHEM für ca. 10s geblockt
- Umlaute für Chromecast Devices funktionieren aktuell nicht
- playYoutube blockiert FHEM für einige Sekunden
- vor jedem Abspielen muss quitApp ausgeführt werden
- Bei jedem Set wird die gesamte FHEM Instanz für ca. 10s geblockt
- Zeitverzögerung des Commands von ca. 10s bei jedem Set Befehl
- Aktuell nur 2 technische Readings
- Ich verwende die pychromecast Library (in Python geschrieben) um auf die Chromecasts zuzugreifen. Leider habe ich noch keine Möglichkeit gefunden die Library so zu verwenden, dass man nicht bei jedem Set den Chromecast komplett neu verbinden muss. Im Python Code funktioniert das, nur in Kombination mit Inline::Python tut es nicht da da scheinbar der Thread im Hintergrund nicht weiterläuft wenn der Perl Code ausgeführt wird. Wenn jemand Ideen hat, gerne melden :)

Requirements
sudo apt-get install libwww-perl
Linux Distribution jessie
sudo pip install youtube-dl
sudo pip install git+https://github.com/dominikkarall/pychromecast.git (eine von mir abgeänderte Version)
sudo cpanm Inline::Python

Define
define ccWohnzimmer CHROMECAST Wohnzimer
Wohnzimmer = Name des Chromecast Devices

Set
set ccWohnzimmer play https://www.youtube.com/watch?v=tERRFWuYG48
set ccWohnzimmer play http://swr-mp3-m-swr3.akacast.akamaistream.net:80/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3
set ccWohnzimmer play http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
set ccWohnzimmer pause/play/stop/quitApp

Bugs und Verbesserungsvorschläge bitte direkt hier melden.

Wow schöne Sache! Allerdings funktioniert das Attribut FavoritName nicht. Ich denke mal das soll den Namen Favorite 1 durch einen eigenen Namen ersetzen? Falls ich das falsch interpretiert habe verbesser mich!

Freut mich echt, dass jemand das Projekt so schnell weiterführt wie du!

Grüße und nochmals Danke für die schnelle Entwicklung!

Felix
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

mahowi

Zitat von: dominik am 19 Dezember 2016, 20:42:50
Update
v1.0.3 - 20161219
[...]
- FEATURE: retry init chromecast every 10s if not found on startup
[...]

Kann man zumindest die Meldung dazu im Log unterdrücken? Bei mir ist der Fernseher aus, solange ich nicht zuhause bin, und damit auch der Chromecast, da er daran angeschlossen ist. Jetzt bekomme ich natürlich den halben Tag lang alle 10 sec. einen Eintrag ins Log.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

dominik

@mahowi, berechtigter Einwand, daran hatte ich nicht gedacht. Werde das entsprechend anpassen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

alexmetz

mal eine Frage: kann ich auch lokale Dateien abspielen? Das hier geht nämlich nicht:
set Chromecast play /opt/fhem/tts/template/test.mp3

Eigentlich geht es mir um eine Integration mit dem Text2Speech-Modul. Ich möchte mit diesem einen Text erzeugen und ihn dann auf dem Chromecast ausgeben. Noch einfacher wäre natürlich, wenn das Chromecast-Modul einen Befehl "playTTS" hätte, das auf das Text2SpeechModul zugreift.

LG
Alex.
FHEM auf RaspberryPi 4
Homematic

dominik

Als schnelle Lösung

set <name> play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Das%20ist%20ein%20Chromecast%20Test

Lokale Files kann man noch nicht abspielen, das setzt nämlich einen laufenden http Server voraus.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

alexmetz

Zitat von: dominik am 27 Dezember 2016, 23:52:34
Als schnelle Lösung

set <name> play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Das%20ist%20ein%20Chromecast%20Test

perfekt. Und so einfach! Danke!
Zitat von: dominik am 27 Dezember 2016, 23:52:34
Lokale Files kann man noch nicht abspielen, das setzt nämlich einen laufenden http Server voraus.
Fhem ist doch ein http-Server. Deshalb hatte ich auch versucht, das mp3 unter /opt/fhem/www/tts/... abzulegen. Das klappt über den Browser, nicht aber über das Chromecast-Modul. Selbst mit http://usr:pwd@192.xxx.xxx.xxx:8083/fhem/...

Gruß,
Alex.
FHEM auf RaspberryPi 4
Homematic

alexmetz

#117
Zitat von: mahowi am 21 Dezember 2016, 08:50:51
Kann man zumindest die Meldung dazu im Log unterdrücken? Bei mir ist der Fernseher aus, solange ich nicht zuhause bin, und damit auch der Chromecast, da er daran angeschlossen ist. Jetzt bekomme ich natürlich den halben Tag lang alle 10 sec. einen Eintrag ins Log.

Im Anschluss an obiges. Ich habe den Chromecast auch nur an, wenn mein Receiver an ist. Das führt dazu dass Fhem immer dann unendlich langsam wird, wenn der Chromecast aus ist. Zuletzt ist fhem sogar abgestürzt. Letzter Log-Eintrag:
ERROR:pychromecast.socket_client:Failed to connect, retrying in 2.000000s
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pychromecast/socket_client.py", line 246, in initialize_connection
    self.socket.connect((self.host, self.port))
  File "/usr/lib/python2.7/ssl.py", line 824, in connect
    self._real_connect(addr, False)
  File "/usr/lib/python2.7/ssl.py", line 811, in _real_connect
    socket.connect(self, addr)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 113] Keine Route zum Zielrechner


Übrigens stürzt er nicht sofort ab sondern hängt erst ein paar Minuten (keine Reaktion, aber Fhem läuft laut "ps -A" noch).

Gruß,
Alex.
FHEM auf RaspberryPi 4
Homematic

Fhernsteuerer

Guten Abend,

hatte soeben auch vor, dein Plugin ausgiebig zu testen. Allerdings scheitert es bei mir schon an der Installation.
Ich komme bis zu folgendem Punkt:

pi@raspberrypi:~ $ sudo cpanm Inline::Python
Inline::Python is up to date. (0.52)



pi@raspberrypi:~ $ perl inlinetest.pl
Can't load '/usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/auto/Inline/Python/Python.so' for module Inline::Python: /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/auto/Inline/Python/Python.so: undefined symbol: PyMethod_Type at /usr/lib/arm-linux-gnueabihf/perl/5.20/DynaLoader.pm line 187.
at -e line 0.
Compilation failed in require at (eval 5) line 1.
Error. You have specified 'Python' as an Inline programming language.

I currently only know about the following languages:
    Foo, foo

If you have installed a support module for this language, try deleting the
config-arm-linux-gnueabihf-thread-multi-64int-5.020002 file from the following Inline DIRECTORY, and run again:

    /home/pi/_Inline

(And if that works, please file a bug report.)

at inlinetest.pl line 1.
BEGIN failed--compilation aborted at inlinetest.pl line 1.
pi@raspberrypi:~ $


Woran liegt das?

Grüße
fns

dominik

@fhernsteuerer, hast du schon versucht das in der Fehlermeldung angegebene Verzeichnis zu löschen?

@Alex, bin noch dabei da eine vernünftige Lösung zu finden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik