[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

Det20

Bei mir schreibt fhem alle 5 Minuten einen timestamp in eine Datei.
Im System selbst laufen 2 chronjobs die versuchen fhem zu beenden und das System neu starten, wenn...

1. Der timestamp älter als 30 Minuten ist (= Fhem abgestürzt) oder
2. Die log Datei größer als 150 MByte ist (wird dann umbenannt)

Außerdem wird das System alle 2 Tage nachts um 4 neu gestartet

All dieser Aufwand für die Googles. Klappt aber.

duke-f

#421
Zitat von: Det20 am 04 Februar 2018, 01:32:30
Im System selbst laufen 2 chronjobs ...
Dafür gibt es doch den Watchdog in Raspberry, oder? Zumindest für Punkt 1.

Und mit dem Problem der Sockets scheinen wir irgendwie aber auch doch nur vereinzelt betroffen 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

duke-f

#422
Status-Report

So, habe jetzt mal einen ganz anderen Weg gewählt. Ich habe meinen Raspberry Pi im Keller upgegraded auf jessie und habe dort mein seit Jahren eigentlich im Leerlauf vor sich hin laufende FHEM speziell für GOOGLECAST eingerichtet. Dieser Pi dient eigentlich mittels ser2net und CUL als CUNO-Ersatz.
Einrichten hat nach Post 1 soweit auch fast alles geklappt. Allerdings musste ich erst noch gcc aktualisieren, wurde beim Upgrade offensichtlich nicht durchgeführt oder war auf diesem Pi vielleicht sogar noch nie installiert.

Etwas seltsam sind die Reaktionen noch bisher. Mittels "play" einen Youtube-Beitrag zu spielen klappt selten, dann meist auch nur mit dem letzten Teil de Adresse, also statt

https://www.youtube.com/watch?v=LmgBPi3IgsI


nur

LmgBPi3IgsI

hinter play eingetragen.

Manchmal kommen dan bis um die 10 Einträge, dass Chromecast0825 initialisiert sei, einmal ist fhem auch komplett abgestürzt. Danach fand ich folgendes in der log:


2018.02.05 02:01:07 3: GOOGLECAST: Chromecast0825 initializing...
2018.02.05 02:10:56 3: GOOGLECAST: Chromecast0825 initializing...
2018.02.05 07:28:16 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:28:17 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:28:43 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:28:46 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:28:46 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:28:51 3: GOOGLECAST: Chromecast0825 initialized successfully
2018.02.05 07:53:06 1: ERROR: Select error -1 (9), error count= 0
2018.02.05 07:53:06 1: Found and deleted bad fileno for GOOGLECAST-CC_Chromecast
PyChromecastStopped: Socket client's thread is stopped. at line 46
2018.02.05 07:53:26 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (GOOGLECAST_findChromecastsResult): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (GOOGLECAST_findChromecastsResult): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (GOOGLECAST_findChromecastsResult): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:26 1: BlockingInformParent (GOOGLECAST_findChromecastsResult): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:47 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused
2018.02.05 07:53:48 1: BlockingInformParent (GOOGLECAST_setPlayMedia_String): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused


Ach ja, und der GOOGLECAST-CC_Chromecast taucht auch auf. Wurde beim Neustart zwar wieder entfernt, nach einigen Test ist er nun aber wieder da. Dennoch, Funktionen wie Pause, Lautstärke regeln usw funktionieren.

Jetzt will ich mal beobachten, ob sich grundsätzlich ein anderes Verhalten als am Cubie einstellt @Det20: Auf welcher Plattform betreibst Du das ganze?
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

#423
Raspberrypi / Debian 8

Noch ein Hinweis: Manchmal griff bei mir der STOP-Befehl nicht, die Chrome's spielten sporadisch munter weiter und haben STOP ignoriert. Erst mit nem FHEM Neustart war der Spuck vorbei.
Abhilfe: Ich spiele, wenn ich einen Chrome automatisiert stoppen will, einfach eine MP3 mit 1 Sekunde Stille ab.

https://github.com/anars/blank-audio

Grml

Ich habe für mich entschieden das Ganze nun erstmal abzuhaken :'(
Das Modul sowie pychromecast sind einfach zu wackelig. Und ohne Umwege über IFTTT kann man Google Home auch noch nicht für Spracheingabe nutzen (korrigiert mich, wenn ich falsch liege!).

Dann bleibe ich für die Spracheingabe dann doch erstmal bei Alexa (alexa-fhem) und Sprachausgabe gibts erstmal nicht.

Trotzdem danke für die Entwicklung bisher! Ich werde weiterhin in diesem Thread interessiert mitlesen.

Det20

Die Sprachsteuerung interessiert mich noch nicht, solange ich nicht halbwegs natürlich sprechen kann. Ich brauche ja bei Alexa eine Anleitung, um mir die Reihenfolge der Befehle zu merken. Wenn ich vor der Familie "Alexa, Trigger Jalousien Wohnzimmer hoch" sage, dann lachen die sich schlapp.

Das Modul ist für mich hauptsächlich als Sonos Alternative interessant. Ich habe 5 Chrome's á 29 EUR hier zustehen, günstiger geht es nicht.

MadMax-FHEM

Zitat von: Grml am 05 Februar 2018, 14:17:00
Ich habe für mich entschieden das Ganze nun erstmal abzuhaken :'(
Das Modul sowie pychromecast sind einfach zu wackelig. Und ohne Umwege über IFTTT kann man Google Home auch noch nicht für Spracheingabe nutzen (korrigiert mich, wenn ich falsch liege!).

Dann bleibe ich für die Spracheingabe dann doch erstmal bei Alexa (alexa-fhem) und Sprachausgabe gibts erstmal nicht.

Trotzdem danke für die Entwicklung bisher! Ich werde weiterhin in diesem Thread interessiert mitlesen.

Es gibt quasi "das gleiche" (wie alexa-fhem) wohl auch für den Google Home:

https://github.com/yanniks/ghome-fhem

Es gibt auch einige Threads dazu hier im Forum...
Wollte ich mir auch schon mal anschauen, hatte nur bislang keine Zeit.

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)

Grml

Zitat von: Det20 am 05 Februar 2018, 14:20:28
Die Sprachsteuerung interessiert mich noch nicht, solange ich nicht halbwegs natürlich sprechen kann. Ich brauche ja bei Alexa eine Anleitung, um mir die Reihenfolge der Befehle zu merken. Wenn ich vor der Familie "Alexa, Trigger Jalousien Wohnzimmer hoch" sage, dann lachen die sich schlapp.
Naja, das funktioniert im Prinzip ja mit "Talk2Fhem". Da lassen sich die Sätze selbst definieren und per RegEx verwurschteln. Das war mein ursprüngliches Ziel: Mit Google Home Talk2Fhem ansteuern. Zur Not auch über IFTTT. Aber dann hätte zumindest das "drumherum" stabil sein müssen, also das Modul und pychromecast.

michaelw

Zitat von: Stargrove1 am 28 Dezember 2017, 11:04:12
Ich habe ebenfalls keinen Erfolg, das Log gibt folgenden Fehler zurück, kann mir jemand erklären was fehlt bzw wie man es beheben kann?

Meldung im FHEM ist "Cannot load module GOOGLECAST "

Im Log steht:

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
2017.12.28 11:00:35 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 553.

2017.12.28 11:00:35 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 553.


Also ich hatte bis heute das Problem das Googlecast Modul im Fhem ans laufen zu bringen und zwar mit der obigen Fehlermeldung. Bei mir läuft FHEM auf einer APU2 mit Ubuntu 16.04 LTS. Auf dem Gerät läuft außer FHEM noch einiges andere, unter anderem Certbot für Let's encrypt. Für den Certbot gab es heute ein Update. Ich glaube der der wurde von Python2 auf Python3 umgstellt. Und was soll ich sagen: Seit dem update und der Neuinstallation funktioniert das Google Cast Modul endlich. Python Modul requests verwendet unteranderem das Modul certifi. Und wenn ich das richtig verstanden habe, hängt der import von certs (siehe Fehlermeldung auch oben: ImportError: cannot import name certs) mit dem certifi Modul zusammen. Ich glaube das ganze hat sich mit meinem Certbot gebissen, der auch requests und certifi benötigt hat, aber über das APT repository das ganze installiert hat.

Vielleicht hilft es ja dem ein oder anderen...

wk2000

Hallo, erstmal und vielen Dank für das Modul.

Leider scheint speak bzw. play nicht zu funktionieren, wenn die URL zu lang wird. Das ist sehr schade, weil ich mir gerade eine Abfahrtsansage basteln wollte.

So funktioniert es leider nicht:
http://translate.google.com/translate_tts?tl=de&client=tw-ob&q="Es%20fährt%20die%20ASTF5%20Richtung%20Königsplatz%20%20Mauerstraße%20in%2025%20Minuten%20,%20die%20RT5%20Richtung%20Melsungen%20in%2046%20Minuten%20und%20die%20ASTF5%20Richtung%20Königsplatz%20%20Mauerstraße%20in%2055%20Minuten."

Es funktioniert allerdings, wenn ich die URL vorher mit einem URL Shortener (?) kürze.

Ist das Problem bekannt? Gibt es einen workaround?

liebe grüße, WK

Phill

#430
Speak kann doch direkt den Text verarbeiten ohne Google translate.

Gruß
EDIT: ich glaube das war Unfug, da intern natürlich auch Google translate verwendet wird. Richtig?
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html


wk2000

#432
Zitat von: Phill am 07 Februar 2018, 08:01:11
Speak kann doch direkt den Text verarbeiten ohne Google translate.

Gruß
EDIT: ich glaube das war Unfug, da intern natürlich auch Google translate verwendet wird. Richtig?

ja, das scheint so zu sein. Ich denke, dass speak "nur" den String nimmt und ihn in eine Google translate URL umbaut. Da es aber auch über den alten Weg nicht funktioniert, denke ich, dass irgendwo im Modul die Länge der URL begrenzt ist. 

trotzdem vielen Dank  :D


/Edit:
So wie es aussieht ist das aber eventuell auch die Begrenzung des google tts services.
hat jemand eine Idee, wie ich mehrere URLs möglichst einfach nacheinander abspielen kann?

michaelw

Zitat von: Det20 am 23 Januar 2018, 22:39:29
Bin nur Herr der Lage geworden, indem ich die maximale Anzahl offene handles im Debian selbst massiv erhöht habe, ansonsten ist fhem regelmäßig abgestürzt.

Ich habe das Modul, seit ich es gestern erfolgreich installieren konnte, jetzt aktiv und finde in Log folgende Meldungen:

2018.02.07 06:15:39 1: ERROR: Select error -1 (9), error count= 0
2018.02.07 06:15:39 1: Found and deleted bad fileno for GOOGLECAST-kueche.googlecast

Der Zeitpunkt ist kurz nachdem ich das Gerät per Funksteckdose abgeschaltet habe (nicht immer und nur eine pro Gerät). Insofern wird die Meldung bei mir damit zusammenhängen und vermutlich richtig sein. Es wäre allerdings schön, wenn solche Fälle irgenwie berücksichtigt würden und keine Fehlermeldungen produzieren würden (evtl. durch deaktivieren des Devices oder so).

Was aber eigentlich sagen will: Vielleicht hilft die Fehlermeldung bei der Suche nach dem Fehler mit den Handles. Das Problem klingt irgendwie so, als ob immer mehr Handles geöffnet werden. Vielleicht sollen die alten eigentlich automatisch gelöscht werden, es passiert aber nicht und deshalb lauft ihr in Probleme. Mein Log würde ich so interpretieren, als ob dies geschieht. Das sind aber alles nur Vermutungen eines Laien. Also nicht schlagen, falls das nichts miteinander zu tun hat. ;-)

siggi85

Ich habe seit langem mal wieder ein FHEM Update gemacht. Seitdem funktioniert das GOOGLECAST Modul leider nicht mehr. :/ Ich habe gestern und heute schon einige Zeit verbracht, kriege es aber nicht zum Laufen.

Die konkrete Fehlermeldung im Log beim Laden des Moduls:
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
[color=red][b]ImportError: cannot import name certs[/b][/color]
2018.02.07 12:14:00 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 645.

2018.02.07 12:14:00 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 645.


Certs ist Teil von Requests. Habe sowohl das Modul separat oder auch über die Abhängigkeit mit pychromecast über pip mehrfach neu installiert. Auch mit der Option "--no-cache-dir", um ggf. fehlerhafte Downloads auszuschließen. Bin aber langsam mit meinem Latein am Ende. Die Dateien certs.py und certs.pyc sind im Verzeichnis "/usr/local/lib/python2.7/dist-packages/requests/" vorhanden und besitzen die gleichen Rechte wie die anderen Dateien.
Kann mir hier jemand helfen?