fhempy: googlecast

Begonnen von dominik, 04 Dezember 2020, 23:33:53

Vorheriges Thema - Nächstes Thema

a_quadrat

OK, das kann ich Mal testen. Wie kann ich die Version am besten downgraden?

VG Andreas

dominik

sudo -u fhem bash
pip3 install fhempy==0.1.150

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

michaelw

Also bei mir hat der Downgrade nur sauber geklappt, wenn ich die alten Versionen vorher deinstalliert hatte. Aber vielleicht war ich nicht geduldig genug.

Ich habe gestern angefangen zu testen. Erst machte es den Eindruck, als ob es bis 0.1.166 sauber klappte, wobei die 165 bei mir nicht richtig lief und keinen Chromecasts erkannt hatte. Nachdem heute morgen aber mein Radio nicht anging, weil Fhem hing, kann ich sagen, dass es mindestens mit 166 bei mir den Fehler gibt. Im Moment bin ich auf 160 und werde das mal etwas laufen lassen. Fhem hat mit der 160 hat bis jetzt auch mehrere Schaltzyklen "überlebt". Leider scheint es aber tatsächlich eine Zusammenhang zu geben.

JF Mennedy

#333
Hi,

ich habe einen ganz anderen Ansatz verfolgt und vor ca. 2 Wochen eine vm für einen fhempy peer eingerichtet und nur die googlecast als iodevice eingerichtet... alle anderen bindings (ring skoda tuya spotify) laufen noch local. fhem ist stabil und ich habe auch keine Probleme mehr mit googlecast in dieser Konstellation... ich dachte immer dass es aus meinem system kommt, da das Problem meist auftrat, wenn größere Szenarien wie z. B ein Wecker getriggert werden. dabei werden u.a. 3-4 googlecast angesteuert, die standheizung vom skoda aktiviert, von ring die Lautstärke der Türklingel verändert und von tuya werden 3 Befehle abgesetzt... Seit die googlecast nicht mehr local angebunden sind sondern uber einen peer lauft alles stabil.
Fhem lauft in einem docker dem genügend system resourcen (16core 128mb ram) zur Verfügung stehen, daran sollte es demnach nicht liegen... der vm fur den peer habe ich 2 cpu und 2gb ram gespendet... Hatte das Thema schon mal in github angesprochen und meinte, es sei erledigt, da es mit irgendeinem Update spürbar besser war, bis zum nächsten großen Wecker Szenario... Nachdem mein Ausweg über die vm erfolgreich war, hatte ich meinen docker im Verdacht...

Gruss Jan

dominik

Hi,

ok, ich denke irgendwo im googlecast ist noch eine Blocking Function drin. Wobei das sollte eigentlich erkannt werden, weil sobald eine Funktion länger als 100ms blockiert, wird ein Warning angezeigt...und daher dürfte das hier das Problem sein:
2021-11-11 23:29:26,487 - WARNING  - asyncio: Executing <Handle _SelectorDatagramTransport._read_ready() created at /usr/lib/python3.8/asyncio/selector_events.py:259> took 0.104 seconds


Ich muss nur noch ausfindig machen wer das aufruft, ich denke das kommt von zeroconf.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

@Jan, kannst du bitte prüfen ob du solche Meldungen auch auf deinem googlecast Peer hast?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

Hallo Dominik,

ich kann im Log von meiner fhem Instanz keine solche Meldung finden. Wird auf dem peer auch ein log erstellt? unter /home/pi/.local/... kann ich nichts finden .

Gruss Jan

michaelw

Die Meldung habe ich auch gefunden. Dazu noch

2021-11-13 10:16:05,238 - WARNING  - urllib3.connectionpool: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f6a77a0cb50>: Failed to establish a new connection: [Errno 24] Too many open files')': /api/6031048/store/

Beide Meldungen tauchen auch mit der 160 auf. Es hing zwar noch nichts aber ich bin jetzt mal auf die 155 gegangen, die mit urllib3 1.26.5 statt 1.26.7 lief. Mal schauen...

dominik

achso, nein, das wird in syslog geschrieben:
journalctl -u fhempy.service
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy

ok, hab ich gerade mal überprüft, da ist nichts derartiges drin. ab und zu mal ein error unclosed connection oder unreachable aber keine warnung...

a_quadrat

Irgendwie kriege ich fhempy nicht richtig deinstalliert. Ich habe z.B. immer noch ein "fhempy_peer_192_168_178_98" obwohl ich von diesem pi schon alles runter geschmissen habe und habe den pi sogar runtergefahren, aber das peer taucht nach dem Löschen immer wieder auf. Woran liegt das?

Wie kann ich alles löschen, damit ich nochmal sauber anfangen kann?

VG Andreas

dominik

Dann läuft auf diesem Peer noch fhempy. Also einfach dort fhempy stoppen. Die Peers werden nämlich automatisch im Netz erkannt und angelegt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: JF Mennedy am 13 November 2021, 11:08:33
ok, hab ich gerade mal überprüft, da ist nichts derartiges drin. ab und zu mal ein error unclosed connection oder unreachable aber keine warnung...

Hmm...."schade", nutzt du dort die 172er?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JF Mennedy


michaelw

#344
Nachdem die 155 den ganzen Vormittag vernünftig funktionierte habe ich auf die 156 aktualisiert. Fhem hat sich normal gestartet und konnte auch noch mein Radio starten. Habe dann einfach auf verdacht eines der verbunden Chromecasts abgeschaltet und wieder eingeschaltet und kurze Zeit später hing Fhem wieder. Die Meldung von oben habe ich im Log nicht gefunden, habe aber auch nicht sehr lange laufen lassen. Die letzten Meldungen im Log waren wie folgt:

2021-11-13 13:04:44,670 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-11-13 13:04:44,675 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-11-13 13:04:44,689 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-11-13 13:07:30,819 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-11-13 13:07:30,823 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-11-13 13:07:30,847 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-11-13 13:07:35,356 - INFO     - websockets.server: connection open
2021-11-13 13:07:35,357 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-11-13 13:09:52,283 - ERROR    - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsBulkUpdateIfChanged($defs{'Googlecast.Schlafzimmer'},'state','online');;
2021-11-13 13:09:52,448 - ERROR    - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsBulkUpdateIfChanged($defs{'Googlecast.Kueche'},'transport_id','');;
Exception ignored in: <function ClientResponse.__del__ at 0x7f52134d15e0>
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 803, in __del__
    self._connection.release()
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 170, in release
    self._connector._release(
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 650, in _release
    protocol.close()
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client_proto.py", line 63, in close
    transport.close()
  File "/usr/lib/python3.9/asyncio/selector_events.py", line 700, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 748, in call_soon
    self._check_thread()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 785, in _check_thread
    raise RuntimeError(
RuntimeError: Non-thread-safe operation invoked on an event loop other than the current one
2021-11-13 13:10:52,242 - ERROR    - asyncio: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f52121cfa60>
source_traceback: Object created at (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/bin/fhempy", line 113, in <module>
    fpb.run()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 537, in run
    asyncio.get_event_loop().run_forever()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1882, in _run_once
    handle._run()
  File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/googlecast/googlecast.py", line 346, in playDefaultMedia
    session = aiohttp.ClientSession()
2021-11-13 13:10:52,249 - ERROR    - asyncio: Unclosed connection
client_connection: Connection<ConnectionKey(host='egal.egal.com', port=8000, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)>
source_traceback: Object created at (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/bin/fhempy", line 113, in <module>
    fpb.run()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 537, in run
    asyncio.get_event_loop().run_forever()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1882, in _run_once
    handle._run()
  File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/googlecast/googlecast.py", line 347, in playDefaultMedia
    res = await session.get(uri)
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client.py", line 520, in _request
    conn = await self._connector.connect(
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 560, in connect
    return Connection(self, key, proto, self._loop)
2021-11-13 13:14:03,313 - ERROR    - pychromecast.socket_client: [Kueche(192.168.42.61):8009] Failed to connect to service ServiceInfo(type='mdns', data='Nest-Audio-a9e2b5cd0495ab45d84b260939c7f8ad._googlecast._tcp.local.'), retrying in 5.0s
Exception ignored in: <function ClientResponse.__del__ at 0x7f52134d15e0>
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 803, in __del__
    self._connection.release()
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 170, in release
    self._connector._release(
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 650, in _release
    protocol.close()
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client_proto.py", line 63, in close
    transport.close()
  File "/usr/lib/python3.9/asyncio/selector_events.py", line 700, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 748, in call_soon
    self._check_thread()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 785, in _check_thread
    raise RuntimeError(
RuntimeError: Non-thread-safe operation invoked on an event loop other than the current one
2021-11-13 13:14:14,024 - ERROR    - asyncio: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f52123690d0>
source_traceback: Object created at (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/bin/fhempy", line 113, in <module>
    fpb.run()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 537, in run
    asyncio.get_event_loop().run_forever()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1882, in _run_once
    handle._run()
  File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/googlecast/googlecast.py", line 346, in playDefaultMedia
    session = aiohttp.ClientSession()
2021-11-13 13:14:14,031 - ERROR    - asyncio: Unclosed connection
client_connection: Connection<ConnectionKey(host='egal.egal.com', port=8000, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)>
source_traceback: Object created at (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/bin/fhempy", line 113, in <module>
    fpb.run()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 537, in run
    asyncio.get_event_loop().run_forever()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1882, in _run_once
    handle._run()
  File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/googlecast/googlecast.py", line 347, in playDefaultMedia
    res = await session.get(uri)
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/client.py", line 520, in _request
    conn = await self._connector.connect(
  File "/opt/fhem/.local/lib/python3.9/site-packages/aiohttp/connector.py", line 560, in connect
    return Connection(self, key, proto, self._loop)



Also soweit es mich betrifft, scheint es im Moment der Wechsel zwischen 155 und 156 zu sein, der mein System hängen lässt.