fhempy: Tuya Cloud

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

Vorheriges Thema - Nächstes Thema

dominik

Sorry, war von mir unklar ausgedrückt. Genau, ich meinte die tuya-iot-py-sdk Library.

Ich habe gerade ein fhempy update released (0.1.189), teste bitte damit.

ACHTUNG: Release 0.1.189 erfordert Python>3.7!!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Meesus

Hi Dominik,


Zitat
@Messus
Funktionieren die set Befehle über die Tuya IOT Plattform wenn du dort Debug Device auswählst?

Danke für den Tip mit dem testen in der "Device Debugging" Umgebung. Hier wird mir optisch auch jetzt klar warum das in FHEM nicht funktionierte.
Wenn ich die Zahlen durch 10 teile dann stimmt der Wert und kommt dann auch mit dem  ..."temp_set" an. Da stimmt also etwas bei der Umrechnung dieser Zahlen bei meinem Thermostat nicht.
Beispiel: Also die Temperatur 23° wird als 230°  ausgeben. Der Bereich ist von 50-10000C° (!) wählbar, das wäre mir dann doch ein wenig zu heiß im Bad. :-)  Gibt es die Möglichkeit das direkt in der "Device Debugging" Umgebung auf der Tuya IOT Plattform Seite zu korrigieren?

Danke und Gruß Michael


Raspberry 4 - FHEM 6.1 - HMLAN, CUL V3 433Mhz & 868Mhz, HM, Intertechno, HUE, Tasmota, Shelly, ESP Devices, Max! und Alexa - Banana PI zum testen

UweH

Zitat von: dominik am 26 Dezember 2021, 10:41:46
Ich habe gerade ein fhempy update released (0.1.189), teste bitte damit.
Bin ich der Zeit voraus?  ;)

UweH

Zitat von: Meesus am 26 Dezember 2021, 13:09:28
Beispiel: Also die Temperatur 23° wird als 230°  ausgeben. D
Das Problem habe ich auch. Ich muss 210° einstellen, um 21,0° zu setzen.

dominik

Uij, da wird es aber warm bei euch :D

Erstellt bitte mal hier einen Request bei tuya und fügt die product id und category id hinzu:
https://service.console.tuya.com/8/2/create?step=3&id=01030503&source=support_center

Vielleicht kann das Tuya selbst korrigieren, weil da fehlt ein Wert (scale) und daher erfolgt keine Umrechnung. Falls die Rückmeldung kommt, dass es nicht möglich ist, kann es die product id als Ausnahme hinterlegen - da würde ich aber gerne vermeiden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Meesus

#470
ZitatHi Dominik,

alles klar, mach ich so.
Danke für die Info & Deine Mühe, mal gespannt ob das von denen gefixt wird.


Gruß Michael

Ich hatte gestern dann noch ein Service Request bei Tuya deswegen aufgemacht.
Heute dann prompt die Antwort:
Zitat
Tuya engineer12-27 02:53:18
Hello, thank you for waiting. The functional instructions of the device are defined by the manufacturer during production. The data you see (230) is actually delivered by API, but the data displayed by the manufacturer on the APP is 23.

You can feedback to the manufacturer for modification


So wie sie es schreiben, soll ich das Problem an den Hersteller des Thermostats weiterleiten. Das wird vermutlich ins leere laufen da ich das Ding bei AliExpress vor einem Jahr bestellt hatte und das ich nur den Typ kenne. Auf der Bedienungsanleitung & dem Gerät steht leider kein Hersteller.   :(
Raspberry 4 - FHEM 6.1 - HMLAN, CUL V3 433Mhz & 868Mhz, HM, Intertechno, HUE, Tasmota, Shelly, ESP Devices, Max! und Alexa - Banana PI zum testen

stefanru

Hi Dominik,

vielen Dank. Alle Fehler im Log sind weg und es scheint jetzt auch wieder durchgängig zu funktionieren.

Ich hätte noch eine Frage bzw. Anregung.
Ich habe einen Kühschrank zur Verbrauchsmessung angeschlossen.
Die power readings kommen aber in FHEM halt doch relativ sporadisch und in unterschiedlichen Abständen an.
Die App zeigt das viel schneller an.

Ich habe mal etwas rumgesucht und bin auf dieses hier gestoßen:
https://github.com/rospogrigio/localtuya/pull/549    (Periodically send update dps command)
Es wurde ein update interval eingeführt, dass wohl ein update dps im intervall sendet, besonders für WiFi Socket scheint dies gut zu funktionieren.
UPDATEDPS: {"hexByte": 0x12, "command": {"dpId": [18, 19, 20]}},

Ich habe auch etwas in deinem Coding rumgeschaut aber blicke noch nicht ganz durch wo ich das zum testen mal einhacken könnte.

Danke und Gruß,
Stefan




barneybaer

Hallo,
ich habe eine Kamera von Action erworben, welche auch erkannt und in Fhem mit einigen Set Befehlen eingebunden ist. Gibt es die Möglichkeit auch das Video zu übertragen, um es im TabletUi anzuzeigen?

bewa58

Zitat@bewa98
Kannst du bitte nochmals ein Update machen und testen? Ist mit 0.1.188 behoben. Update machen, dann neu starten, dann Raum setzen und nochmals neu starten. Danach sollte der Raum zugeordnet bleiben.

funktioniert jetzt.

Neues Problem(chen):
Ist es möglich bei Lampen Devices etc.  "Toggle" mit in die Set-Anweisung zu bringen?
In der Smartlife-App wird auch so geschaltet.

scank

Hallo,

ich hatte Fhempy und Tuya cloud schon erfolgreich laut Anleitungen installiert und am Laufen. Nach ein paar Tagen funktionierte es nicht mehr.
Hab den Tuya Connector auch mal aus Fhem gelöscht und wieder neu definiert aber es kommen immer diese Fehlermeldungen:

Failed to load module tuya_cloud: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 301, in _onMessage functools.partial(importlib.import_module, pymodule) File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 33, in run_blocking return await asyncio.get_event_loop().run_in_executor(pool, function) File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1006, in _gcd_import File "", line 983, in _find_and_load File "", line 967, in _find_and_load_unlocked File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/tuya_cloud/tuya_cloud.py", line 5, in from fhempy.lib.tuya_cloud.tuya_cloud_device import tuya_cloud_device File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/tuya_cloud/tuya_cloud_device.py", line 5, in from tuya_iot.device import TuyaDevice File "/opt/fhem/.local/lib/python3.7/site-packages/tuya_iot/__init__.py", line 2, in from .device import TuyaDevice, TuyaDeviceListener, TuyaDeviceManager File "/opt/fhem/.local/lib/python3.7/site-packages/tuya_iot/device.py", line 7, in from typing import Any, Literal, Optional ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)

Komme hier nicht mehr weiter. Hat jemand eine Idee wie ich vorgehen könnte?

bewa58

fhempy_server "RESTART"   probieren.

Das hilft bei mir wenn ich Probleme mit der Ring Doorbell habe


stefanru

Hi scank,

dein Problem weißt aber eher darauf hin das python 3.7 nicht mehr geht weil typing.py in 3.7 das noch nicht kann.

Siehe hier:
https://stackoverflow.com/questions/61206437/importerror-cannot-import-name-literal-from-typing?noredirect=1&lq=1

Gruß,
Stefan

thburkhart

Zitat von: scank am 05 Januar 2022, 09:17:04
Hallo,

ich hatte Fhempy und Tuya cloud schon erfolgreich laut Anleitungen installiert und am Laufen. Nach ein paar Tagen funktionierte es nicht mehr.
Hab den Tuya Connector auch mal aus Fhem gelöscht und wieder neu definiert aber es kommen immer diese Fehlermeldungen:

Failed to load module tuya_cloud: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 301, in _onMessage functools.partial(importlib.import_module, pymodule) File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 33, in run_blocking return await asyncio.get_event_loop().run_in_executor(pool, function) File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1006, in _gcd_import File "", line 983, in _find_and_load File "", line 967, in _find_and_load_unlocked File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/tuya_cloud/tuya_cloud.py", line 5, in from fhempy.lib.tuya_cloud.tuya_cloud_device import tuya_cloud_device File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/tuya_cloud/tuya_cloud_device.py", line 5, in from tuya_iot.device import TuyaDevice File "/opt/fhem/.local/lib/python3.7/site-packages/tuya_iot/__init__.py", line 2, in from .device import TuyaDevice, TuyaDeviceListener, TuyaDeviceManager File "/opt/fhem/.local/lib/python3.7/site-packages/tuya_iot/device.py", line 7, in from typing import Any, Literal, Optional ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)

Komme hier nicht mehr weiter. Hat jemand eine Idee wie ich vorgehen könnte?


ich habe dasselbe Problem seit wenigen Tagen - ohne das System verändert zu haben
genauer habe ich jedoch ein FHEM-Update durchgeführt

wie kann das Problem gelöst werden ?

ich bitte um Hilfe

Herzliche Grüße

Thomas
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

thburkhart

#478
Zitat von: dominik am 26 Dezember 2021, 10:41:46
Sorry, war von mir unklar ausgedrückt. Genau, ich meinte die tuya-iot-py-sdk Library.

Ich habe gerade ein fhempy update released (0.1.189), teste bitte damit.

ACHTUNG: Release 0.1.189 erfordert Python>3.7!!

Hallo dominic,

kann es sein, dass dies hier die heute vormittag angesprochene Problematik erklärt?
Wie kriege ich heraus, welche Python Version bei mir installiert ist bzw. wie date ich sie up?

Herzliche Grüße

Thomas


inzwischen habe ich eine Anleitung gefunden, um von 3.7 auf 3.9.5 upzudaten:


https://itheo.tech/install-python-395-on-raspberry-pi-step-by-step

nach "sudo make install"

bekomme ich die Fehlermeldung
fi
ERROR: Exception:
Traceback (most recent call last):
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/cli/base_command.py", line 180, in _main
    status = self.run(options, args)
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/cli/req_command.py", line 204, in wrapper
    return func(self, options, args)
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/commands/install.py", line 269, in run
    session = self.get_default_session(options)
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/cli/req_command.py", line 77, in get_default_session
    self._session = self.enter_context(self._build_session(options))
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/cli/req_command.py", line 87, in _build_session
    session = PipSession(
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/network/session.py", line 275, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_internal/network/session.py", line 132, in user_agent
    linux_distribution = distro.linux_distribution()  # type: ignore
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 125, in linux_distribution
    return _distro.linux_distribution(full_distribution_name)
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 681, in linux_distribution
    self.version(),
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 741, in version
    self.lsb_release_attr('release'),
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 903, in lsb_release_attr
    return self._lsb_release_info.get(attribute, '')
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 556, in __get__
    ret = obj.__dict__[self._fname] = self._f(obj)
  File "/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl/pip/_vendor/distro.py", line 1014, in _lsb_release_info
    stdout = subprocess.check_output(cmd, stderr=devnull)
  File "/root/Python-3.9.5/Lib/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/root/Python-3.9.5/Lib/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
Traceback (most recent call last):
  File "/root/Python-3.9.5/Lib/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/Python-3.9.5/Lib/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/Python-3.9.5/Lib/ensurepip/__main__.py", line 5, in <module>
    sys.exit(ensurepip._main())
  File "/root/Python-3.9.5/Lib/ensurepip/__init__.py", line 210, in _main
    return _bootstrap(
  File "/root/Python-3.9.5/Lib/ensurepip/__init__.py", line 129, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/root/Python-3.9.5/Lib/ensurepip/__init__.py", line 38, in _run_pip
    return subprocess.run([sys.executable, "-c", code], check=True).returncode
  File "/root/Python-3.9.5/Lib/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/root/Python-3.9.5/python', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmpsozrb6nn/setuptools-56.0.0-py3-none-any.whl\', \'/tmp/tmpsozrb6nn/pip-21.1.1-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmpsozrb6nn\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 2.
make: *** [Makefile:1265: install] Fehler 1
root@THB-PI3B1:~/Python-3.9.5# Python --version
-bash: Python: Kommando nicht gefunden.


das ähnelt der Fehlermeldung in fhempy

ich bitte erneut um Hilfe
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

juergen012

Ein Versuch vom Update auf Bullseye sollte das Problem lösen. Bei mir läuft es damit wieder.
Fhem unter Proxmox