[Altes Modul] GoogleCast (98_GOOGLECAST.pm)

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

Vorheriges Thema - Nächstes Thema

Superposchi

#870
Hallo Dominik,

jetzt ist das local_pybinding-Device "opended". Hier das List:
Internals:
   BindingType Python
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FD         19
   FUUID      5fba74b5-f33f-793a-1760-e724b98ba1bd9e5e
   FVERSION   10_BindingsIo.pm:0.182830/2019-01-16
   NAME       local_pybinding
   NR         22
   NTFY_ORDER 50-local_pybinding
   PARTIAL   
   STATE      opened
   TYPE       BindingsIo
   WEBSOCKET  1
   nextOpenDelay 10
   READINGS:
     2020-11-22 20:53:23   state           opened
Attributes:
   group      Google
   room       Test


auch das Castdevice-Device wird als online angezeigt. Das List:
Internals:
   CASTNAME   Schlafzimmerlautsprecher
   DEF        googlecast "Schlafzimmerlautsprecher"
   FUUID      5fba773c-f33f-793a-5007-c9bf0d1a378d6c54
   FVERSION   10_PythonModule.pm:0.182830/2019-01-16
   IODev      local_pybinding
   NAME       castdevice
   NR         24
   PYTHONTYPE googlecast
   STATE      online
   TYPE       PythonModule
   READINGS:
     2020-11-22 20:55:53   cast_type       cast
     2020-11-22 20:55:53   connection      connected
     2020-11-22 20:55:53   ignore_cec      0
     2020-11-22 20:55:53   is_active_input 0
     2020-11-22 20:55:53   is_stand_by     1
     2020-11-22 20:55:53   model_name      Google Nest Mini
     2020-11-22 20:55:53   mute            0
     2020-11-22 20:55:53   name            Schlafzimmerlautsprecher
     2020-11-22 20:55:53   state           online
     2020-11-22 20:55:53   uuid            dbef8319-c89c-e735-11f6-ce7777b133b2
     2020-11-22 20:55:53   volume          10
   args:
     castdevice
     PythonModule
     googlecast
     Schlafzimmerlautsprecher
   argsh:
Attributes:
   IODev      local_pybinding
   icon       scene_scene
   room       Test
   userattr   favorite_1 favorite_2 favorite_3 favorite_4 favorite_5


Was muss ich jetzt machen um mit Text2Speech Sprachnachrichten an meine Zwei Google Nest senden zu können?
In der Anleitung hattest du ja mal geschrieben, dass die Googlecast-Device automatisch erstellt werden wenn ich es richtig verstanden habe.

In deinem GitHub steht noch etwas das in Fhem ausgeführt werden muss.
define castdevice PythonModule googlecast "Living Room"
define eq3bt PythonModule eq3bt 00:11:22:33:44:66:77
define upnp PythonModule discover_upnp

Verstehe ich das richtig?
Um was für eine Mac-Adresse handelt es sich dabei?

dominik

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

Superposchi

#872
Und wie kann ich einen einzelnen Google Nest ansprechen?
Das Castdevice-Device ist doch beide Nest-Lautsprecher oder?

P.S.:
Frage hat sich erledigt, habe es schon gelöst.

Habe in Unsorted unter der Gruppe "PythonModule" 3 automatisch erstellte Devices - kann ich die Löschen, scheinen das gleiche wie die Castdevice-Devices zu sein.
Brauche ich das Text2speech jetzt gar nicht mehr?

dominik

#873
Zitat von: Superposchi am 22 November 2020, 21:26:09
Und wie kann ich einen einzelnen Google Nest ansprechen?
Das Castdevice-Device ist doch beide Nest-Lautsprecher oder?
Nein, wie kommst du drauf?
Internals:
   CASTNAME   Schlafzimmerlautsprecher
   DEF        googlecast "Schlafzimmerlautsprecher"


define blabla PythonModule googlecast "NAME VOM NESTHUB"

Oder schau mal in Unsorted ob das nicht schon erstellt wurde, falls du mdns_discover verwendet hast.
Ein Google Cast Device ist ein Googlecast FHEM Device, außer bei Gruppen.

//Edit: Hat das "speak" jetzt funktioniert? Wäre gut wenn du auch Rückmeldung geben würdest wenn etwas geht oder auch nicht.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: Superposchi am 22 November 2020, 21:26:09
Und wie kann ich einen einzelnen Google Nest ansprechen?
Das Castdevice-Device ist doch beide Nest-Lautsprecher oder?

P.S.:
Frage hat sich erledigt, habe es schon gelöst.

Habe in Unsorted unter der Gruppe "PythonModule" 3 automatisch erstellte Devices - kann ich die Löschen, scheinen das gleiche wie die Castdevice-Devices zu sein.
Brauche ich das Text2speech jetzt gar nicht mehr?

Heee? Ich verstehe dich nicht ganz. Wieso willst du nun die 3 Devices löschen?
Nein, Text2Speech brauchst du nicht, habe ich doch schon mal geschrieben, dass es mit speak geht.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Superposchi

Sorry, aber bei zig verschiedenen Wegen die es anscheinend gibt komme ich da nicht mehr mit. Deshalb frage ich einfach nach ob ich es richtig verstanden habe.

Ja, das speak hat funktioniert.

Die drei Devices löschen weil sie im Grunde jetzt doppelt sind. Einmal die händisch angelegten und eben diese drei in unsorted die ich nicht selbst angelegt habe, also automatisch erstellt wurden. Somit sind beide Lautsprecher und eine gemeinsame Gruppe jeweils doppelt als Device angelegt.

dominik

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

Stelaku

#877
Zitat von: dominik am 22 November 2020, 20:58:22
Ist komisch, dass das nicht automatisch installiert wurde. Eigentlich sollte das beim Start installiert werden. Welche Debian Version nutzt du?

Hallo Dominik

Das hat mich auch gewundert. Zumal Pyhtonbinding auf meinem alten System auf USB ohne Probleme nach Deiner Anleitung sofort funktioniert hat.
Was noch komischer ist, das Debian auf den alten USB ist das selbe wie auf der neu aufgesetzten ssd Festplatte.
Nämlich

lsb_release -d
Description:    Raspbian GNU/Linux 10 (buster)


Ich hatte in meinen beschränkten Möglichkeiten dann erstmal gedacht es liegt an der SSD, was ja normal nicht sein kann.
Um das auszuschliessen habe ich dann mein System mehrfach auf einen neuen USB-Stick aufgesetzt. Aber immer mit den selben misserfolg.
Um mein neues Image auf den stand zu bringen den ich immer aktuell habe benutze ich ein selbst geschriebenes shell skript in den ich
einfach alle Befehle der reihe nach ablaufen lasse. So das das auch immer gleich sein sollte .. .

Gruß

Stephan


Superposchi

So, jetzt habe ich eine Frage die nicht direkt zum Thema passt, sich aber aus diesem ergeben hat.

Ich musste ja meinen Server komplett neu aufsetzen und einen neuen Container erstellen.
Welche Möglichkeiten gibt es die Devices aus dem alten ins neue System zu übertragen?
Oder muss ich tatsächlich jedes Device händisch neu anlegen?

SouzA

Zitat von: Superposchi am 23 November 2020, 08:08:35
So, jetzt habe ich eine Frage die nicht direkt zum Thema passt, sich aber aus diesem ergeben hat.

Ich musste ja meinen Server komplett neu aufsetzen und einen neuen Container erstellen.
Welche Möglichkeiten gibt es die Devices aus dem alten ins neue System zu übertragen?
Oder muss ich tatsächlich jedes Device händisch neu anlegen?
Meinst du fhem im allgemeinen?
https://wiki.fhem.de/wiki/Backup
oder
http://heinz-otto.blogspot.com/2015/12/backup-und-restore-von-fhem.html

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Superposchi

Ja meine ich, doch ein Backup fällt so weit ich es verstehe leider aus, da dabei im neuen System bereits existierende Devices verloren gingen, oder nicht?

kadettilac89

musst du für dich entscheiden.

1) Entweder ein Backup zurückspielen wodurch bestehende Config überschrieben wird. Im Anschluss dann bereits gemachte Ändeurungen erneut konfigurieren
2) Die Installation die du jetzt hast behalten und die Devices aus der alten Installation per RAW-Definition eintragen

Ohne "händische" Arbeit geht es nicht.

Ich vermute Option 1 ist trotz Nacharbeit schneller. Wenn es dabei Probleme gibt einen eigene Post .. ist ein allgemeines Thema das hier weniger passt


MadMax-FHEM

#882
Wie im anderen Thread auch von mir geschrieben, denke ich auch, dass das Einspielen eines Backups und das nochmalige Anlegen des gassistant Devices und Chromecast auf FHEM-Ebene am einfachsten ist.

OS-/Docker-"Installationen" bleiben ja...

ABER: es kann sein, dass die bislang vorgenommenen "Installationen" nicht reichen, es kann ja sein, dass ein anderes (übertragenes) Modul noch weitere OS-/Perl-Module braucht.

Das meinte ich mit "mit Docker beschäftigen" im anderen Thread...

Evtl. ist auch der aktuelle nur ein weiterer ("Probier")Container auf dem Weg zum laufenden Systen...

Und wenn du alle (zielführenden) Schritte (sauber) notierst hast du auch gleich ein Backup/Restore Konzept...

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)

presskopf

Hallo Dominik,
bei meiner Installation gibt es auch irgendwie ein paar Probleme, ähnlich den oben beschriebenen - aber nicht 100 % identisch in den Logs.
Nach einem Neustart des Raspi (Buster) läuft das Pythonbinding. Wenn ich aber ein fhem-update mache und danach mit shutdown restart fhem neu starte, springt das Pythonbinding immer zurück auf disconnected.
Hier ein paar Logs dazu:

pi@raspi-4:/opt/fhem/log $ tail -n 50 PythonBinding-2020-11-30.log
  File "/usr/local/lib/python3.7/dist-packages/websockets/server.py", line 965, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
2020-11-30 20:32:34,957 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
Traceback (most recent call last):
  File "FHEM/bindings/python/pythonbinding.py", line 118, in <module>
    fpb.run()
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 273, in run
    websockets.serve(pybinding, '0.0.0.0', 15733, ping_timeout=None, ping_interval=None))
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/usr/lib/python3.7/asyncio/tasks.py", line 603, in _wrap_awaitable
    return (yield from awaitable.__await__())
  File "/usr/local/lib/python3.7/dist-packages/websockets/server.py", line 965, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
2020-11-30 20:32:55,963 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
Traceback (most recent call last):
  File "FHEM/bindings/python/pythonbinding.py", line 118, in <module>
    fpb.run()
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 273, in run
    websockets.serve(pybinding, '0.0.0.0', 15733, ping_timeout=None, ping_interval=None))
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/usr/lib/python3.7/asyncio/tasks.py", line 603, in _wrap_awaitable
    return (yield from awaitable.__await__())
  File "/usr/local/lib/python3.7/dist-packages/websockets/server.py", line 965, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
2020-11-30 20:33:16,973 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
Traceback (most recent call last):
  File "FHEM/bindings/python/pythonbinding.py", line 118, in <module>
    fpb.run()
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 273, in run
    websockets.serve(pybinding, '0.0.0.0', 15733, ping_timeout=None, ping_interval=None))
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/usr/lib/python3.7/asyncio/tasks.py", line 603, in _wrap_awaitable
    return (yield from awaitable.__await__())
  File "/usr/local/lib/python3.7/dist-packages/websockets/server.py", line 965, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
pi@raspi-4:/opt/fhem/log


pi@raspi-4:/opt/fhem/log $ tail -n 50 fhem-2020-11.log
2020.11.30 20:31:05 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:05 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:10 3: Pythonbinding_0: starting
2020.11.30 20:31:10 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:31:11 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:31:11 3: Pythonbinding_0: stopped
2020.11.30 20:31:18 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:31 3: Pythonbinding_0: starting
2020.11.30 20:31:31 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:31:32 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:32 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:31:32 3: Pythonbinding_0: stopped
2020.11.30 20:31:45 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:45 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:31:52 3: Pythonbinding_0: starting
2020.11.30 20:31:52 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:31:53 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:31:53 3: Pythonbinding_0: stopped
2020.11.30 20:31:59 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:12 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:13 3: Pythonbinding_0: starting
2020.11.30 20:32:13 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:32:14 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:32:14 3: Pythonbinding_0: stopped
2020.11.30 20:32:25 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:25 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:34 3: Pythonbinding_0: starting
2020.11.30 20:32:34 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:32:35 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:32:35 3: Pythonbinding_0: stopped
2020.11.30 20:32:38 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:51 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:32:55 3: Pythonbinding_0: starting
2020.11.30 20:32:55 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:32:56 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:32:56 3: Pythonbinding_0: stopped
2020.11.30 20:33:04 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:33:05 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:33:16 3: Pythonbinding_0: starting
2020.11.30 20:33:16 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:33:17 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:33:17 3: Pythonbinding_0: stopped
2020.11.30 20:33:18 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:33:31 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:33:37 3: Pythonbinding_0: starting
2020.11.30 20:33:37 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-30.log
2020.11.30 20:33:38 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.30 20:33:38 3: Pythonbinding_0: stopped
2020.11.30 20:33:44 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed out
2020.11.30 20:33:45 1: BindingsIo: ERROR pythonbinding - error while connecting: read from http://127.0.0.1:15733 timed ou


Was mir auffällt ist, dass nach einem "sudo service fhem stop" der Prozess
pi@raspi-4:/opt/fhem/log $ ps -edalf | grep binding
0 S fhem      1132     1  0  80   0 - 33577 -      Nov26 ?        00:05:13 python3 FHEM/bindings/python/pythonbinding.py

nach wie vor existiert.

Das Pythonbinding connected nach einem fhem-Neustart nur, wenn ich diesen Prozess per "kill" zuvor abschieße.
(oder halt den Raspberry neu starte).

2020-11-30 20:39:00,427 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
2020-11-30 20:39:11,704 - INFO     - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-11-30 20:39:11,898 - INFO     - lib.pkg_installer: Attempting install of zeroconf==0.28.6


Hast Du einen Tipp, was ich da ändern kann, damit der Prozess nicht als Zombie weiterläuft?

dominik

Hi,

das dürfte das Problem sein, der eine Prozess der noch weiter läuft und nicht beendet wird. Welche Module hast du im Einsatz? Nur googlecast, oder auch andere?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik