fhempy: Tuya Cloud

Begonnen von dominik, 30 Juli 2021, 21:36:48

Vorheriges Thema - Nächstes Thema

maddhin

jetzt kommen wir der Sache näher... Da war auch ein Verzeichnis "fhempy-0.1.242.dist-info", d.h. jetzt wissen wir, wo die 0.1.242 immer herkam...

Habe beide Verzeichnisse gelöscht. Bis jetzt habe ich trotz Neuinstallation von fhempy und (nach Löschen) erneutem define der devices fhempy noch nicht wieder zum Laufen gebracht.

Ich probiere es heute Abend nochmal.

maddhin

also automatisch installiert sich bei mir nach dem define leider nichts (mehr).

Auszug aus dem FHEM-Log:
2022.09.15 21:10:41.007 1: Downloading https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
2022.09.15 21:10:41.010 1:
2022.09.15 21:10:41.013 1: pythonbinding
2022.09.15 21:10:41.684 1: nothing to do...
2022.09.15 21:12:38.163 3: BindingsIo v1.0.0
2022.09.15 21:12:38.200 3: fhempyServer v1.0.0
2022.09.15 21:12:38.299 3: fhempyserver_15733: starting
2022.09.15 21:12:38.319 3: fhempyserver_15733: using logfile: ./log/fhempy-2022-09-15.log
2022.09.15 21:12:38.925 1: mqtt:1883 disconnected, waiting to reappear (Mosquitto)
2022.09.15 21:12:39.152 3: fhempyserver_15733: read: end of file reached while sysread
2022.09.15 21:12:39.154 3: fhempyserver_15733: stopped
2022.09.15 21:12:39.181 3: fhempyserver_15733: starting
2022.09.15 21:12:39.202 3: fhempyserver_15733: using logfile: ./log/fhempy-2022-09-15.log
2022.09.15 21:12:39.558 1: mqtt:1883 reappeared (Mosquitto)
2022.09.15 21:13:02.836 3: Opening fhempy_local device ws:127.0.0.1:15733
2022.09.15 21:13:03.530 1: fhempy_local: Can't connect to ws:127.0.0.1:15733: 127.0.0.1: Connection refused (111)
2022.09.15 21:13:03.531 1: BindingsIo (fhempy_local): ERROR during connection setup: 127.0.0.1: Connection refused (111)


Ich habe versucht rust, cryptography und eben fhempy manuell zu installieren, aber cryptography will einfach nicht. Das übersteigt meine Fähigkeiten und mein RPI ist durch die ganzen docker images / rebuilds inzwischen an das Speicherlimit gekommen. Musste erstmal GBs löschen. Zudem befürchte ich, dass das manuelle Wursteln mit bash im Dockerimage nicht gut ist und spätestens beim Umzug auf einen neuen Server wieder alles neu gewurstelt werden muss (und ich bis dahin keine Ahnung mehr habe, was getan werden muss).

Gibt es hier nicht die Möglichkeit, dass das PIP fhempy Paket alles installiert, was notwendig ist, damit es funktioniert? Ggf. so wie das Alexa-Fhem Paket oder ähnliche, die man dann in der docker-compose nur eintragen muss. Der Aufwand rust und dann cyprtography und dann fhempy manuell zu installieren (plus pip Update) um Tuya zum Laufen zu bringen erscheint mir ziemlich groß.

Ich habe auch das Gefühl, dass bei der fhempy Installation irgendetwas nicht korrekt läuft. Irgendwie scheinen bestehende Pakete nicht durch neue ersetzt zu werden.

Sorry für die Kritik, ich hoffe das alles ist irgendwie meiner Konfiguration und Docker geschuldet.

Bei guten Ideen freue ich mich weiter zu testen...

dominik

pip3 install --upgrade fhempy
installiert alle Pakete die fhempy braucht automatisch. Man muss nichts manuell installieren.

Wenn du ein define machst, passiert das automatisch. Für mich ist immer noch unklar was nun Teil vom Docker ist und was nicht? Ist /opt/fhem automatisch von Docker erstellt? Wenn ja, wird es bei jedem Neustart neu erstellt?

In deinem Fall nun...
du hast etwas manuell gelöscht, nämlich /opt/fhem/FHEM/bin/fhempy, das wird über ein update in FHEM installiert. Daher müsstest du nun ein Update machen, damit das wieder installiert wird und danach ein define fhempy_local
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

el_diabolo

Hallo erstmal....

Ich stehe etwas auf dem schlauch

Ich habe soweit alles hinbekommen aber irgendwie bekomme ich bei den Heizungs Thermostaten
nur ein ready angezeigt was mache ich da falsch

ich möchte gerne die Temperatur angezeigt bekommen und den Status

thburkhart

shut down restart gemacht?

und lange warten; dann kommen auch die schönen Icons zum Anzeigen und Schalten
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

el_diabolo


Ja Neustart komplett sowohl den pi als auch fhem diverse male, alles leider ohne erfolg.

Keine icons ☹

Ich wird noch verrückt mit dem ding

dominik

Poste mal was bei den Heizungsthermostaten kommt. Screenshot oder Kopie fürs Forum.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

satprofi

#682
hallo.
nach gestrigem update. klappt die cloud nicht mehr.
beispiel:




Failed to execute function Define: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 169, in _new_conn
    conn = connection.create_connection(
  File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 73, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/lib/python3.9/socket.py", line 953, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 382, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1012, in _validate_conn
    conn.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 353, in connect
    conn = self._new_conn()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x747d5910>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openapi.tuyaeu.com', port=443): Max retries exceeded with url: /v1.0/token?grant_type=1 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x747d5910>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 367, in handle_function
    ret = await self.execute_function(hash, fhem_reply_done, nmInstance)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 438, in execute_function
    ret = await asyncio.wait_for(
  File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 85, in Define
    await self.setup_cloud()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 93, in setup_cloud
    self.tuya_cloud = await utils.run_blocking(
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/utils.py", line 62, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 96, in __init__
    self.token = self._gettoken()
  File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 201, in _gettoken
    response_dict = self._tuyaplatform('token?grant_type=1')
  File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 162, in _tuyaplatform
    response = requests.get(url, headers=headers)
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openapi.tuyaeu.com', port=443): Max retries exceeded with url: /v1.0/token?grant_type=1 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x747d5910>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))


und hier eine steckdose

Failed to execute function Define: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 169, in _new_conn conn = connection.create_connection( File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 73, in create_connection for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): File "/usr/lib/python3.9/socket.py", line 953, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -3] Temporary failure in name resolution During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 699, in urlopen httplib_response = self._make_request( File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 382, in _make_request self._validate_conn(conn) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1012, in _validate_conn conn.connect() File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 353, in connect conn = self._new_conn() File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in _new_conn raise NewConnectionError( urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno -3] Temporary failure in name resolution During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.9/site-packages/requests/adapters.py", line 439, in send resp = conn.urlopen( File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 755, in urlopen retries = retries.increment( File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 574, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openapi.tuyaeu.com', port=443): Max retries exceeded with url: /v1.0/token?grant_type=1 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 367, in handle_function ret = await self.execute_function(hash, fhem_reply_done, nmInstance) File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 438, in execute_function ret = await asyncio.wait_for( File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for return fut.result() File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 85, in Define await self.setup_cloud() File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 93, in setup_cloud self.tuya_cloud = await utils.run_blocking( File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/utils.py", line 62, in run_blocking return await asyncio.get_event_loop().run_in_executor(pool, function) File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run result = self.fn(*self.args, **self.kwargs) File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 96, in __init__ self.token = self._gettoken() File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 201, in _gettoken response_dict = self._tuyaplatform('token?grant_type=1') File "/opt/fhem/.local/lib/python3.9/site-packages/tinytuya/Cloud.py", line 162, in _tuyaplatform response = requests.get(url, headers=headers) File "/opt/fhem/.local/lib/python3.9/site-packages/requests/api.py", line 75, in get return request('get', url, params=params, **kwargs) File "/opt/fhem/.local/lib/python3.9/site-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "/opt/fhem/.local/lib/python3.9/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, **send_kwargs) File "/opt/fhem/.local/lib/python3.9/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "/opt/fhem/.local/lib/python3.9/site-packages/requests/adapters.py", line 516, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openapi.tuyaeu.com', port=443): Max retries exceeded with url: /v1.0/token?grant_type=1 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

dominik

Da dürfte es Probleme mit der Namensauflösung geben:
socket.gaierror: [Errno -3] Temporary failure in name resolution
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

satprofi

sah das update vorhanden ist, fehler weg.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Superposchi

#685
Ich habe nach wie vor Probleme mein fhempy wieder ans Laufen zu bringen.
Überall wird immer nur Python Server Offline angezeigt.

Jetzt habe ich probiert alles neu zu erstellen, dabei ist mir dann aufgefallen, dass ich mit
define fhempy_local BindingsIo fhempykein Device erstellen kann. Rückmeldung von Fhem ist immer, Device existiert bereits und ist in Verwendung.
Ändere ich das define in modify gibt Fhem aber komischerweise zurück ich sollte erst das Device erstellen.

Das passt doch nicht, oder?

Das Problem scheint bei mir auch in einem Device Namens "local_pybinding" zu stecken, dass sich überhaupt nicht mehr bearbeiten lässt. Weder Update noch Restart haben irgendeine Wirkung. Unter Device Name wird "ws:localhost:15733" angezeigt. Kann es sein, dass der Port erst freigegeben werden muss?
Ich bekomme beim "local_pybinding"-Device bei "prev_error" ein "DNS 127.0.0.11 timed out" angezeigt.
Wieso 127.0.0.11? - sonst ist localhost doch immer mit 127.0.0.1 angegeben.

dominik

Klingt danach, als hättest du in deine /etc/hosts Datei localhost auf 127.0.0.11 gemappt statt 127.0.0.1.

Was passiert wenn du fhempy_local löscht? Das sollte ja möglich sein.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Superposchi

#687
also bewusst gemappt habe ich nichts. Fiel mir auch erst auf den 10 Blick auf.

Keine Ahnung ob das relevant ist, aber bei mir heißt das Device local_fhempy - also genau anders herum. Habe aber nichts beim anlegen umbenannt oder so.
Das löschen des device macht jedenfalls keinerlei Veränderung. Die STATE's der betroffenen Devices zeigen immer noch "Python Server Offline" an.

Bei einem Neustart des Fhem-Servers habe ich im Startlog wieder diesen Eintrag gefunden:
fhempy_local: Can't connect to ws:localhost:15733: DNS 127.0.0.11 timed out
Wo kommt das 127.0.0.11 her und wie kann ich es wieder auf 1 zurücksetzen?

Superposchi

Komisch irgendwie hat er die zweite Antwort geschluckt.

Habe das Device gelöscht und neu angelegt. Das Device zeigt zwar jetzt den grünen Punkt an, im STATE steht aber "Installing fhempy (15min)..." und alle Geräte Devices - egal ob TUYA oder Googlecast zeigen weiterhin "Python Server offline" an.

thburkhart

hallo zusammen

inzwischen habe ich fast auf tuya-local umgestellt-

Das DEF für tuya-cloud hatte ich herausgenommen, da dieses "ungefragt" immer wieder alle Devices eingelesen und DB-logs geschrieben hatte.

Kann man das Einlesen auf nur gewünschte Geräte begrenzen? z.B. nur Thermostate oder nur ZIG-Bee Geräte (die ja von tuya-local nicht unterstützt werden ; richtig?)

Ich frage auch unter dem Hintergrund meines neuesten Testkaufs: https://www.amazon.de/gp/product/B09PQW3H85/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
ein Tuya-BT und ZIG-Bee Gateway:

【Fernbedienungsfunktion】 Das drahtlose Smart-Home-Bridge-Gateway ist mit Smart Life und der Tuya-App verbunden, sodass Sie Ihre Smart-Home-Geräte auch dann, wenn Sie weit weg von zu Hause sind, überall und jederzeit per Smartphone fernsteuern können.
【Einfache Einrichtung】 Stecken Sie einfach das drahtlose Smart-Gateway in die Steckdose, öffnen Sie die App, das hinzuzufügende Gateway wird automatisch angezeigt, Sie klicken einfach auf "Hinzufügen", um die Kopplungseinstellung abzuschließen, dann können Sie dem Gateway weitere Smart-Home-Geräte hinzufügen.
【Kompatibel Mit Allen Tuya Smart-GeräTen】 Das Gateway ist ein notwendiges Gerät für alle Tuya Smart-Home-Geräte. Es kann nicht nur Bluetooth-Smart-Geräte, sondern auch Zigbee-Smart-Geräte hinzufügen, so dass es eine stabile Verbindung und automatische Steuerung für alle Tuya Smart-Geräte bietet Geräte.
【3 Modi In 1 Gateway】 Das drahtlose Smart Gateway verfügt über 3 Modi in 1 Gateway, es ist in den Modi Bluetooth 5.0, WLAN 2.4G und ZigBee 3.0 verfügbar, so dass es einen breiten Anwendungsbereich hat, Sie können Bluetooth-Geräte und Zigbee-Geräte steuern in einem intelligenten Gateway.
【Hinweis Und Anleitung】 Dieser Smart-Home-Hub verbindet sich mit maximal bis zu 128 Geräten. Die Nutzungsvoraussetzung erfordert eine 2,4-G-WLAN-Frequenzverbindung. Bitte überprüfen Sie vor dem Kauf die Kompatibilität. Wenn Sie Probleme haben, können Sie sich gerne an uns wenden.


das müsste doch von tuya_cloud gefunden werden?
Gibt es Erfahrungen mit diesem Gateway?

1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200