[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

Pr3mut05

#510
Ich der Nacht hatte mein FHEM offenbar Probleme :/
Zumindest war die Web-Oberfläche nicht mehr erreihbar. Musste neu starten.

Jetzt sind auch alle Geräte wieder offline :/
Muss ich sie neu anlegen oder wie kann ich die "aufwecken" ?

P.S:
Auf jeden Fall mal meine "Küche" neu angelegt
Reading passt jetzt   :)


dominik

Kannst du bitte ein verbose = 5 bei einem FHEM Neustart posten damit ich da nochmals prüfe woran das liegt?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Pr3mut05

Die einzige Meldung die GOOGLECAST ausgiebt
Wohl genau so wie bei Grml

Zitat2018.03.12 21:59:48 3: GOOGLECAST: GoogleCast v2.1.3
2018.03.12 21:59:48 3: GOOGLECAST: Wohnzimmer initializing...
2018.03.12 21:59:49 3: GOOGLECAST: Schlafzimmer initializing...
2018.03.12 21:59:49 3: GOOGLECAST: Küche initializing...

duke-f

#513
Mache ich noch etwas falsch oder habe ich etwas übersehen?
Ich habe jetzt entsprechend der Commandref folgendes durchgeführt:

apt-get install libwww-perl python-enum34 python-dev libextutils-makemaker-cpanfile-perl python3-pip cpanminus
pip3 install pychromecast --upgrade


und bekomme die Meldung

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')()
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 587, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2800, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2431, in load
    return self.resolve()
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2437, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 74, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name 'IncompleteRead'


Bin hier auf meiner Sparversion von FHEM auf dem Raspberry Pi.
Wahrscheinlich beißen sich da die unterschiedlichen Versionen. Leider scheint aber das Entfernen nicht mehr passender Komponenten auch nicht so einfach zu sein.
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

Sailor

#514
Hallo zusammen

nur als Tipp: Wer sich die letzte Python 3 Version auf sein System installieren moechte:

Update:

Beitrag verschoben: https://forum.fhem.de/index.php/topic,45505.msg781280.html#msg781280

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Hallo Dominik

Zitat von: dominik am 10 März 2018, 21:10:46
Endlich geschafft :)
Version 2.1.2 (gerade eingecheckt) funktioniert nun mit Python 3 und PyChromecast 2.0.0 - speak, play, displayWebsite läuft damit
Es lag daran, dass Inline::Python keine UTF-8 Strings an den Python Code übergibt und Python 3 aber genau diese erwartet. Über SVN Update könnt ihr die neue Version bereits jetzt aktualisieren, oder morgen per update.

Bestaetigt. Bei mir funktioniert jetzt alles!

Gruss
    Sailor
******************************
Man wird immer besser...

duke-f

Zitat von: Sailor am 13 März 2018, 19:46:22
Anschliessend Tee kochen, oder auch 2 oder 3...
Gruss
    Sailor

Bin jetzt bei der siebten Kanne ....
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

Bei mir kommt immer noch "Cannot load module GOOGLECAST". Scheinbar ist mein Python durch diese ganze Rumprobiererei hier inzwischen kaputt gebastelt :-( Leider bin ich (noch) nicht so tief in Sachen Linux, Python etc. drin.

Wie bekäme ich denn das ganze Zeug sauber runter um danach Python, pychromecast, inline etc. neu zu installieren?

Drauf habe ich aktuell irgendeine 2.x Version (ich glaube 2.7.x) und 3.
Ich denke da muss alles weg...

duke-f

#518
Bei mir auch.
Hatte gestern versucht, python komplett (mittels webmin, was damit auch gleich abgeschossen wurde) herunterzuschmeißen und nach obiger Anleitung die neueste Version installiert. System nochmal komplett upgedated und Pi neu gestartet. Dann hat auch der Prozess wie in der Commandref fast auch funktioniert, nur im letzten Schritt gab es ein Timeout. Diese Hürde wurde heute Nacht wohl dann mittels der OPtion --force auch genommen. Jedenfalls gab es heute morgen an der Stelle keinen Fehler mehr. Aber im Log von FHEM steht nun leider


2018.03.14 08:15:54 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 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 684.

2018.03.14 08:15:54 0: 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_GOOGLECAST.pm line 684.


Habe jetzt mal das durchgespielt:
https://forum.fhem.de/index.php/topic,45505.msg673014.html#msg673014
Mit dem Ergebnis:

root@pi:~# python3
Python 3.6.3 (default, Mar 13 2018, 22:00:40)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pychromecast
>>> pychromecast.get_chromecasts()
[Chromecast('192.168.178.188', port=8009, device=DeviceStatus(friendly_name='Chromecast0825', model_name='Chromecast', manufacturer='Google Inc.', uuid=UUID('9c597349-5fd1-2136-258d-1af5f2a172c9'), cast_type='cast'))]
>>>

Hätte als Dummie jetzt so interpretiert: python3 und pychromecast scheinen richtig zu funktionieren. Der Fehler muss also wo anders liegen.
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

Sailor

Halo dominik

Mein GoogleCast funktioniert jetzt prächtig mit meinem GoogleCast zusammen!

Ich habe dazu eine Frage. Ist GoogleCast in der Lage herauszufinden, in welchem Schaltzustand sich der Fernseher befindet (ON, OFF, STDBY) und auf welchem HDMI - Port gerade aktive geschaltet ist.

Mein Weihnachtswunschlisten - Szenario ist:
a) Fernseher im STDBY: Die Webseite anzeigen und am Ende QuitApp und der Fernseher geht in den STDBY zurück
b) Fernseher im ON: Den alten HDMI - Port sichern, HDMI-Port auf GoogleCast umschalten, die Webseite anzeigen und am Ende QuitApp und der Fernseher geht auf den alten HDMI - Port zurück.

Weißt du, ob man das so implementieren kann?

Gruß
    Sailor
******************************
Man wird immer besser...

duke-f

Ich gebe ja nicht so schnell auf.
Nun habe ich das Beispiel (angepasst auf meine Situation natürlich) mal durchgespielt, unabhängig von FHEM:
https://pypi.python.org/pypi/PyChromecast
unter "How to use"
Naja und außer den Ausgaben, die ich nicht immer interpretieren kann, funktioniert das auch. Kurz, der angegebene Film läuft auf dem Fernseher und auch beispielsweise Pause funktioniert.
Also wieder: Python3 und pychromecast scheinen in Ordnung zu sein., dennoch habe ich obige Fehlermeldung in FHEM.
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

Sailor

#521
Hallo zusammen

ich habe mir ueberlegt, ob es nicht einfacher ist, wenn man einfach ein allumfassendes Installationsskript schreibt.
Anbei der Versuch in der Hoffnung, dass es von Euch getestet wird.

Der Grund fuer das script ist unter Anderem der, dass auf der https://pypi.python.org/pypi/PyChromecast folgendes steht:

File    Type                                                                      Py Version                Uploaded on       Size
PyChromecast-2.0.0-py2.py3-none-any.whl (md5)    Python Wheel    3.6    2018-02-21          40KB
PyChromecast-2.0.0.tar.gz (md5)               Source                                        2018-02-21          35KB




sudo /home/pi/py3ccastinst.sh


Dort die folgende Befehle reinlegen und das "RELEASE=" mit der letzten Verison von python hinterlegen (Hier 3.6.3)


#!/bin/sh
RELEASE=3.6.3

printf "\nInstalling python release $RELEASE and pychromecast for python3 with dependencies for fhem\n\n"
printf "`date +%Y-%m-%d-%H-%M` : Installing python release $RELEASE and pychromecast with dependencies for fhem\n" >./py3ccastinst.log

####### Updating installed packages ##############################
printf "Updating and Upgrading packages\n"
printf "`date +%Y-%m-%d-%H-%M` : Updating and Upgrading packages\n" >>./py3ccastinst.log
sudo apt-get -y update | tee -a ./py3ccastinst.log
sudo apt-get -y upgrade | tee -a ./py3ccastinst.log

####### Install python version defined under RELEASE above ###############

# install dependencies
printf "Installing python3 and dependencies\n"
printf "`date +%Y-%m-%d-%H-%M` : Installing python3 and dependencies\n" >>./py3ccastinst.log
sudo apt-get -y install libbz2-dev liblzma-dev libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev libreadline-dev libssl-dev tk-dev  | tee -a ./py3ccastinst.log

# download and build Python
mkdir ~/python3 | tee -a ./py3ccastinst.log
cd ~/python3 | tee -a ./py3ccastinst.log
wget https://www.python.org/ftp/python/$RELEASE/Python-$RELEASE.tar.xz | tee -a ./py3ccastinst.log
tar xvf Python-$RELEASE.tar.xz | tee -a ./py3ccastinst.log
cd Python-$RELEASE | tee -a ./py3ccastinst.log
./configure | tee -a ./py3ccastinst.log
make | tee -a ./py3ccastinst.log
sudo make install | tee -a ./py3ccastinst.log
sudo rm -rf ~/python3/Python-$RELEASE | tee -a ./py3ccastinst.log
cd ~ | tee -a ./py3ccastinst.log


####### Install pychromecast and dependencies #######################
printf "Installing pychromecast and dependencies\n"
printf "`date +%Y-%m-%d-%H-%M` : Installing pychromecast and dependencies\n" >>./py3ccastinst.log
sudo apt-get -y install libwww-perl python-enum34 python-dev libextutils-makemaker-cpanfile-perl cpanminus python3-pip | tee -a ./py3ccastinst.log
sudo yes | pip3 install --force-reinstall pychromecast --upgrade | tee -a ./py3ccastinst.log
sudo yes | pip3 install --force-reinstall youtube-dl --upgrade | tee -a ./py3ccastinst.log
sudo INLINE_PYTHON_EXECUTABLE=/usr/bin/python3 cpanm Inline::Python | tee -a ./py3ccastinst.log


############ Hint to Reboot system #########################
printf "\n\n\nKeep in mind that pychromecast requires system reboot to function properly!\n"
printf "`date +%Y-%m-%d-%H-%M` : Countdown to reboot canceled. Keep in mind that pychromecast requires system reboot to function properly!\n" >>./py3ccastinst.log


Jetzt noch die Datei ausführbar machen und ausführen.


sudo chmod +x /home/pi/py3ccastinst.sh
sudo /home/pi/py3ccastinst.sh


Anschliessend Tee kochen, oder auch 2 oder 3... Meinetwegen auch 7 Kannen!

@MadMax-FHEM: Hast Du Lust das Script bei einem jungfräulichen RasPi nochmal zu testen?

[Update 1 - 2018-03-15_10:00:09]
Script hinsichtlich automatischer Bestätigung verbessert.

[Update 2 - 2018-03-16_09:40]
Update für Script: update/upgrade jetzt erst mal ganz am Anfang

[Update 3 - 2018-03-16_10:30]
Update für Script: Jetzt mit Ausgabe aller Bildschirmausgaben in ./py3ccastinst.log

[Update 4 - 2018-03-17_12:40]
Update für Script: Automatisches Reboot entfernt aber Hinweis darauf beibehalten.


Gruss
    Sailor
******************************
Man wird immer besser...

MadMax-FHEM

Zitat von: Sailor am 14 März 2018, 20:11:21
@MadMax-FHEM: Hast Du Lust das Script bei einem jungfräulichen RasPi nochmal zu testen?

Gruss
    Sailor

Klar.
Kann aber sein, dass ich erst morgen dazu komme...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

duke-f

#523
Hab jetzt nochmal so einiges nach und nach probiert. Auch das Modul aus FHEM gelöscht und per update neu installiert. Erfolg bleibt aus. Obiges Skript habe ich nicht komplett am Stück durchgeführt, aber die beiden apt-get install, um keine notwendigen Pakete zu versäumen. Hat alles nichts geholfen, lediglich eine Fehlermeldung kam hinzu: Der obere Teil im folgenden:

@Grml:
Wie sind denn Deine Fehlermeldungen komplett?



2018.03.14 21:44:21 2: eventTypes: loaded 457 events from ./log/eventTypes.txt
Traceback (most recent call last):
  File "<string>", line 3, in <module>
ImportError: No module named pychromecast
2018.03.14 21:44:45 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 177.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 684.

2018.03.14 21:44:45 0: 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_GOOGLECAST.pm line 684.

2018.03.14 21:44:46 1: Including ./log/fhem.save
2018.03.14 21:44:46 1: configfile: Cannot load module GOOGLECAST

2018.03.14 21:44:46 0: Featurelevel: 5.8
2018.03.14 21:44:46 0: Server started with 26 defined entities (fhem.pl:16403/2018-03-13 perl:5.020002 os:linux user:fhem pid:1093)
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

Sailor

Hallo Duke

Zitat von: duke-f am 14 März 2018, 21:53:18
Hab jetzt nochmal so einiges nach und nach probiert. Auch das Modul aus FHEM gelöscht und per update neu installiert. Erfolg bleibt aus. Obiges Skript habe ich nicht komplett am Stück durchgeführt, aber die beiden apt-get install, um keine notwendigen Pakete zu versäumen. Hat alles nichts geholfen, lediglich eine Fehlermeldung kam hinzu: Der obere Teil im folgenden:

Mal ne dumme Frage: Dein Name für den chromecast beinhaltet nicht zufällig ein Leerzeichen?
"TV Room" hat bei mir nicht funktioniert
"TvRoom"   hat bei mir funktioniert

Gruss
    Sailor
******************************
Man wird immer besser...