fhempy: tuya (lokal)

Begonnen von dominik, 26 April 2022, 19:12:25

Vorheriges Thema - Nächstes Thema

satprofi

Das geht doch schon lang nicht mehr. Tuya local zeigt mir gerade nur den Status, ON/Off tut sich schon lang nichts mehr bei mir. Außer du zahlst Unsummen an tuya, was ich gelesen habe
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Gisbert

Zitat von: satprofi am 15 April 2025, 12:24:38Das geht doch schon lang nicht mehr. Tuya local zeigt mir gerade nur den Status, ON/Off tut sich schon lang nichts mehr bei mir. Außer du zahlst Unsummen an tuya, was ich gelesen habe

Hallo satprofi,

also meine Tuya-Geräte lassen sich wunderbar auslesen und steuern, wobei die entsprechenden IP-Adressen der Tuya-Geräte keine Verbindungen nach außen aufnehmen können.
Deswegen wundert mich dein Kommentar zur Cloud. Ich bin aber kein Experte auf diesem Gebiet. Das einzige, was ich immer wieder beobachte, ist nach einem Speichern der fhem.cfg, dass dann das fhempy-Device nicht auf ready steht. Dann hilft nur ein Neustart von Fhem.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

TheTrumpeter

Zitat von: Gisbert am 15 April 2025, 13:55:06also meine Tuya-Geräte lassen sich wunderbar auslesen und steuern, wobei die entsprechenden IP-Adressen der Tuya-Geräte keine Verbindungen nach außen aufnehmen können.
Ist bei mir auch so.

Allerdings passiert es bei einigen Tuya-Geräten, dass in FHEM irgendwann keine Updates mehr ankommen. Nach einem defmod mit gleichen Parametern funktioniert es dann wieder. Das fange ich ab, indem ich alle 2 h das Alter der Readings überprüfe und ggf. automatisiert das defmod ausführe.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

satprofi

#1068
Zitat von: TheTrumpeter am 15 April 2025, 15:54:32
Zitat von: Gisbert am 15 April 2025, 13:55:06also meine Tuya-Geräte lassen sich wunderbar auslesen und steuern, wobei die entsprechenden IP-Adressen der Tuya-Geräte keine Verbindungen nach außen aufnehmen können.
Ist bei mir auch so.


Könnt ihr mir/uns dann bitte erklären wie ihr fhempy installiert habt? Ohne developer konto bei tuya, das ja nicht mehr gratis ist, geht doch nichts mehr local.
neue geräte sowieso nicht mehr gefunden, nur mit tuya_smartlife_integration
im anhang ein device, das nur ready anzeigt, aber auf keine commandos reagiert
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

TheTrumpeter

Zitat von: satprofi am 15 April 2025, 18:42:51Könnt ihr mir/uns dann bitte erklären wie ihr fhempy installiert habt? Ohne developer konto bei tuya, das ja nicht mehr gratis ist, geht doch nichts mehr local.
neue geräte sowieso nicht mehr gefunden
Die Geräte habe ich alle während der Gratis-Zeit des Developer-Accounts installiert. Irgendwann habe ich um eine weitere Gratis-Zeit angesucht, die mir auch gewährt wurde. Allerdings ist das schon lange abgelaufen.

Die damals installierten Geräte funktionieren weiterhin, solange der Local-Key unverändert bleibt, d.h. sie nicht über die Tuya-App gelöscht und neu hinzugefügt werden.

Oder anders gesagt, kennst Du den Local-Key, kannst Du sie auch ohne Developer-Account hinzufügen. Ich habe mal vor einiger Zeit danach gesucht und verschiedene potenzielle Möglichkeiten gefunden den Local-Key auch ohne Developer-Account auszulesen, das aber bisher nie gebraucht und auch nicht ausprobiert.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

Gisbert

Zitat von: TheTrumpeter am 16 April 2025, 06:36:21Ich habe mal vor einiger Zeit danach gesucht und verschiedene potenzielle Möglichkeiten gefunden den Local-Key auch ohne Developer-Account auszulesen, das aber bisher nie gebraucht und auch nicht ausprobiert.

Hallo TheTrumpeter,
das wäre natürlich für neue Geräte interessant. Hast du dir damals Notizen dazu gemacht, die du teilen kannst?
Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

TheTrumpeter

Zitat von: Gisbert am 16 April 2025, 07:56:38Hast du dir damals Notizen dazu gemacht, die du teilen kannst?
Nein leider nicht. Eventuell finde ich im Verlauf am anderen Rechner noch was.

Ich kann mich erinnern, dass ich im Tuya-Developer-Portal danach gesucht, es dort aber nirgends gefunden habe.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

peterboeckmann

#1072
Hallo zusammen,

ich bin gestern über fhempy und tuya gestolpert. Leider gelingt mir die Einrichtung nicht. Ich bekomme den Fehler mit der Cryptography, der hier im Thread schon besprochen wurde. Leider finde ich keine Details zur Lösung.
Kann mir jemand den Lösungsweg beschreiben?

Anbei noch ein Screenshot der drei beteiligten Devices.

Edit: hier noch ein List des fhempy_local:
define fhempy_local BindingsIo fhempy
attr fhempy_local devStateIcon {      my $attr_ver = "1.1.0";;;;      my $status_img = "10px-kreis-gruen";;;;      my $status_txt = "connected";;;;      my $ver = ReadingsVal($name, "version", "-");;;;      my $ver_available = ReadingsVal($name, "version_available", $ver);;;;      my $update_icon = "";;;;      my $refresh_img = "refresh";;;;      my $refresh_txt = "Update fhempy";;;;      if ($ver_available ne $ver) {        $refresh_img = "refresh\@orange";;;;        $refresh_txt = "Version ".$ver_available." available for update";;;;      }      if (ReadingsVal($name, "state", "disconnected") eq "disconnected") {        $status_img = "10px-kreis-rot";;;;        $status_txt = "disconnected";;;;      }      $update_icon = "<a  href=\"/fhem?cmd.dummy=set $name update&XHR=1\" title=\"Start ".$ver_available." update\">".FW_makeImage($refresh_img, $refresh_txt)."</a>";;;;      my $restart_icon = "<a  href=\"/fhem?cmd.dummy=set $name restart&XHR=1\" title=\"Restart fhempy\">".FW_makeImage("control_reboot")."</a>";;;;      "<div><a>".FW_makeImage($status_img, $status_txt)."</a><a> ".$ver." </a>".$update_icon.$restart_icon."</div>"    }
attr fhempy_local group fhempy
attr fhempy_local icon file_json-ld2
attr fhempy_local room fhempy
#   BindingType fhempy
#   DEF        fhempy
#   DeviceName ws:127.0.0.1:15733
#   FD         60
#   FUUID      680b6448-f33f-e199-c422-f8af2ba7b9a821fd
#   IP         127.0.0.1
#   NAME       fhempy_local
#   NR         940
#   NTFY_ORDER 50-fhempy_local
#   PARTIAL   
#   PORT       15733
#   STATE      Installing fhempy (15min)..
#   TYPE       BindingsIo
#   WEBSOCKET  1
#   binary     1
#   connecttime 1745585822.76485
#   devioLoglevel 0
#   eventCount 2909
#   installing 2
#   localBinding 1
#   nextOpenDelay 10
#   prev_error
#   Helper:
#     DBLOG:
#       state:
#         logdb:
#           TIME       1745593936.79975
#           VALUE      Installing fhempy (15min)..
#       version_available:
#         logdb:
#           TIME       1745585823.69702
#           VALUE      0.1.753
#       version_release_notes:
#         logdb:
#           TIME       1745585823.70243
#           VALUE      <html><a href="https://github.com/fhempy/fhempy/releases" target="_blank">Release Notes</a></html>
#   READINGS:
#     2025-04-25 17:12:16   state           Installing fhempy (15min)..
#     2025-04-25 14:57:03   version_available 0.1.753
#     2025-04-25 14:57:03   version_release_notes <html><a href="https://github.com/fhempy/fhempy/releases" target="_blank">Release Notes</a></html>
#   args:
#     fhempy_local
#     BindingsIo
#     fhempy
#   messages:
#     0:
#     tuya_smartlife_integration:
#
setstate fhempy_local Installing fhempy (15min)..
setstate fhempy_local 2025-04-25 17:12:16 state Installing fhempy (15min)..
setstate fhempy_local 2025-04-25 14:57:03 version_available 0.1.753
setstate fhempy_local 2025-04-25 14:57:03 version_release_notes <html><a href="https://github.com/fhempy/fhempy/releases" target="_blank">Release Notes</a></html>


Der Status ist schon seit ca. 5 Stunden Installing fhempy (15 min)... Mal mit einem, zwei, oder drei Punkten dahinter.

Vielen Dank vorab!

Viele Grüße,
Peter

satprofi

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

peterboeckmann

Hallo satprofi,

Zitat von: satprofi am 25 April 2025, 20:38:23Fhempy neu starten.

Danke für den Tipp.
Danach wechselt der Status vom tuya_smartlife_Integration kurzzeitig zu ,,Installing updates..." und danach wieder die Fehlermeldung.

Hat vielleicht noch jemand einen Ansatz zur Fehlerbehebung?

Viele Grüße,
Peter

satprofi

Hallo.dieses Fehlerbild habe ich nach Stromausfall. Wenn FHEM schon gebootet, aber tuya Geräte noch nicht im Netzwerk eingebunden. Hast du die smartLife App schon gescannt?
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

peterboeckmann

Hallo satprofi,

Woher bekomme ich denn den QR-Code, den ich scannen soll?
Müsste der aus dem fhem-device kommen?

Grüße,
Peter

peterboeckmann

#1077
Hallo nochmal,

Ich habe Python jetz auf v3.13.3 aktualisiert. Leider hat das auch nicht geholfen.
In fhem bekomme ich weiterhin diese Fehlermeldung:
Module failed to load: tuya_smartlife
Maybe you need to update fhempy on this or remote peer.

Stacktrace:
Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function
    module_object = await self.import_module(hash)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/fhempy/lib/fhem_pythonbinding.py", line 573, in import_module
    module_object = await utils.run_blocking(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
        functools.partial(importlib.import_module, pymodule)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/fhempy/lib/utils.py", line 72, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/fhempy/lib/tuya_smartlife/tuya_smartlife.py", line 5, in <module>
    import fhempy.lib.tuya_smartlife.tuya_smartlife_setup as tss
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/fhempy/lib/tuya_smartlife/tuya_smartlife_setup.py", line 6, in <module>
    from tuya_sharing import (
    ...<5 lines>...
    )
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/tuya_sharing/__init__.py", line 2, in <module>
    from .manager import Manager, SharingDeviceListener
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/tuya_sharing/manager.py", line 5, in <module>
    from .customerapi import CustomerApi, CustomerTokenInfo, SharingTokenListener
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.13/site-packages/tuya_sharing/customerapi.py", line 12, in <module>
    from cryptography.hazmat.primitives.ciphers.aead import AESGCM
ModuleNotFoundError: No module named 'cryptography'

Versuche ich in der bash, das angeblich fehlende Modul zu installieren, ist es schon da:
pi@raspberrypi4b:/usr/local/bin $ pip install cryptography
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: cryptography in /home/pi/.local/lib/python3.13/site-packages (44.0.2)
Requirement already satisfied: cffi>=1.12 in /home/pi/.local/lib/python3.13/site-packages (from cryptography) (1.17.1)
Requirement already satisfied: pycparser in /home/pi/.local/lib/python3.13/site-packages (from cffi>=1.12->cryptography) (2.22)

Die Tuya-SmartLife App hat die devices registriert, dort lassen sie sich bedienen.


Hat jemand eine Idee, wie ich den Fehler beheben und die devices aus der App nach fhem bekomme?

Vielen Dank und viele Grüße,
Peter

satprofi

Zitat von: peterboeckmann am 25 April 2025, 23:06:22Hallo satprofi,

Woher bekomme ich denn den QR-Code, den ich scannen soll?
Müsste der aus dem fhem-device kommen?

Grüße,
Peter
relogin , und diesen QR Code mit App scannen
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

peterboeckmann

Scheinbar tritt der Fehler schon auf, bevor die Setter verfügbar sind.
Auch wenn ich set tuya_smartlife_integration relogin als Befehl eingebe, bekomme ich keinen QR-Code.