Wie die Readings der Tuya-Geräte aktualiseren?

Begonnen von is2late, 05 Januar 2025, 12:16:22

Vorheriges Thema - Nächstes Thema

is2late

Hallo,

ich habe vier Tuya-Geräte installiert. Alle Readings werden korrekt ausgelesen, jedoch nie aktualisiert.
Hier mal das Listing eines Geräts:

define tuya_smartlife_bfac6bd4d8dc1b8f09dahr fhempy tuya_smartlife tuya_smartlife_integration bfac6bd4d8dc1b8f09dahr
attr tuya_smartlife_bfac6bd4d8dc1b8f09dahr alias TuyaTerrasseL
attr tuya_smartlife_bfac6bd4d8dc1b8f09dahr group tuya_smartlife
attr tuya_smartlife_bfac6bd4d8dc1b8f09dahr room fhempy
attr tuya_smartlife_bfac6bd4d8dc1b8f09dahr stateFormat humidity
#   DEF        tuya_smartlife tuya_smartlife_integration bfac6bd4d8dc1b8f09dahr
#   DEVICEID   bfac6bd4d8dc1b8f09dahr
#   FHEMPYTYPE tuya_smartlife
#   FUUID      674dd021-f33f-a79d-a7a3-2c1a01f39650ee12
#   IODev      fhempy_local
#   NAME       tuya_smartlife_bfac6bd4d8dc1b8f09dahr
#   NR         843
#   PYTHONTYPE tuya_smartlife
#   STATE      64
#   TYPE       fhempy
#   eventCount 9
#   READINGS:
#     2025-01-04 16:09:36   battery_percentage 70
#     2025-01-04 16:09:36   battery_state   high
#     2025-01-04 16:09:36   humidity        64
#     2025-01-04 16:05:58   state           ready
#     2025-01-04 16:09:36   temp_current    7
#     2025-01-04 16:09:36   temp_unit_convert c
#   args:
#     tuya_smartlife_bfac6bd4d8dc1b8f09dahr
#     fhempy
#     tuya_smartlife
#     tuya_smartlife_integration
#     bfac6bd4d8dc1b8f09dahr
#   argsh:
#   hmccu:
#
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 64
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:09:36 battery_percentage 70
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:09:36 battery_state high
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:09:36 humidity 64
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:05:58 state ready
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:09:36 temp_current 7
setstate tuya_smartlife_bfac6bd4d8dc1b8f09dahr 2025-01-04 16:09:36 temp_unit_convert c

Das Gateway steht auf "ready" und die tuya_smartlife_integration auf "connected".

Hat jemand eine Idee, woran es hapert?

Vielen Dank,
Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Niemand?

Vielleicht hilft das:
Die Aktualisierung wird angestoßen und funktioniert, wenn ich fhempy local restarte.
Das ist aber natürlich nicht befriedigend, wenn man für aktuelle Temperaturen und Feuchtigkeitswerte immer erst restarten muss.

Kennt jemand eine Lösung für das automatische Aktualisieren der Tuya-Geräte? In der App funktioniert die Aktualisierung.

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Mal anders gefragt:
Kann man (und ggf wie?) Fhem zur Aktualisierung bestimmter oder gar aller Devices zwingen?

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

passibe

Vorab: Kenne mich mit Tuya nicht aus, weil ich das nicht benutze.

Aber:
Zitat von: is2late am 09 Januar 2025, 16:49:48Kann man (und ggf wie?) Fhem zur Aktualisierung bestimmter oder gar aller Devices zwingen?
FHEM dürfte ja, jedenfalls in diesem Fall, nur "passiv" sein. Also FHEM fragt nicht aktiv irgendwo nach "Gibt es neue Readings?", sondern bekommt das von dem jeweiligen fhempy-"Modul" geliefert. Im Zweifel dürfte also irgendwas im jeweiligen fhempy-Modul falsch sein bzw. die dortigen Logs dürften mehr Aufschluss darüber gewähren, was hier schiefläuft.

Daher wäre auch das fhempy-Repository auf GitHub vermutlich der bessere Anlaufpunkt, spontan habe ich da auch folgende Issues gefunden, die evtl. in deine Richtung gehen dürften:
https://github.com/fhempy/fhempy/issues/479
https://github.com/fhempy/fhempy/issues/464
https://github.com/fhempy/fhempy/issues/449

Also eventuell mal dort beim passenden Issue kommentieren oder selbst ein neues aufmachen.

Hoffe das hilft!

is2late

Herzlichen Dank, Passibe, probiere ich aus!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MathiasE

Hallo zusammen, ich kann das ebenso bestätigen, dass sich die Readings nicht updaten.
Ich verwende Raspberry Pi OS Bookworm. In FHEM nutze ich die tuya_smartlife_integration.
Steuern kann ich die Aktoren, bekomme aber keine Rückmeldung bzw Readings.
Im Log bin ich ein Stück weiter gekommen:
File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/tuya_sharing/mq.py", line 143, in _start
    mqttc = mqtt.Client(mq_config.client_id)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/paho/mqtt/client.py", line 772, in __init__
    raise ValueError(
ValueError: Unsupported callback API version: version 2.0 added a callback_api_version, see docs/migrations.rst for details 

Wenn ich in der Python Virtual Environment in FHEM nachschaue ist die Version paho_mqtt-2.1.0.dist-info installiert. Könnte das der Grund sein? Muss man auf eine kleinere Version switchen? Also <2.0? Wenn ja: Wie geht das?

passibe

Am besten wäre es mE immer noch, ein Issue auf GitHub aufzumachen. Das mit dieser callback_api_version ist ja schonmal ein guter Anfang.

Zum Downgraden: Bei breaking changes durch Updates einer dependency ist es nicht Sinn der Sache downzugraden. Sondern lieber den Code so anzupassen, dass er mit der neuen Version der dependency funktioniert. Hier liegt das wohl daran, dass in
mqttc = mqtt.Client(mq_config.client_id)
die Spezifizierung
mqtt_client.CallbackAPIVersion.VERSION1fehlt, siehe hier: https://stackoverflow.com/a/77985329

Paho MQTT 2.1 hat wohl versucht das zu mitigaten, was aber anscheinend nicht immer funktioniert (siehe auch die verlinkte stackoverflow-Antwort).

Nutzt diese Infos gerne für die Erstellung eines GitHub-Issues oder gleich eines pull requests.