[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

dominik

@Kai Hawaii, schau mal ob es den Ordner /opt/fhem/_Inline bei dir gibt. Den muss der FHEM Prozess anlegen können.

@ErzGabriel, sorry, aber da habe ich jetzt keine weitere Idee. Da musst du nun selbst weiter googeln um es richtig kompiliert zu bekommen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Kai Hawaii

Jau, das scheint soweit funktioniert zu haben:

Zitatpi@smarthome:/opt/fhem/_Inline $ cat config-arm-linux-gnueabihf-thread-multi-64int-5.020002
version : 0.80
languages : %
    Foo : Foo
    PYTHON : Python
    Python : Python
    foo : Foo
    py : Python
    python : Python
types : %
    Foo : interpreted
    Python : interpreted
modules : %
    Foo : Inline::Foo
    Python : Inline::Python
suffixes : %
    Foo : foo
    Python : pydat

vbs

Zitat von: ErzGabriel am 19 November 2016, 11:55:05
Ist jetzt alles installiert. Fehler bleibt.
Ich denke, du brauchst das Paket "python-dev", wenn er sagt, dass er Python.h nicht finden kann.

ErzGabriel

@vbs Danke, genau da lag das Problem.

mahowi

#34
Zitat von: dominik am 19 November 2016, 09:55:48
@mahowi, mach mal ein "shutdown restart" und gib Bescheid ob es dann funktioniert.

Nach "shutdown restart" kommt beim Versuch, einen Chromecast zu definieren dieselbe Meldung:
2016.11.21 08:38:25.511 1 : reload: Error:Modul 98_CHROMECAST deactivated: Failed to autogenerate /opt/fhem/_Inline/config-arm-linux-gnueabihf-thread-multi-64int-5.024001. at ./FHEM/98_CHROMECAST.pm line 214. BEGIN failed--compilation aborted at ./FHEM/98_CHROMECAST.pm line 214.

2016.11.21 08:38:25.511 0 : Failed to autogenerate /opt/fhem/_Inline/config-arm-linux-gnueabihf-thread-multi-64int-5.024001. at ./FHEM/98_CHROMECAST.pm line 214. BEGIN failed--compilation aborted at ./FHEM/98_CHROMECAST.pm line 214.
[/s]

Nach Neuinstallation von pychromecast und Inline::Python klappt es jetzt doch.
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

Fixel2012

Moin,

bin auch an dem Modul Interessiert, vielleicht eine Alternative zum teuren SONOS Lautsprecher?

Naja aufjedenfall habe ich keine Ahnung wie und wo ich die Datei 98_CHROMECAST.pm einfüge ;D

Würde mir jemand kurz den Pfad verraten?  :-[

Grüße

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

ErzGabriel

Hi Felix.
Die Datei muss in den Pfad /opt/fhem/FHEM
Da liegen auch die anderen pm Dateien.

Fixel2012

Zitat von: ErzGabriel am 25 November 2016, 13:18:26
Hi Felix.
Die Datei muss in den Pfad /opt/fhem/FHEM
Da liegen auch die anderen pm Dateien.

Danke schön, muss ich sonst noch etwas beachten bzw Installieren?

Der command sudo pip install pychromecast lässt sich bei mir nicht ausführen :o

sudo: pip: command not found



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

ErzGabriel

Da wirst Du das gleiche Problem haben wie ich es hatte. Dir fehlen Pakete auf dem Rechner.
Wenn du den kompletten Beitrag mal durchliest, dann findest du die Lösungen da, habe es auch mit Hilfe des Beitrages und der Leute, die geantwortet haben, hinbekommen.

Fixel2012

#39
Also, erstmal Danke für das Modul und die Hilfe bei der Installation!

Habe noch einige Verbesserungs Vorschläge/Wünsche ;)

Wie du schon in deinen Bugs aufgelistet hast, braucht der set Command leider circa 10 sec zum ausführen der Aktion! - ist leider sehr störend, ein Fix wäre super!  :)

Außerdem wäre die Funktion Songs zu skippen und lauter/leiser noch super hilfreich! Ist das machbar?

Die Implementierung von Spotify wäre auch Super, habe eben schon versucht einen Playlist Link oder Song Link unter "set playAudio" einzufügen, ging aber leider nicht. Webradio hingegen funktioniert Super!

Gibt es Außerdem eine Möglichkeit Webradios "abzuspeichern" und mit einem Mausklick wiederzugeben? - Denke das ist kein Problem ich weiß nur leider nicht wie  ;D

Grüße

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

dominik

@Fixel2012, danke für dein Feedback. Zu deinen Punkten:

- set Command dauert zu lange: Arbeite noch an einen Fix dafür. Liegt im Moment an der Verwendung des Python Codes welcher eine eigene Eventloop hat die im Hintergrund nicht weiter läuft. Es kann noch etwas dauern bis ich da einen passenden Fix finde.

- skippen/lauter/leiser: Sofern pychromecast diese Funktionalitäten unterstützt, ist das kein Problem mit einzubauen. Möchte aber zuerst das Problem mit den 10s Bug lösen bis ich weitere Features mit aufnehme.

- Spotify: Kann ich mangels Spotify Premium aktuell nicht testen. Könnte mir vorstellen, dass man da ähnlich wie bei Youtube einen "Controller" in pychromecast implementieren muss.

- Webradios speichern: Kann ich gerne mit aufnehmen, das ist überhaupt kein Problem das in den Attributen zu speichern. Da ich beim BOSE Modul gleiches gemacht habe, frage ich mich aber mittlerweile, ob es nicht sinnvoller ist ein "Radio" Modul zu erstellen welches standardisierte Interfaces zu den Abspielmodulen (BOSE, CHROMECAST, SONOS, ...) unterstützt.

Also Prio 1 hat bei mir weiterhin die vernünftige Integration von pychromecast ohne 10s Bug. Solange das nicht gefixed ist, werde ich vorerst noch keine neuen Features aufnehmen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Fixel2012

Als prio 1 das 10 sekunden Problem zu setzen scheint in meinen Augen sinnvoll zu sein!


Verstehe ich das richtig, dass du so zu sagen "abhängig" von pychromecast bist?

Werden die  pychromecast Funktionen noch weiter entwickelt?

Freue mich über alle Funktionen die noch dazu kommen, ich bin gespannt!

Lass dir nur Zeit bei der weiterentwicklung! :)

Grüße
Felix

Gesendet von meinem LG-H815 mit Tapatalk

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

dominik

pychromecast wird noch aktiv weiterentwickelt (https://github.com/balloob/pychromecast/). Daher möchte ich keine eigene Implementierung des Protokolls vornehmen. Perl Implementierungen konnte ich keine finden und die anderen Implementierungen schienen mir auch nicht so aktiv zu sein wie pychromecast.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

#43
Zweiter Prototyp :)

Update
Habe es geschafft die pychromecast Library so umzubauen, dass keine 10s mehr geblockt werden. Bislang ist das eine fork Version von mir, werde dann versuchen die Änderungen in die offizielle Version mit aufzunehmen.
Requirements durchlesen vor der Verwendung!

Bugs / Herausforderungen
- Beim Define (also auch beim Starten) wird FHEM für ca. 10s geblockt
- 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 - NEU
Linux Distribution jessie
sudo pip uninstall pychromecast (zuerst muss die aktuelle Lib deinstalliert werden)
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 playAudio http://swr-mp3-m-swr3.akacast.akamaistream.net:80/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3
set ccWohnzimmer playVideo 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

Wow, Super!

Das ging ja schnell! Werde es gleich morgen ausprobieren :D

Was ist damit gemeint?:
Zitat- Beim Define (also auch beim Starten) wird FHEM für ca. 10s geblockt

Beim define wird Fhem geblockt - ist klar


Zitat(also auch beim Starten)
Starten von Fhem? Oder welcher Start ist hier gemeint?

Grüße und einen schönen Abend noch
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