[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

chtischer

Welche Pakete? Bekomme das Module auch nicht zum laufen...

cramu

Hallo @chtischer,

ich habe Deine Antwort und auch Deine PN gelesen.
Aktuell gibt es noch das Problem, dass ich nach einem Neustart des RasPi das Webinterface von FHEM nicht mehr aufrufen kann.
Sollte ich die Ursache lokalisieren und eliminieren können, werde ich die einzelnen Schritte hier nochmal posten.
Da am Wochenende ein Festival ansteht, werde ich wohl erst nächste Woche weiterkommen . .

cramu

Hab mich heute doch nochmal drangesetzt.
Mit folgenden Paketinstallationen bereitet man ein frisch aufgesetztes Raspbian Jessie für die Installation von FHEM und dem Chromecast-Modul vor:

sudo apt-get update && sudo apt-get -y upgrade && sudo reboot

sudo apt-get -f install && sudo apt-get -y install perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl ttf-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl
sudo apt-get install python-dev
sudo apt-get install libextutils-makemaker-cpanfile-perl
sudo apt-get install python-pip
sudo pip install netifaces
sudo pip install enum34
sudo pip install pychromecast
sudo pip install youtube-dl
sudo apt-get install cpanminus
sudo cpanm Inline::Python


Danach kann man FHEM installieren und updaten, das Chromecast-Modul hinzufügen und nach einem 'shutdown restart' ein Chromecast Device anlegen.

chtischer

Vielen Dank!

Leider keine Besserung.

Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_CHROMECAST.pm line 531.


Ich werde wohl den rpi neu aufsetzen.

Esjay

Zitat von: chtischer am 11 August 2017, 10:12:43
Vielen Dank!

Leider keine Besserung.

Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_CHROMECAST.pm line 531.


Ich werde wohl den rpi neu aufsetzen.

Hast du mal alles deinstalliert, was Pyton angeht? Bei mir ist es zwar schon länger her, aber ich hatte auch Probleme, bis ich dann mal radikal alles gelöscht habe, was mit Pyton betrifft. Danach sauber neu installiert, und ab dann ging es. Ich meine, wenn du eh neu aufsetzen willst, backup von fhem ziehen, und erfahrungen sammeln. Mehr "zerschießen" geht ja dann nicht.
Gruß

dominik

@carmu
Danke für deine Installationsanleitung. Ich werde diese ins Modul mit aufnehmen.

Werde das Modul auch noch in 98_GOOGLECAST.pm umbenennen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Habe nun die letzte Version ins SVN commitet. Sollte also ab morgen per Update verfügbar sein.

Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Enlightning Man

Sehr cooles Modul schonmal. Danke dafür! :)

Habe eine Frage:
Ich benutze Dein Modul, um bei mir den Verstärker automatisch auf AUX einzuschalten sobald der Chromecast Audio im AUX Eingang angeht.

Leider gibt mir der CCA keine wirklich verlässlichen Statusinformationen was seinen aktuellen Zustand angeht.
Bspw. hatte ich heute n den letzten paar stunden ab und an mal Musik angemacht, aber gerade läuft nichts. Status ist trotzdem:

  • presence: online (seit mehreren Stunden)
  • idle (seit mehreren Wochen)
  • castType: audio (auch seit mehreren Wochen)


Ich sehe kein Reading anhand dessen ich sowas erkennen kann wie:

  • Läuft gerade die Wiedergabe?
  • Ist die Wiedergabe gerade pausiert / gestoppt?

Ich habe das Problem für mich so gelöst, dass ich ein Notify auf den "mediaTitle" change gelegt habe:
define wz_cca_playback_notify notify wz_chromecast_audio:mediaTitle.* set boombox on;;set boombox input aux;
Der Effekt klappt soweit, dass wenn immer der per Google Play Music wiedergegebene Song aktualisiert wird, der Verstärker angeschaltet und auf AUX gestellt wird.
Aber irgendwie fände ich es schöner, wenn man tatsächlich den aktuellen Zustand irgendwie mitbekäme...

Zum Beispiel würde ich auch gerne den Verstärker wieder ausschalten sobald das Ding 10 Minuten auf Pause steht und ihn wieder anschalten wenn die Wiedergabe fortgesetzt wird oder so Dinge.

Gibt es da eine Möglichkeit?

(Benutze gerade die Version, die heute morgen noch hier im Thread verlinkt war)

Schöne Grüße!

dominik

Hi,

danke für das Feedback. Hab mir nochmals das MediaStatus Element angesehen. Dort gibt es auch player_state welches dann PLAYING, PAUSED anzeigt. Werde das im nächsten Update mit berücksichtigen :)

Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Ich hab das Modul gerade aktualisiert. State zeigt nun playing, usw. an, ein paar neue Readings habe ich auch gleich mit aufgenommen. :)

# v2.0.0 - 20170812
# - CHANGE:   renamed to 98_GOOGLECAST.pm
# - CHANGE:   removed favoriteName_X attribute, it was never used
# - BUGFIX:   updated commandref with further required packages
# - FEATURE:  state reading now represents status (online, offline,
#               playing, paused, buffering)
# - FEATURE:  new readings mediaContentId, mediaCurrentPosition,
#               mediaDuration, mediaPlayerState, mediaStreamType
# - BUGFIX:   change volume to represent integer values only

Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Enlightning Man

Hi dominik.

Hab direkt mal aktualisiert.
Bekomme beim update derzeit noch eine Warnung:

2017.08.13 11:41:37 1 : Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while
2017.08.13 11:42:44 1 : *** EN FHEM/98_CHROMECAST.pm: ignoring text due to DOS encoding


Update selbst hat aber funktioniert und der device state und mediaPlayerState funktioniert jetzt prima! Danke schonmal :)

Für die, die es interessiert, hier mal ne kleine Variante das so in FTUI darzustellen. Noch nicht perfekt, aber ein Anfang:

<div class="card full-height">
                        <header>Musik</header>
                        <div class="vbox items-space-around">
                            Zuletzt / gerade gespielt
                            <div data-type="image" data-device="wz_chromecast_audio" data-get="mediaImage" class="mini"></div>
                            <div class="nowrap">
                                <div data-type="label"
                                     data-device="wz_chromecast_audio"
                                     data-get="mediaArtist"
                                     class="inline"
                                     ></div>-
                                <div data-type="label"
                                     data-device="wz_chromecast_audio"
                                     data-get="mediaTitle"
                                     class="inline"
                                     ></div>
                            </div>
                            <div class="hbox" style="height: auto;">
                                <div data-type="switch"
                                     data-device="wz_chromecast_audio"
                                     data-icon="fa-play"
                                     data-states='["playing", ".*"]'
                                     data-background-colors='["#aa6900", "#505050"]'
                                     data-set-on="play"
                                     data-set-off="pause"
                                ></div>
                                <div data-type="switch"
                                     data-device="wz_chromecast_audio"
                                     data-icon="fa-pause"
                                     data-states='["paused", ".*"]'
                                     data-background-colors='["#aa6900", "#505050"]'
                                     data-set-on="pause"
                                     data-set-off="play"
                                >
                                </div>
                                <div data-type="push" data-device="wz_chromecast_audio" data-icon="fa-power-off" data-set-on="quitApp"></div>
                            </div>
                        </div>
                    </div>


Screenshot im Anhang.


Nächster Feature request wären set Kommandos für Previous und Next Song :)

Grüße,
EM

dominik

#221
Hi EM,

die Meldung bzgl. DOS Formatierung kam bei mir nicht. Werde beim nächsten Update aber nochmals sicherstellen, dass das Encoding stimmt.
Previous und Next kommt dann auch, das sollte kein Problem sein.

//Edit: Previous und Next ist leider beim Chromecast nicht unterstützt. Was geht ist "rewind" (Titel wird von Beginn abgespielt) und "skip" (Titel wird geskipped und das nächste Lied - wenn vorhanden - gestartet)

Die FTUI Integration sieht sehr schick aus.  :) Ich könnte das in einem "get ... ftui" Befehl oder so einbauen, weil eine andere Möglichkeit das direkt im Modul bereitzustellen ist mir leider nicht bekannt.

Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

b4r7

Als kleiner Tipp an alle:

devStateIcon playing:rc_PLAY online:rc_GREEN offline:rc_RED paused:rc_PAUSE buffering:rc_YELLOW

Schaut ganz gut aus =)
FHEM auf Debian VM (FreeNAS bhyve)
HMUart + ZME-UZB1 über RPi2/ser2net

chtischer

Alles neu... es läuft!

Einziges Problem. Wenn ich shutdown restart ausführe, bleiben sie Offline. Ich muss sie neu anlegen, sonst läuft nix. Auch wenn ich nur einen neu anlege, bleibt der andere offline.

Gruß

buki

Hallo miteinander,

habe versucht das neue Modul zu benutzen und bekomme im Log diese Fehlermeldung:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pychromecast/__init__.py", line 12, in <module>
    from .config import *  # noqa
  File "/usr/local/lib/python2.7/dist-packages/pychromecast/config.py", line 6, in <module>
    import requests
  File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 97, in <module>
    from . import utils
  File "/usr/local/lib/python2.7/dist-packages/requests/utils.py", line 42, in <module>
    if platform.system() == 'Windows':
  File "/usr/lib/python2.7/platform.py", line 1286, in system
    return uname()[0]
  File "/usr/lib/python2.7/platform.py", line 1253, in uname
    processor = _syscmd_uname('-p','')
  File "/usr/lib/python2.7/platform.py", line 988, in _syscmd_uname
    rc = f.close()
IOError: [Errno 10] Keine Kind-Prozesse
2017.08.14 18:16:04 1: reload: Error:Modul 98_GOOGLECAST deactivated:
Error -- py_eval raised an exception at /usr/local/lib/i386-linux-gnu/perl/5.22.1/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 553.


Meine Hardware ist ein Intel Nuc mit Ubuntu 16.04.3 LTS.
Habe alle benötigten Pakete installiert, so wie in der commandref beschrieben.

Wäre für Anregungen sehr dankbar.

Gruß Sven