[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

duke-f

Hab' jetzt die Änderung aus #278 rückgängig gemacht sowie


pip uninstall pychromecast
pip install chromecast


durchgeführt. Jetzt bekomme ich weiterhin
"Cannot load module GOOGLECAST"
und wieder etwas recht langes als Traceback:
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 1288, in system
    return uname()[0]
  File "/usr/lib/python2.7/platform.py", line 1255, in uname
    processor = _syscmd_uname('-p','')
  File "/usr/lib/python2.7/platform.py", line 990, in _syscmd_uname
    rc = f.close()
IOError: [Errno 10] No child processes
2018.01.09 22:17:33 1: reload: Error:Modul 98_GOOGLECAST deactivated:
Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 644.

2018.01.09 22:17:33 0: Error -- py_eval raised an exception at /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 644.


Ist das gut oder schlecht?

Als positiv interpretiere ich, dass ich folgendes jetzt bekomme:

root@cubie:/usr/lib/python2.7# python
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] 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'Chromecast0825']


Bin mir da jetzt nicht so sicher, was den Namen des Chromecast angeht: Mittels ping finde ich ihn nur als "Chromecast" gefunden habe, nicht jedoch als "Chromecast0825". Suche ich per Windows-App wiederum, heisst er "Chromecast0825.

Bin jetzt etwas irritiert. Mit dem genannten Bug blicke ich noch nicht wirklich durch, ob ich davon betroffen bin. Hab aber wirklich einen Netgear Accesspoint, ber den der Chromecast an der Fritzbox hängt.
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

Jetzt brauchst du nur mehr die platform.py Anpassung aus dem Thread und dann läuft es :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

duke-f

Heureka!!!!
Du bist zumindest für heute der absolut größte! Mein Chromecast ist angelegt. Schwere Geburt, aber sagt man nicht, dass solche Kinder dann umso mehr geliebt werden? ;)


2018.01.09 23:07:34 3: GOOGLECAST: GoogleCast v2.0.2
2018.01.09 23:07:34 3: GOOGLECAST: Chromecast initializing...


Danke, auch allen anderen Tipps hier.
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

Grml

#378
Zitat von: duke-f am 09 Januar 2018, 23:12:26
Mein Chromecast ist angelegt
Ist er auch nach einem shutdown restart noch "aktiv"? Oder bleibt er wie bei mir, scooty und wenigen anderen auf "Initialized" hängen und hat in presence dann "offline"? Wenn ja, hilft bei Dir das defmod von scooty dann auch?

@dominik: Also bei mir ist es so reproduzierbar: Ein neues Gerät anlegen ("GoogleAssistant.Keller"), Save Config drücken, alles ist ok. Ein zweites Gerät "GOOGLECAST-GoogleAssistant.Keller" wird automatisch angelegt (warum und wodurch auch immer). Nach einem FHEM Neustart ist state "online", presence "offline". Das zusätzliche Gerät "GOOGLECAST-GoogleAssistant.Keller" ist verschwunden. Erst wenn ich ein
defmod GoogleAssistant.Keller GOOGLECAST Keller
mache kommt das eigentliche Gerät wieder online und reagiert auch wie es soll. Auch das "GOOGLECAST-GoogleAssistant.Keller" ist dann wieder da. Bis zum nächsten Neustart. Dann geht das Spiel von vorne los.

Das habe ich bei allen GOOGLECAST-Devices. Egal ob Google Home, Chromecast Audio oder Chromecast Video.

Wo kommt dieses "Geistergerät" her, und warum wird das angelegt? Besteht ein Zusammenhang, dass meine Geräte offline gehen wenn das "Geistergerät" nicht mehr da ist?

EDIT: Im Bild habe ich nur das Gerät "Keller" per DEFMOD wieder online genommen, damit man das automatisch angelegte "Geistergerät" mal sieht. Die anderen Devices sind aktuell noch kaputt bzw. nicht per DEFMOD reaktiviert. Deshalb gibt es hier momentan keine "Geisterdevices".

duke-f

#379
Nein, er ist nicht aktiv.
STATE: initialized
presence: offline

Und das genannte "defmod" ändert nichts an diesem Zustand.


EDIT:
Muss mich korrigieren. Hatte da offensichtlich noch einen Fehler hinsichtlich meiner oben genannten Verwiruung hinsichtlich des Namens. Der Chromecast heißt nun doch "Chromecast0825" und nicht "Chromecast"
Damit habe ich nach Shutdown restart auch mehr Infos in den readings und
presence: offline
state: online

In den Internals
STATE: initialized

Das bleibt auch so nach bewusstem defmod.[Stimmt nicht - defmod hilft. Hatte mich schon wieder mit dem Namen vertan.] Bin jetzt aber auch noch nicht ganz so weit zu sehen, wie ich das alles dann steuern soll. Ziel ist eigentlich im Wesentlichen: Meinen Samsung TV kann ich bei Telefonanruf auf Pause setzen, beim Auflegen geht's automatisch weiter. Geht eben nicht beim Einsatz von Chromeast. Genau das will ich eigentlich damit beheben.
Selbstverständlich wird es nicht dabei bleiben.
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

duke-f

Irgendwie ist doch noch der Wurm drin. Jetzt wird zwar das Modul scheinbar problemlos angelegt, aber das "shutdown restart"-Problem besteht weiterhin und ist trotz diesmal sicher korrekter Namenseingabe selbst weder durch ein defmod noch durch ein komplettes Löschen und neu anlegen zu lösen. Diesmal wird aber wieder auch der Chromecast nicht durch das Prozedere auf der Kommandoebene gefunden. Es scheint da wirklich noch ein Problem mit der Erkennung hinter dem Accesspoint zu geben. Am Notebook im Wohnzimmer, das über den gleichen Accesspoint im Netz ist, wird der er gefunden.
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

scooty

Hallo Dominik,

Zitat von: dominik am 09 Januar 2018, 21:52:16
@scooty, die Devices können eigentlich nur auf initialized bleiben, wenn kein Argument angegeben ist. Siehe Code hier:
https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/98_GOOGLECAST.pm#L148

Gerade auch nochmal die Parameter-/Namenseingabe geprüft, leider, wie auch von duke-f beschrieben, gehen die GOOGLECAST-Devices nur auf "initialized" nach "shutdown restart".
Habe die GOOGLECAST-Devices auch 'mal gelöscht, "shutdown restart", neu angelegt (siegehen nach Neuanlage auf "online") und wieder "shutdown restart". Auch da leider da gleiche Verhalten mit nur "initialized".

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

scooty

Hallo Dominik,

"letzte" ;) Hoffnung war, dass es auf meinem Produktivsystem anders aussieht, und ja, dort verhalten sich die GOOGLECAST-Devices wie gewünscht, gehen "online" auch nach einem "shutdown restart".

Vielleicht helfen untenstehende Infos zu den Unterschieden der Systeme weiter?
FHEM hatte ich auf beiden Systemen mit heutigem "update" versorgt.

Testsystem:
uname -a
===============
Linux abcabc 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux

cat /etc/os-release
===============
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian


Produktivsystem:
uname -a
===============
Linux xyzxyz 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux

cat /etc/os-release
===============
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian


Ohne ins Detail gehen zu wollen, netzwerktechnisch ist die Anbindung des Produktivsystems auch etwas "direkter" zu den aktuellen WLAN-Accesspoints der GOOGLECAST-Devices.
OK, OK, wahrscheinlich zu viel Änderungen um das Problem eingrenzen zu können, aber vielleicht helfen die Infos doch?

Also kurz und gut, beim mir funktioniert es jetzt, aber vielen Dank für Deine Unterstützung,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

duke-f

#383
So, hab' jetzt auch nochmal etwas weiter versucht - ohne wirkliche Erkenntnis. Wird leider etwas länger. Aber vielleicht hilft's.

Also so ganz einfach lässt sich der Chromecast auch ohne Neustart von FHEM nicht immer finden. Vielleicht hängt das wirklich mit meiner lokalen WLAN-Konfiguration zusammen. Gerade wurde er gefunden, dann war er wieder weg, ohne dass ich etwas gemacht hätte. Dann habe ich ihn mal vom Strom getrennen und wieder eingesteckt, und prompt wurde er wieder empfangen. Jetzt läuft es gerade. Das große ABER:
Ich habe schon seit mittlerweile bald Jahrzehnten WLAN im Betrieb. Vor einigen Monaten habe ich gemäß der AVM-Empfehlung AP und Fritzbox mit dem gleichen Namen und Kennwort ausgestattet, weil so die automatische Wahl der Mobilgeräte optimiert sein soll. Hat jetzt allerdings den Nachteil, dass ich
a) nicht selber für jedes Gerät das jeweilige Netz fest zuordnen kann und
b) ich nicht immer erkenne, mit welchem WLAN ein Gerät verbunden ist.

Jetzt hatte ich gerade während des Neustarts des Chromecast sowohl an FB als auch an AP geschafft, den Verlauf zu verfolgen. Und zuerst hat sich der Chromecast offensichtlich mit der FB direkt verbunden, mit verhältnismäßig schwachem Empfang. Dann stand auch erst mal am TV die SSID meines WLANs unter dem Namen links unten. Dann ist diese SSID verschwunden nd dann hat sich scheinbar der Chromecast mit dem AP verbunden. Das ging alles recht schnell, vor ich weder vom PC aus noch von FHEM aus etwas starten konnte, aber danach war der Chromecast aus FHEM heraus zu sehen, obwohl über den AP und nicht direkt an der FB.

Ob das jetzt was hilft, kann ich nicht sagen. Vielleicht noch einen Punkt zu meiner Konfiguration: Mein Chromecast hat seine Stromversorgung vom TV und wird folglich nur gestartet, wenn der Fernseher läuft. So will ich das eigentlich auch lassen. Eventuell läuft das ganze aber stabiler, wenn er per Netzteil versorgt würde? Denke nicht, er sollte dann doch auch in sowas wie einen Ruhezustand gehen, wenn der Fernseher aus ist, dachte ich.
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

Tabu

Zitat von: duke-f am 10 Januar 2018, 19:18:12
Hat jetzt allerdings den Nachteil, dass ich
a) nicht selber für jedes Gerät das jeweilige Netz fest zuordnen kann und
b) ich nicht immer erkenne, mit welchem WLAN ein Gerät verbunden ist.

Ich habe ein ähnlich gelagertes Problem. Seit ich unser Haus mit Google Wifi (Mesh 3 Stk.) ausgestattet habe läuft das Modul leider nicht mehr rund.
Ich bekomme auch nach einer Neuanlage nur "initialized". Sieht so aus, als würde er die Chromecasts nicht mehr finden.  :'(

duke-f

Also bei scheint es jetzt so zu sein, dass mit etwas Geduld der CC auch gefunden wird. Und das Problem mit dem "shutdown restart" versuche ich erst mal mit einem einfachen automatischen defmod per at nach Start von FHEM. Mal sehen.
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

cramu

Im folgenden Repo findet sich eine inoffizielle Dokumentation der lokalen API des Google Home.
Hiermit sollte sich der Funktionsumfang des Moduls noch deutlich erweitern lassen:

https://rithvikvibhu.github.io/GHLocalApi/

Tabu

Meinen Beitrag 384 bitte ignorieren, der Fehler lag am DAU  ;D

Läuft wunderbar...

meddie

#388
Hallo zusammen,

ich habe mir ein Google Home und zwei Chromecast Audio zum testen bestellt, und nun bin ich über dieses Modul gestoßen. Ich habe laut Anleitung auf der ersten Seite die benötigten Komponenten installiert und habe anschließen den Define Befehl ausgeführt leider bekomme ich eine Meldung Cant load Module Googlecast. In der Log steht folgendes drin:
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 24, in <module>
    from . import certs
ImportError: cannot import name certs
2018.01.19 17:30:01 1: reload: Error:Modul 98_GOOGLECAST deactivated:
Error -- py_eval raised an exception at /usr/local/lib/x86_64-linux-gnu/perl/5.22.1/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 645.

2018.01.19 17:30:01 0: Error -- py_eval raised an exception at /usr/local/lib/x86_64-linux-gnu/perl/5.22.1/Inline/Python.pm line 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 645.


Ich habe nach dem Post  #278 korrigiert hat aber nichts gebracht.
Habt Ihr ein Tipp für mich.
Danke
Gruß Eddie


EDIT: Hat sich erledigt ein sudo pip install request hat das Problem gelöst.

dominik

An diejenigen mit dem "initialized" nach Reboot Problem, könnt ihr bitte prüfen was für einen status "presence" nach dem Reboot hat?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik