[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

qu1nk

Zitat von: flolee am 06 April 2017, 12:15:40
jup, leider habe auch ich das Problem. hast du es mittlerweile zum laufen bekommen?

danke
lg
flo

Hi,
mir hat das hier geholfen:
sudo pip install netifaces

Natürlich mit der angepassten Version aus Post #152.

Hoffe es klappt.
Gruß


flolee

nein, das wars leider auch nicht  :-[

aber danke trotzdem :)

Alextronicde

Hallo,

trotz der Verwendung der letzten Version des Moduls bleibt FHEM hängen wenn der Chromcast nicht erreicht wird. Sobald ich den Chromecast wieder mit Spannung versorge funktioniert alles wieder.

Sind vielleicht noch andere Teile der Installation zu updaten?

Gruß
Alex

siggi85

Hey. Kann es sein, dass das Chromecastmodul die komplette FHEM Instanz zum ABturz bringt, wenn man ein Chromecastdevice darüber betreibt, welches nicht dauerhaft an ist? Seit ich mein Wohnzimmer Chromecast aus der Konfiguration entfernt habe, läuft mein FHEM wieder stabil.  :o :(

Fixel2012

Ihr könntet mal versuchen ein presence device auf die Chromecast IP zu triggern. Und immer wenn dieser erreichbar ist bzw nicht mehr erreichbar, das Modul unloaden/loaden.

Weiß nicht ob das hilft, ist nur so eine Idee.

Grüße Fixel
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

siggi85

Zitat von: Fixel2012 am 29 April 2017, 13:55:13
Ihr könntet mal versuchen ein presence device auf die Chromecast IP zu triggern. Und immer wenn dieser erreichbar ist bzw nicht mehr erreichbar, das Modul unloaden/loaden.

Weiß nicht ob das hilft, ist nur so eine Idee.

Grüße Fixel

Das würde sicher funktionieren, sieht aber eher nach einer symptomatischen statt ursächlichen Lösung des Problems aus. :) Hat dieses Verhalten denn noch jemand anderes? Da ich das Chromecastdevice nicht disable konnte (das Attribut hat nicht existiert), habe ich es erst mal wieder entfernt. Dadurch gehen mir natürlich einige Funktionen verloren...  :(

Gruß
Siggi

JPP88

Das Problem mit chromecast hatte ich auch.
FHEM ist eingefroren, wenn ein Chromecast kein Strom mehr hatte. Aber es so gelöst, dass der Chromecast immer am Strom hängt, ich weiß nicht wirklich eine Lösung.

Aber prinzipiell  habe ich das Gefühl, dass FHEM öfters mal hängen bleibt, ob dies im Zusammenhang mit dem Chromecast Modul liegt kann ich leider nicht sagen haben vielleicht haben andere ähnliche Symptome bemerkt?

siggi85

Zitat von: JPP88 am 07 Mai 2017, 22:39:50
Das Problem mit chromecast hatte ich auch.
FHEM ist eingefroren, wenn ein Chromecast kein Strom mehr hatte. Aber es so gelöst, dass der Chromecast immer am Strom hängt, ich weiß nicht wirklich eine Lösung.

Aber prinzipiell  habe ich das Gefühl, dass FHEM öfters mal hängen bleibt, ob dies im Zusammenhang mit dem Chromecast Modul liegt kann ich leider nicht sagen haben vielleicht haben andere ähnliche Symptome bemerkt?

Bei mir hat sich das Problem ohne den Chromecast behoben. Leider kann ich seit dem natürlich meine Harmonytasten nicht mehr nutzen um den Chromecastplayer zu bedienen...  :'(
Das Finden und Verbinden eines Chromecasts müsste im Modul etwas überarbeitet werden. Ein Ping vor einem Verbindungsversuch könnte ggf. eine Lösung bringen?! Habe schon mal über den Code geschaut, das übersteigt aber leider etwas meine Fähigkeiten.  ??? Kann sich jemand anderes ggf. daran versuchen?

siggi85

Gibt es niemand der das Chromecast Modul bearbeiten kann? Im Prinzip funktionieren die Key Features. Das Modul müsste nur in der Erkennung von aktiven Chromecasts angepasst werden.
Momentan kann das Modul die gesamte FHEM Instanz runterziehen wenn Chromecasts definiert sind, die nicht dauerhaft erreichbar sein (zB. wenn diese per USB vom Fernseher Strom beziehen). Ich hatte das Module über FakeRoku bereits auf meiner Harmony genutzt und vermisse diese Funktionen...  ::) :'(

dominik

Hallo zusammen,

leider fehlt mir im Moment die Zeit am Modul aktiv zu entwickeln. Dennoch will ich den "Blocking" Fehler in den nächsten Wochen ausmerzen.

Wenn ihr Probleme bei der Installation habt, bitte den Output von der Linux Konsole mit folgenden Kommandos posten:
python
>>> import pychromecast


Vorher sicherstellen, dass ihr folgende Pakete installiert habt:
sudo apt-get install python-enum34 python-netifaces

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

dominik

# v1.0.5 - 20170704
# - BUGFIX:  hopefuly fixed annoying hangs when chromecast offline
# - FEATURE: add presence reading (online/offline)

Bitte mal testen und mir Bescheid geben ob es nun FHEM ohne Hänger läuft wenn der Chromecast offline ist.

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

dominik

Habe heute noch eine Verbesserung implementiert. Aktuell benötigt die checkConnection Funktion nämlich ca. 12ms und wird alle 0.8s ausgeführt. Zukünftig benötigt die Funktion nur mehr 2ms und wird jede Sekunde ausgeführt. Nur beim Datenempfang wird diese öfter ausgeführt. Damit verbessert sich die Performance nochmals erheblich.

Update folgt heute oder morgen. Bitte dann um ausführliche Tests, wenn es gut läuft, würde ich es ins offiziell Repository aufnehmen wollen.

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

dominik

#192
# v1.0.6 - 20170705
# - BUGFIX:  speed up youtube video URL extraction with youtube_dl
# - BUGFIX:  fixed one more issue when chromecast offline
# - BUGFIX:  improved performance by adding socket to FHEM main loop

Voraussetzungen
sudo apt-get install libwww-perl python-
sudo pip install pychromecast
sudo pip install youtube-dl
sudo cpanm Inline::Python


Bitte um ausführliches Testing. Sowohl online und offline Modus sollten nun problemlos funktionieren.

Download im 1. Post.

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

LeoSum

#193
Hallo dominik,
ersteinmal danke dass du offenbar trotz Zeitstress hier noch die Probleme angehst!

ich wollte grade das gute Wetter nutzen um das Modul mal zu testen. Leider scheitere ich bislang kläglich.

Ich habe bereits händisch mehrfach auf verschiedenen Wegen die benötigte Pakete zu installieren. Leider hat das nicht zum Erfolg geführt.

Wenn ich das Modul mit reload 98_CHROMECAST laden möchte, erhalte ich im Log folgendes:
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/lib/python2.7/dist-packages/requests/__init__.py", line 68, in <module>
    _attach_namespace(urllib3, 'requests.packages')
  File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 63, in _attach_namespace
    module = __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/_securetransport/bindings.py", line 43, in <module>
    security_path = find_library('Security')
  File "/usr/lib/python2.7/ctypes/util.py", line 253, in find_library
    return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name))
  File "/usr/lib/python2.7/ctypes/util.py", line 246, in _findSoname_ldconfig
    f.close()
IOError: [Errno 10] No child processes


Ich habe mir daraufhin mal deinen Code angesehen und versucht den Python-Teil einfach mal von Hand in die Python Console gehackt, und siehe da es geht:
root@pi:~# 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.
>>> from __future__ import unicode_literals
>>> import pychromecast
>>> import time
>>> import logging
>>> import youtube_dl
>>> def CHROMECAST_findChromecastsPython():
...     logging.basicConfig(level=logging.CRITICAL)
...     return pychromecast.discovery.discover_chromecasts()
...
>>> CHROMECAST_findChromecastsPython()
[('192.168.178.8', 8009, UUID('ad58ce14-dd5f-bf51-0fe2-b6a9e4e66fd2'), u'Chromecast', u'CCK')]


jetzt bin ich ein bisschen ratlos, woran das liegen könnte. Eigentlich doch nur noch an dem Inline Python Perl Modul, oder?

dieses habe ich aber auch sicherheitshalber wie an anderer Stelle beschrieben bereits neu installiert:
root@pi:~# sudo cpanm --uninstall Inline::Python
Inline::Python contains the following files:

  /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm
  /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pod
  /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/auto/Inline/Python/Python.so
  /usr/local/man/man3/Inline::Python.3pm

Are you sure you want to uninstall Inline::Python? [y] y

Unlink: /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm
Unlink: /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pod
Unlink: /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/auto/Inline/Python/Python.so
Unlink: /usr/local/man/man3/Inline::Python.3pm
Unlink: /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/auto/Inline/Python/.packlist

Successfully uninstalled Inline::Python
root@pi:~# sudo cpanm Inline::Python
--> Working on Inline::Python
Fetching http://www.cpan.org/authors/id/N/NI/NINE/Inline-Python-0.55.tar.gz ... OK
Configuring Inline-Python-0.55 ... OK
Building and testing Inline-Python-0.55 ... OK
Successfully installed Inline-Python-0.55
1 distribution installed
root@pi:~# sudo reboot

dominik

Hi,

hier habe ich was gefunden:
https://bugs.python.org/issue26439

Ist bei dir ldconfig installiert?

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