fhempy: tuya (lokal)

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

Vorheriges Thema - Nächstes Thema

stefanru

Hi Rellay,

so wie ich das sehe ist was du mir zeigst das Cloud Projekt.
Dieses hat Devices und API's.

Hier mal meine Tuya Fotostrecke dazu, ich denke wichtig sind die APIs die du aktiviert hast, vielleicht noch Datacenter Europe.

Ich hoffe das hilft.
Irgendwo stand in der Doku von Dominik wie das einzurichten ist.

Gruß,
Stefan

rallye

Danke Stefan,
ich werde es mir am Freitag ansehen (morgen etwas busy). Sache ist, dass ich es gerne "local" hätte. Wenn es über die Cloud funktioniert ist es mir ebenfalls recht.

Ich melde mich dann

GLG Rallye
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

stefanru

Ich hoffe es hilft.
Ich würde erstmal über Cloud starten und wenn das tut bei local weiter schauen.
Ich habe Steckdosen die gehen per Cloud und local.
Dann habe ich einen Temperatur Sensor, da er aber nur online kommt wenn er ne temperatur meldet geht der nur richtig über die Cloud.
Bei Local muss in dem moment auch gepollt werden. Das klappt nur ganz selten.

Gruß,
Stefan

FHEM_Starter

@satprofi

Ja ich habe gestern einen Tag damit verbracht, fhempy und den Sensor zum Laufen zu bringen.
Geklappt hat das im Grunsatz zwar schon, jedoch - wie hier bereits von vielen beschrieben - werden die Readings nur beim starten von fhempy_local einmal aktualisiert und dann nie mehr.

Im Logfile auf der Tuya Developerseite sendet der Sensor brav alle x Minuten selbständig die gewünschten Daten.

In sofern ist dieser Ansatz für mich keine Lösung.

Gruß Wolfgang

Zitat von: satprofi am 24 August 2024, 08:32:40
Zitat von: FHEM_Starter am 14 August 2024, 15:27:19Hallo,

ich habe mir diesen Wifi-Sensor bestellt:
Tuya WiFi Smart Temperatur- und Feuchtigkeitssensor, batteriebetrieben
Kann jemand bestätigen (positiv oder negativ), dass dieser Sensor mit fhempy funktioniert?

Danke im voraus,
Wolfgang
schon in betrieb?

riker1

Hi, mal ne Frage, kann man die Tuya Local auf irgendwie direkt ohne Fhem mit http request oder cli via curl, etc. ansteuern?
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

riker1

Hi,
habe nun erfolgreich 3 Tuya T34 smart switches mit local tuya am laufen.

allerdings verabschieden die sich immer wieder.

Gibt es da Möglichkeiten der Überwachung?

Manchmal langt ein neustart des fhempy_local servers.

dann sind aber nicht immer alle 3 wieder da. Wenn ich dann das attribut localkey einfach nochmal bestätige wird der T34 Schalter wieder aktiev.

bin hier neu mit local tuya unterwegs.

Im log sehe ich folgende Fehler

2024-10-05 00:47:14,586 - ERROR    - fhempy.lib.fhem: FHEM took 19052ms for readingsBeginUpdate($defs{'T34_2_IP34_SL'});;
..
2024-10-05 00:59:59,975 - DEBUG    - T34_2_IP34_SL: handle type Integer for dp_id 23 with value 2362
2024-10-05 01:00:43,753 - ERROR    - fhempy.lib.fhem: FHEM took 42781ms for readingsBeginUpdate($defs{'T34_2_IP34_SL'});;
2024-10-05 01:00:51,372 - ERROR    - fhempy.lib.fhem: FHEM took 7618ms for readingsBulkUpdateIfChanged($defs{'T34_2_IP34_SL'},'cur_voltage','236.2');;
2024-10-05 02:08:29,914 - ERROR    - asyncio: Task was destroyed but it is pending!
task: <Task pending name='Task-271' coro=<main() running at /opt/fhem/.fhempy/fhempy_venv/lib/python3.10/site-packages/aiotinytuya/__init__.py:166> wait_for=<Future pending cb=[Task.task_wakeup()]>>
2024-10-05 02:47:11,854 - ERROR    - fhempy.lib.fhem: FHEM took 39351ms for readingsBeginUpdate($defs{'T34_2_IP34_SL'});;
...
2024-10-05 10:31:44,716 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 21293ms for {"args":["T34_2_IP34_SL","off"],"FHEMPYTYPE":"tuya","defargs":["T34_2_IP34_SL","fhempy","tuya","m4jtkjc43ltrilru","bf527eca92bfda7645awmn","192.168.7.34","3.4","39fcw9n5c8dmwjyhft93","3fc1de975357407e970d204acba133f6"],"NAME":"T34_2_IP34_SL","id":784914,"msgtype":"function","PYTHONTYPE":"tuya","defargsh":{},"argsh":{},"function":"Set"}
2024-10-05 10:31:56,485 - ERROR    - fhempy.lib.fhem_pythonbinding: Function execution >30s, cancelled: T34_2_IP34_SL - Set with hash: {'defargsh': {}, 'PYTHONTYPE': 'tuya', 'argsh': {}, 'msgtype': 'function', 'function': 'Set', 'FHEMPYTYPE': 'tuya', 'args': ['T34_2_IP34_SL', 'on'], 'defargs': ['T34_2_IP34_SL', 'fhempy', 'tuya', 'm4jtkjc43ltrilru', 'bf527eca92bfda7645awmn', '192.168.7.34', '3.4', '39fcw9n5c8dmwjyhft93', '3fc1de975357407e970d204acba133f6'], 'NAME': 'T34_2_IP34_SL', 'id': 10181771}
2024-10-05 10:31:56,486 - ERROR    - fhempy.lib.fhem_pythonbinding: <<< 10181771 30002.41ms: {'defargsh': {}, 'PYTHONTYPE': 'tuya', 'argsh': {}, 'msgtype': 'function', 'function': 'Set', 'FHEMPYTYPE': 'tuya', 'args': ['T34_2_IP34_SL', 'on'], 'defargs': ['T34_2_IP34_SL', 'fhempy', 'tuya', 'm4jtkjc43ltrilru', 'bf527eca92bfda7645awmn', '192.168.7.34', '3.4', '39fcw9n5c8dmwjyhft93', '3fc1de975357407e970d204acba133f6'], 'NAME': 'T34_2_IP34_SL', 'id': 10181771, 'finished': 1, 'error': 'Function execution >30s, cancelled: T34_2_IP34_SL - Set'}
2024-10-05 10:31:56,486 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 30003ms for {"defargsh":{},"PYTHONTYPE":"tuya","argsh":{},"msgtype":"function","function":"Set","FHEMPYTYPE":"tuya","args":["T34_2_IP34_SL","on"],"defargs":["T34_2_IP34_SL","fhempy","tuya","m4jtkjc43ltrilru","bf527eca92bfda7645awmn","192.168.7.34","3.4","39fcw9n5c8dmwjyhft93","3fc1de975357407e970d204acba133f6"],"NAME":"T34_2_IP34_SL","id":10181771}
2024-10-05 10:31:56,486 - ERROR    - fhempy.lib.fhem: Set wrong function inactive, tried T34_2_IP34_SL, current function_active: [],T34_1_IP7_33_SL
2024-10-05 10:39:23,390 - ERROR    - fhempy.lib.fhem_pythonbinding: <<< 75792783 21993.71ms: {'PYTHONTYPE': 'tuya', 'defargsh': {}, 'msgtype': 'function', 'argsh': {}, 'function': 'Set', 'defargs': ['T34_2_IP34_SL', 'fhempy', 'tuya', 'm4jtkjc43ltrilru', 'bf527eca92bfda7645awmn', '192.168.7.34', '3.4', '39fcw9n5c8dmwjyhft93', '3fc1de975357407e970d204acba133f6'], 'args': ['T34_2_IP34_SL', 'off'], 'FHEMPYTYPE': 'tuya', 'id': 75792783, 'NAME': 'T34_2_IP34_SL', 'finished': 1, 'returnval': ''}
2024-10-05 10:39:23,390 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 21994ms for {"PYTHONTYPE":"tuya","defargsh":{},"msgtype":"function","argsh":{},"function":"Set","defargs":["T34_2_IP34_SL","fhempy","tuya","m4jtkjc43ltrilru","bf527eca92bfda7645awmn","192.168.7.34","3.4","39fcw9n5c8dmwjyhft93","3fc1de975357407e970d204acba133f6"],"args":["T34_2_IP34_SL","off"],"FHEMPYTYPE":"tuya","id":75792783,"NAME":"T34_2_IP34_SL"}
2024-10-05 10:39:26,387 - ERROR    - fhempy.lib.fhem_pythonbinding: <<< 10721159 21853.57ms: {'NAME': 'T34_2_IP34_SL', 'id': 10721159, 'args': ['T34_2_IP34_SL', 'on'], 'FHEMPYTYPE': 'tuya', 'defargs': ['T34_2_IP34_SL', 'fhempy', 'tuya', 'm4jtkjc43ltrilru', 'bf527eca92bfda7645awmn', '192.168.7.34', '3.4', '39fcw9n5c8dmwjyhft93', '3fc1de975357407e970d204acba133f6'], 'function': 'Set', 'msgtype': 'function', 'PYTHONTYPE': 'tuya', 'defargsh': {}, 'argsh': {}, 'finished': 1, 'returnval': ''}
2024-10-05 10:39:26,387 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 21854ms for {"NAME":"T34_2_IP34_SL","id":10721159,"args":["T34_2_IP34_SL","on"],"FHEMPYTYPE":"tuya","defargs":["T34_2_IP34_SL","fhempy","tuya","m4jtkjc43ltrilru","bf527eca92bfda7645awmn","192.168.7.34","3.4","39fcw9n5c8dmwjyhft93","3fc1de975357407e970d204acba133f6"],"function":"Set","msgtype":"function","PYTHONTYPE":"tuya","defargsh":{},"argsh":{}}
2024-10-05 10:39:26,468 - ERROR    - fhempy.lib.fhem: sendCommandName took 14.986105918884277s to send: readingsSingleUpdate($defs{'fhempy_local'},'version','restart...please wait',1)
2024-10-05 10:39:26,478 - INFO     - fhempy.lib.fhem_pythonbinding: Restart initiated...
2024-10-05 10:39:26,478 - ERROR    - fhempy.lib.fhem_pythonbinding: Undefine failed
Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.10/site-packages/fhempy/lib/fhem_pythonbinding.py", line 541, in undefine_all
    asyncio.wait_for(func(dev_instance.hash), 60)
AttributeError: 'tuya' object has no attribute 'hash'
2024-10-05 10:39:26,504 - INFO     - fhempy.lib.fhem_pythonbinding: All modules successfully undefined!
2024-10-05 10:39:26,505 - INFO     - websockets.server: server closing
2024-10-05 10:39:38,619 - INFO     - websockets.server: connection closed
....

2024-10-05 10:52:30,777 - ERROR    - fhempy.lib.fhem_pythonbinding: <<< 91068082 24860.17ms: {'NAME': 'T34_2_IP34_SL', 'id': 91068082, 'defargs': ['T34_2_IP34_SL', 'fhempy', 'tuya', 'm4jtkjc43ltrilru', 'bf527eca92bfda7645awmn', '192.168.7.34', '3.4', '39fcw9n5c8dmwjyhft93', '3fc1de975357407e970d204acba133f6'], 'args': ['T34_2_IP34_SL', 'off'], 'FHEMPYTYPE': 'tuya', 'function': 'Set', 'PYTHONTYPE': 'tuya', 'defargsh': {}, 'msgtype': 'function', 'argsh': {}, 'finished': 1, 'returnval': ''}
2024-10-05 10:52:30,777 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 24860ms for {"NAME":"T34_2_IP34_SL","id":91068082,"defargs":["T34_2_IP34_SL","fhempy","tuya","m4jtkjc43ltrilru","bf527eca92bfda7645awmn","192.168.7.34","3.4","39fcw9n5c8dmwjyhft93","3fc1de975357407e970d204acba133f6"],"args":["T34_2_IP34_SL","off"],"FHEMPYTYPE":"tuya","function":"Set","PYTHONTYPE":"tuya","defargsh":{},"msgtype":"function","argsh":{}}
2024-10-05 10:52:30,837 - ERROR    - fhempy.lib.fhem: sendCommandName took 24.54324436187744s to send: readingsBeginUpdate($defs{'T34_1_IP7_33_SL'});;




Wo kann ich hier ansetzen mit der Fehlersuche?

Danke VG T
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

stefanru

Hi Riker,

ich habe 10 Steckdosen am laufen.
Eigentlich sind sie stabil.

Ich habe aber eine die hinter einem Tempoeratursensor sitzt und die ich versuche zu reaktivieren wenn sie wieder angeschaltet wird.

Mit einem Modify bekomme ich Steckdosen wieder ans Leben:
Einfach ein modify das dem DEF des Devices enspricht.
Ist ungefähr so:
modify tuya_local_<deine_id> tuya <id> <id> <IP> <Version> <id> <id>

Das ganze triggere ich in einem DOIF auf das power reading des devices.
Wenn das älter als 120 sekunden wird mache ich den modify:
ReadingsAge("tuya_local_<deine_id>","cur_power",0);

Gruß,
Stefan


riker1

danke, werde ich mal probieren.
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

satprofi

Zitat von: stefanru am 05 Oktober 2024, 11:45:51Mit einem Modify bekomme ich Steckdosen wieder ans Leben:
Einfach ein modify das dem DEF des Devices enspricht.
Ist ungefähr so:
modify tuya_local_<deine_id> tuya <id> <id> <IP> <Version> <id> <id>



Gruß,
Stefan



habe das mal probiert, bekomme dann das als meldung
Module failed to load: ffyhi3mbqgceowhk
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.10/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.10/site-packages/fhempy/lib/fhem_pythonbinding.py", line 573, in import_module
    module_object = await utils.run_blocking(
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.10/site-packages/fhempy/lib/utils.py", line 72, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'fhempy.lib.ffyhi3mbqgceowhk'
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

Hi satprofi,

ich bin verwirrt.
Was genau hast du mit modify gemacht.
Ich touche ein fhem local Device.

Ist eigentlich wie ein delete and create des Devices.
Warum sollte da auf einmal eine Lib fehlen?

Gruß,
Stefan

rallye

Nochmals Danke, Stefan!
Ich habe nun mal fhem-tuya-local und fhem-tuya-smartcloud entfernt. Weiters habe ich meine Trial-Period verlängert, da ich die entsprechenden Fehlermeldung im fhem-tuya-cloud gehabt habe - und es funktioniert mit Einschränkung.
Ich kann über FHEM ein- und ausschalten (sehe den Erfolg am Gerät und in der App), aber der Status in FHEM wird nicht zurückgeliefert - es bleibt der status immer "on".

Wäre mir egal, dem Modul "SolarForecast" jedoch nicht. Das schaltet wenn ausreichend Solarstrom vorhanden ist in regelmäßigen Intervallen ein bis der Status "on" ist, bzw bei unzureichender Solarenergie in regelmäßigen Abständen wieder aus bis der Status auf "off" ist. Das Schalten wird vom Gerät mit einem lauten "beep" quittiert was zu einem ungeahnten Beep-Konzert ausartet (der WAF ist auf -10).

Zusammengefasst: ja, geht prinzipiell, aber so ist das keine Lösung. Hast Du, oder ein anderer erfahrener Kollege eine Ahnung wie ich den Status richtig erhalte? Die App kann es doch auch.

Danke

Rallye

In diesem Zusammenhang noch eine Frage: geht die Verlängerung des Testzeitraumes immer nur für 6 Monate oder kann man da etwas anders machen?
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

stefanru

Hi Rallye,

mit dem Gerät kann ich dir leider auch nicht weiter helfen. Vieleicht fehlt da ein Mapping im fhempy?
Ich habe nur Steckdosen. Diese gehen und liefern auch sofort den Status zurück. Funktioniert auch mit SolarForecast.
Könntest du auch eine Steckdose vor das Gerät klemmen?

Die Steckdosen liefern:
switch_1  on
dieser setzt dann state   on.

Die Steckdosen haben auch noch cur_current und cur_power. Auch an den Readings kann man gut sehen ob an oder aus.
Hat dein Gerät eventuell auch andere Readings an denen du erkennen kannst ob es an oder aus ist?
Den state des Devices könnte man dan durch diese Readings setzen.

Wenn du garnichts am Gerät selbst hast an dem du erkennen kannst ob es an ist könntest du auch über einen Dummy arebiten bei dem du den state immer entsprechend der erwartung setzt.
Also set Dummy on setzt auch direkt den state auf on.
Auf den dummy könntest du per notify oder doif reagieren und dein tuya Device schalten.

Das ist aber eher die hässlichste Lösung. Besser wäre du hättest irgendwein reading an deinem tuya Gerät das du verwenden kannst um den state zu setzen.

Du kannst gerne mal ein List deines Devices schicken.

Gruß,
Stefan


satprofi

Zitat von: stefanru am 05 Oktober 2024, 15:39:55Hi satprofi,

ich bin verwirrt.
Was genau hast du mit modify gemacht.
Ich touche ein fhem local Device.

Ist eigentlich wie ein delete and create des Devices.
Warum sollte da auf einmal eine Lib fehlen?

Gruß,
Stefan
so wie du es gepostet hast. statt define eben modify
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

Ok, das verstehe ich nicht. Wenn du ein define machst passiert das nicht?
Sollte dann auch so passieren.

Gruß,
Stefan

satprofi

Hallo.
Habe es heute nochmals probiert, da ja der button auch funktioniert, und es klappt. irgendwas hat im string wahrscheinlich nicht geklappt. Aber die readings werden trotzdem nicht richtig abgerufen, gerade online bei den switches. aber Bewegungsmelder sind immer initializing
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram