[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

michaelw

Zitat von: siggi85 am 07 Februar 2018, 12:21:00
Kann mir hier jemand helfen?
Hast du irgendwas anderes installiert, was requests vorraussetzt? Bei mir lief bis gestern das Googlcast Modul nicht, auch mit der Meldung cannot import name certs. Gestern habe ich auf meinem Ubuntu ein Update für Certbot bekommen. Damit wurden auch ein paar andere Abhängigkeiten ebenfalls aktualisiert. Seit dem Certbot Update funktioniert das Ganze bei mir (also irgendwie umgekehrt zu deinem Verhalten). (siehe auch von mir von gestern.)

siggi85

Zitat von: michaelw am 07 Februar 2018, 12:32:45
Hast du irgendwas anderes installiert, was requests vorraussetzt? Bei mir lief bis gestern das Googlcast Modul nicht, auch mit der Meldung cannot import name certs. Gestern habe ich auf meinem Ubuntu ein Update für Certbot bekommen. Damit wurden auch ein paar andere Abhängigkeiten ebenfalls aktualisiert. Seit dem Certbot Update funktioniert das Ganze bei mir (also irgendwie umgekehrt zu deinem Verhalten). (siehe auch von mir von gestern.)

Nach dem Update von FHEM hatte ich das Problem mit dem Modul requests. Nach dem ausführen der Befehle in der commandref (anscheinend haben sich im Laufe der Zeit weitere Abhängigkeiten ergeben), kam dann die certs Fehlermeldung. Seitdem habe ich während der Fehlersuche mitunter auch mal wieder ein "apt-get update/upgrade" durchgeführt.
Kann mir jemand ggf. den Inhalt der Certs.py schicken? Meine ist nämlich ziemlich kurz und würde checken ob (warum auch immer) die Datei nicht den richtigen bzw. genug Inhalt hat um als Modul importiert zu werden.

duke-f

Ich will ja nichts heraufbeschwören, aber auf meiner Sparversion auf dem Raspberry Pi scheint das ganze jetzt soweit zumindest stabil zu laufen, ohne dass diese Socket-Probleme auftreten. Allerdings nutze ich dieses Modul praktisch noch nicht direkt, da es jetzt wie gesagt auf einem Parallel-Universum zum Hauptsystem ohne jegliche Verknüpfung läuft.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Det20

#438
In fast allen Fällen kommt zunächst im Log "Found and deleted bad fileno for GOOGLECAST-irgendwas". Anschließend dann "GOOGLECAST (irgendwas): checkConnection, connection failure, reconnect...".
Die Verbindung wird also vom Mainloop beendet, weil das Handle ungültig ist. Die Frage ist, wieso die Verbindung zum Socket vom ccdevice plötzlich weg ist, im System aber offen bleibt.

Scheint aber eher Bug im pychromecast zu sein als im Modul. Es gibt ja regelmäßig ein Update davon, traue mich aber nicht, das zu installieren. Nachher geht wieder nix mehr.

dominik

Hallo zusammen,
aus privaten Gründen fehlt mir gerade etwas die Zeit hier wieder mehr aktiv zu sein. Ich habe aber per Mail den Hinweis bekommen, dass es scheinbar noch immer Probleme mit offenen Sockets gibt?

Ich habe bei mir die letzte pychromecast Version und 98_GOOGLECAST in der Version 2.0.2. Mit 12 Tagen FHEM Uptime sehe ich bei mir nur folgende Connections
pi@raspberrypi ~ $ netstat -a|grep chrome
tcp      798      0 raspberrypi.local:39256 chromecast.lan:8009     CLOSE_WAIT
tcp      798      0 raspberrypi.local:39496 chromecast.lan:8009     CLOSE_WAIT
tcp      798      0 raspberrypi.local:50748 chromecast.lan:8009     CLOSE_WAIT
tcp     1276      0 raspberrypi.local:45874 chromecast.lan:8009     ESTABLISHED
tcp        0      0 raspberrypi.local:49110 chromecast.lan:8009     ESTABLISHED
tcp     1276      0 raspberrypi.local:38284 chromecast.lan:8009     ESTABLISHED

Prüft bitte mal ob ihr die letzten Versionen nutzt wg. den offenen Sockets.

Zur Anfrage wg. speak Limitierung auf 100 Zeichen. Ich kann mich erinnern, dass Google das mal auf 100 Zeichen limitiert hatte. Das dürfte wohl nicht mehr der Fall sein, daher werde ich die Limitierung rausnehmen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

duke-f

Also ich hatte gerade auf meinem Minimal-FHEM auf dem Raspberry mit nahezu ausschließlich GOOGLECAST zu ersten mal die Log voll geknallt mit den Meldungen "Too many files open". Das war aber genau dann, als ich auch FireTV dahin verlagert hatte. Jetzt kann ich nicht mehr sagen, ob dies damals auf dem Hauptsystem auch erst dann auftrat (Man sollte auch bei sowas anfangen genau Protokoll zu führen).

Ob sich da etwas beißt? Habe jetzt FireTV wieder entfernt und sehe mal die nächten Tage weiter.

GOOGLECAST habe ich
98_GOOGLECAST.pm  15833 2018-01-08 19:44:11Z dominik
von wann ist die letzte Version von pychromecast? Wird das auch mit apt-get upgrade aktualisiert?
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

dominik

PyChromecast sollte man mit
sudo pip install --upgrade pychromecast
installieren und aktualisieren.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Det20

Was für ein Glück ...


pi@raspberrypi:~ $ sudo pip install --upgrade pychromecast
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name IncompleteRead

dominik

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

Det20

#444
Ach dieses PIP Gedöns ist doch Mist, spiele nun nach knapp 1 Stunde ein Image zurück, es hat leider nix mehr funktioniert.
So recht werde ich aus den Trace-Fehlermeldungen auch nicht schlau, dagegen sind Java-Fehlermeldung ja ein Witz :)


2018.02.17 13:41:24 1: PERL WARNING: Subroutine GOOGLECAST_Read redefined at ./FHEM/98_GOOGLECAST.pm line 575, <$fh> line 1747.
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
2018.02.17 13:41:24 1: reload: Error:Modul 98_GOOGLECAST deactivated:
Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm line 221.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 648.

2018.02.17 13:41:24 0: Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Inline/Python.pm line 221.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 648.


urllib3+ldconfig sind installiert, Anpassung in .PY gemacht.

dominik

Installiere mal pychromecast komplett neu. Also zuerst komplett remove und dann install. Ich glaube deinen Fehler hatte ich auch mal.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

duke-f

bei mir scheint das wesentliche aber aktuell zu sein. Auf dem Raspberry wird gar nichts aktualisiert, auf dem Cubietruck wird gemeldet:


root@cubie:~# sudo pip install --upgrade pychromecast
Requirement already up-to-date: pychromecast in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: requests>=2.0 in /usr/local/lib/python2.7/dist-packages (from pychromecast)
Requirement already up-to-date: six>=1.10.0 in /usr/local/lib/python2.7/dist-packages (from pychromecast)
Requirement already up-to-date: protobuf>=3.0.0 in /usr/local/lib/python2.7/dist-packages (from pychromecast)
Requirement already up-to-date: zeroconf>=0.17.7 in /usr/local/lib/python2.7/dist-packages (from pychromecast)
Requirement already up-to-date: idna<2.7,>=2.5 in /usr/local/lib/python2.7/dist-packages (from requests>=2.0->pychromecast)
Requirement already up-to-date: urllib3<1.23,>=1.21.1 in /usr/local/lib/python2.7/dist-packages (from requests>=2.0->pychromecast)
Collecting certifi>=2017.4.17 (from requests>=2.0->pychromecast)
  Downloading certifi-2018.1.18-py2.py3-none-any.whl (151kB)
    100% |████████████████████████████████| 153kB 483kB/s
Requirement already up-to-date: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python2.7/dist-packages (from requests>=2.0->pychromecast)
Collecting setuptools (from protobuf>=3.0.0->pychromecast)
  Downloading setuptools-38.5.1-py2.py3-none-any.whl (489kB)
    100% |████████████████████████████████| 491kB 225kB/s
Requirement already up-to-date: netifaces!=0.10.5 in /usr/local/lib/python2.7/dist-packages (from zeroconf>=0.17.7->pychromecast)
Requirement already up-to-date: enum-compat in /usr/local/lib/python2.7/dist-packages (from zeroconf>=0.17.7->pychromecast)
Requirement already up-to-date: enum34 in /usr/local/lib/python2.7/dist-packages (from enum-compat->zeroconf>=0.17.7->pychromecast)
Installing collected packages: certifi, setuptools
  Found existing installation: certifi 2017.11.5
    Uninstalling certifi-2017.11.5:
      Successfully uninstalled certifi-2017.11.5
  Found existing installation: setuptools 38.4.0
    Uninstalling setuptools-38.4.0:
      Successfully uninstalled setuptools-38.4.0
Successfully installed certifi-2018.1.18 setuptools-38.5.1
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Kuzl

Wie groß ist denn dieses PyChromecast?
Evtl. wärs doch besser die ganze Kommunikation selbst in die Hand zu nehmen und in Perl auszuprogrammieren.
Dann hat man die ganzen Probleme und das umständliche installieren und kompilieren nicht mehr.

duke-f

Kannst Du das? Ich glaube nicht, dass Dominik traurig wäre, wenn sich jemand dessen annehmen würde.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

dominik

Wenn das jemand in Perl umsetzen (und weiterentwickeln) will, immer gerne. Ich beziehe mich gerne auf bestehende Libraries um Aufwände zu reduzieren.
Nachdem Python aber aktuell mehr Hype als Perl hat, müsste man eher FHEM in Python abbilden, das würde viele Entwicklungen erleichtern, da doch einige Python Libraries vorhanden sind.

Btw, habe gerade noch einen Fix für die offenen Sockets am Laufen, am Wochenende gibt's dann hoffentlich eine finale Lösung.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik