fhempy: tuya (lokal)

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

Vorheriges Thema - Nächstes Thema

ahermann86

Hallo dominik,

danke für die die ausführliche Erklärung.  8)

Für mich wäre es akzeptabel, wenn ich nach dem Laden der Mapping die Cloudverbindung deaktivieren könnte.
Der JSON Mapping Inhalt für die mappings.py, müsste ja über die Tuya Cloud zu bekommen sein? das könnte ich dir zum einpflegen geben...

Zum Thema "Initializing..." - wenn ich wieder auf die Version 504 zurück gehe und der Sensor etwas meldet, sprint der State wieder auf ready.
Ich habe das heute um 12:06 wieder downgegraded - was man auch schön in der Grafik sehen kann.

Außerdem ist wieder das fhempy Log angehängt.

Gruß
Axel

denis.robel

Hallo Dominik,

momentan ist das Verhalten so, dass die readings nur bei der Erkennung des Sensors, also beim Anlegen des Devices genau 1x an FHEM übertragen werden und dann nicht mehr.
Interessanter Weise kann ich aber den Thermostat der Fußbodenheizung  via Fhem an und aus schalten und auch die Soll Temperatur kann ich setzten.
VG

Denis

fretti

Hallo,

ich habe auch das Problem , dass meine beiden Tuya-Devices (Lampe und ein Plug) im Status  "Initializing" stehen bleiben.
Habe den fhempy-Server noch mal gestoppt und  beide Devices gelöscht und nach einem Neustart des fhempy-Servers nur den Plug neu anlegen lassen.
Gleicher Status - "Initializing"
Dabei erhalte im im Log folgende Meldungen:

2022-12-06 23:10:09,861 - ERROR    - tuya_local_63554574c4dd57244455: Failed create_device
Traceback (most recent call last):
  File "/usr/lib/python3.9/asyncio/locks.py", line 413, in acquire
    await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
    fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 473, in create_device
    await self._create_cloudmapping_dev()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/tuya.py", line 395, in _create_cloudmapping_dev
    status = await self._connected_device.status()
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/pytuya/__init__.py", line 484, in status
    status = await self.exchange(STATUS)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/pytuya/__init__.py", line 463, in exchange
    msg = await self.dispatcher.wait_for(seqno)
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/tuya/pytuya/__init__.py", line 250, in wait_for
    await asyncio.wait_for(self.listeners[seqno].acquire(), timeout=timeout)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError



Ich hatte auch mal die Version 504 downgegraded, da funktionierte es und der Status wurde ready, aber da gab es Probleme mit Fehlermeldung im fhemweb, bei der Bedienung.
Diese Fehlermeldung trat nur im Zusammenhang mit dem fhempy-Devices auf. Alle anderen fhemweb-Elemente funktionierten.
Gruß Thomas
promox, debian, rpi, homematic, mqtt, dect, z2m

klausw

Hi Dominik,

ich habe mit zum testen ein Tuya Leuchtmittel angeschafft, Leuchtmittel in Smartlife eingebunden, fhempy und tuya nach Deiner Anleitung installiert.
Das Leuchtmittel ließ sich dann auch über scan_devices finden und mit create_device anlegen.
Leider bleibt es auf Initializing... stehen.
Ich habe es paarmal vom Netzgetrennt und über die Smartlife App bedient, aber es tut sich nix. Im Log ist auch nichts zu finden.

Kannst du mir da nen Tip geben?

Lists von..
fhempy:
Internals:
   BindingType fhempy
   DEF        fhempy
   DeviceName ws:localhost:15733
   FD         13
   IP         127.0.0.1
   NAME       fhempy_local
   NR         23
   NTFY_ORDER 50-fhempy_local
   PARTIAL   
   PORT       15733
   STATE      opened
   TYPE       BindingsIo
   WEBSOCKET  1
   binary     1
   connecttime 1670585350.28102
   devioLoglevel 0
   eventCount 50
   installing 0
   localBinding 1
   nextOpenDelay 10
   prev_error localhost: Verbindungsaufbau abgelehnt (111)
   READINGS:
     2022-12-09 12:29:10   hostname        pi4
     2022-12-09 12:29:10   os              posix
     2022-12-09 12:29:10   python          3.9.2
     2022-12-09 12:29:10   release         5.15.76-v8+
     2022-12-09 12:29:10   state           opened
     2022-12-09 12:29:10   system          Linux
     2022-12-09 12:29:10   version         0.1.526
     2022-12-09 12:29:11   version_available 0.1.526
     2022-12-09 12:29:11   version_release_notes <html><a href="https://github.com/fhempy/fhempy/releases" target="_blank">Release Notes</a></html>
   args:
     fhempy_local
     BindingsIo
     fhempy
Attributes:
   devStateIcon {        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 = "";;        if ($ver_available ne $ver) {          $status_img = "10px-kreis-gelb";;          $status_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")."</a>";;        "<div><a>".FW_makeImage($status_img, $status_txt)."</a><a> ".$ver." </a>".$update_icon."</div>"      }
   group      fhempy
   icon       file_json-ld2
   room       fhempy


tuya:
Internals:
   API_KEY    APIKEY
   API_SECRET APISECRET
   DEF        tuya setup APIKEY APISECRET DEVID
   DEVICEID   0
   FHEMPYTYPE tuya

   IODev      fhempy_local
   NAME       tuya_system
   NR         25
   PYTHONTYPE tuya
   REGION     eu
   STATE      1 devices found localy
   TYPE       fhempy
   eventCount 7
   READINGS:
     2022-12-04 23:58:36   DEVID_icon https://images.tuyaeu.com/smart/icon/ay1525830333575gYi61/d9a5f9bcc5fa2d6c047b8a56b2e691b0.png
     2022-12-04 23:58:36   DEVID_id DEVID
     2022-12-04 23:59:26   DEVID_ip 192.168.178.47
     2022-12-04 23:58:36   DEVID_localkey locKey
     2022-12-04 23:58:36   DEVID_name M-TCV1
     2022-12-04 23:58:36   DEVID_productid zhuhhc9hdwibjz6v
     2022-12-04 23:59:26   DEVID_version 3.4
     2022-12-09 12:37:02   state           1 devices found localy
   args:
     tuya_system
     fhempy
     tuya
     setup
     APIKEY
     APISECRET
     DEVID
   argsh:
Attributes:
   group      tuya
   room       fhempy


Leuchtmittel:
   Internals:
   DEF        tuya zhuhhc9hdwibjz6v DEVID 192.168.178.47 locKey 3.4 APIKEY APISECRET
   DEVICEID   DEVID
   FHEMPYTYPE tuya

   IODev      fhempy_local
   NAME       tuya_local_DEVID
   NR         26
   PYTHONTYPE tuya
   STATE      Initializing...
   TYPE       fhempy
   eventCount 82079
   READINGS:
     2022-12-05 00:18:52   active_time     1670189824
     2022-12-05 00:18:52   biz_type        18
     2022-12-05 00:18:52   category        dj
     2022-12-05 00:18:52   create_time     1670189824
     2022-12-05 00:18:52   icon            smart/icon/ay1525830333575gYi61/d9a5f9bcc5fa2d6c047b8a56b2e691b0.png
     2022-12-05 00:18:52   id              DEVID
     2022-12-05 00:18:52   ip              62.143.15.132
     2022-12-06 23:10:08   lat             50.1441
     2022-12-05 00:18:52   local_key       locKey
     2022-12-08 18:43:39   lon             8.6033
     2022-12-05 00:18:52   name            M-TCV1
     2022-12-09 12:38:40   online          0
     2022-12-05 00:18:52   owner_id        72805765
     2022-12-05 00:18:52   product_id      zhuhhc9hdwibjz6v
     2022-12-05 00:18:52   product_name    M-TCV1
     2022-12-09 12:29:11   state           Initializing...
     2022-12-05 00:18:52   sub             0
     2022-12-05 00:18:52   time_zone       +01:00
     2022-12-05 00:18:52   uid             eu1669756723579ISkWj
     2022-12-08 18:43:39   update_time     1670440222
     2022-12-05 00:18:52   uuid            8243228dfa810dd7
   args:
     tuya_local_DEVID
     fhempy
     tuya
     zhuhhc9hdwibjz6v
     DEVID
     192.168.178.47
     locKey
     3.4
     APIKEY
     APISECRET
   argsh:
Attributes:
   alias      M-TCV1
   group      tuya
   room       fhempy
   tuya_spec_functions [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}, 'desc': 'switch led'}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}, 'desc': 'work mode'}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'bright value v2'}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'temp value v2'}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}, 'desc': 'colour data v2'}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, 'desc': 'scene data v2'}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}, 'desc': 'countdown 1'}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'music data'}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'control data'}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'rhythm mode'}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'sleep mode'}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'wakeup mode'}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}, 'desc': 'power memory'}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}, 'desc': 'do not disturb'}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}, 'desc': 'cycle timing'}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}, 'desc': 'random timing'}]
   tuya_spec_status [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}}]
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

thburkhart

was ist für Euch das Motiv, Tuya Geräte über FHem zu steuern?

das klappt doch perfekt über SmartLife mit allen Timern, Verbrauchsabfragen und Regeln..

und sogar über ALEXA

bg

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

satprofi

die readings auswerten und dementsprechend verwerten?
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

JF Mennedy

Zitat von: thburkhart am 09 Dezember 2022, 13:25:45
was ist für Euch das Motiv, Tuya Geräte über FHem zu steuern?

das klappt doch perfekt über SmartLife mit allen Timern, Verbrauchsabfragen und Regeln..

und sogar über ALEXA

bg

Thomas

Hi Thomas,

ganz einfach, keine Cloud, läuft lokal im eigenen Netz auch ohne Internet... Wer die vorgefertigten Cloud-Lösungen der Hersteller bevorzugt braucht kein FHEM ;-)

Nur 1 Fall-Beispiel für die Ansteuerung eines Heizkonvektores:

Im Schminkzimmer meiner Frau hängt ein Heizkonvektor. Das Zimmer ist unbeheizt. Wenn nun mein Haus im Wintermodus ist (3 Tages Außentemperatur Durchschnitt < 14.0°C) und die Außentemperatur kleiner 12°C ist und der Wecker meiner Frau um 5.30 klingelt, wird ab 5.45 der Konvektor eingeschaltet, damit das Zimmer pünktlich um 6.00 warm ist, wenn meine Frau es betritt, um ihre Kriegsbemalung aufzulegen... FHEM weiß übrigens immer, wann der Wecker klingelt, da FHEM der Wecker ist, so dass da nichts manuell umgestellt werden muss, außer die Weckzeit eben, die in der Wochenplanung im Kalender eingetragen ist...

Das ist halt neben der Unabhängigkeit von dem Clouddienst eines Anbieters nur 1 Beispiel, weshalb man keine Smartlife App benutzen möchte ;-)

Gruss Jan

JF Mennedy

Zitat von: klausw am 09 Dezember 2022, 13:05:25
Hi Dominik,

ich habe mit zum testen ein Tuya Leuchtmittel angeschafft, Leuchtmittel in Smartlife eingebunden, fhempy und tuya nach Deiner Anleitung installiert.
Das Leuchtmittel ließ sich dann auch über scan_devices finden und mit create_device anlegen.
Leider bleibt es auf Initializing... stehen.
Ich habe es paarmal vom Netzgetrennt und über die Smartlife App bedient, aber es tut sich nix. Im Log ist auch nichts zu finden.

Kannst du mir da nen Tip geben?

Lists von..
fhempy:
Internals:
   BindingType fhempy
   DEF        fhempy
   DeviceName ws:localhost:15733
   FD         13
   IP         127.0.0.1
   NAME       fhempy_local
   NR         23
   NTFY_ORDER 50-fhempy_local
   PARTIAL   
   PORT       15733
   STATE      opened
   TYPE       BindingsIo
   WEBSOCKET  1
   binary     1
   connecttime 1670585350.28102
   devioLoglevel 0
   eventCount 50
   installing 0
   localBinding 1
   nextOpenDelay 10
   prev_error localhost: Verbindungsaufbau abgelehnt (111)
   READINGS:
     2022-12-09 12:29:10   hostname        pi4
     2022-12-09 12:29:10   os              posix
     2022-12-09 12:29:10   python          3.9.2
     2022-12-09 12:29:10   release         5.15.76-v8+
     2022-12-09 12:29:10   state           opened
     2022-12-09 12:29:10   system          Linux
     2022-12-09 12:29:10   version         0.1.526
     2022-12-09 12:29:11   version_available 0.1.526
     2022-12-09 12:29:11   version_release_notes <html><a href="https://github.com/fhempy/fhempy/releases" target="_blank">Release Notes</a></html>
   args:
     fhempy_local
     BindingsIo
     fhempy
Attributes:
   devStateIcon {        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 = "";;        if ($ver_available ne $ver) {          $status_img = "10px-kreis-gelb";;          $status_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")."</a>";;        "<div><a>".FW_makeImage($status_img, $status_txt)."</a><a> ".$ver." </a>".$update_icon."</div>"      }
   group      fhempy
   icon       file_json-ld2
   room       fhempy


tuya:
Internals:
   API_KEY    APIKEY
   API_SECRET APISECRET
   DEF        tuya setup APIKEY APISECRET DEVID
   DEVICEID   0
   FHEMPYTYPE tuya

   IODev      fhempy_local
   NAME       tuya_system
   NR         25
   PYTHONTYPE tuya
   REGION     eu
   STATE      1 devices found localy
   TYPE       fhempy
   eventCount 7
   READINGS:
     2022-12-04 23:58:36   DEVID_icon https://images.tuyaeu.com/smart/icon/ay1525830333575gYi61/d9a5f9bcc5fa2d6c047b8a56b2e691b0.png
     2022-12-04 23:58:36   DEVID_id DEVID
     2022-12-04 23:59:26   DEVID_ip 192.168.178.47
     2022-12-04 23:58:36   DEVID_localkey locKey
     2022-12-04 23:58:36   DEVID_name M-TCV1
     2022-12-04 23:58:36   DEVID_productid zhuhhc9hdwibjz6v
     2022-12-04 23:59:26   DEVID_version 3.4
     2022-12-09 12:37:02   state           1 devices found localy
   args:
     tuya_system
     fhempy
     tuya
     setup
     APIKEY
     APISECRET
     DEVID
   argsh:
Attributes:
   group      tuya
   room       fhempy


Leuchtmittel:
   Internals:
   DEF        tuya zhuhhc9hdwibjz6v DEVID 192.168.178.47 locKey 3.4 APIKEY APISECRET
   DEVICEID   DEVID
   FHEMPYTYPE tuya

   IODev      fhempy_local
   NAME       tuya_local_DEVID
   NR         26
   PYTHONTYPE tuya
   STATE      Initializing...
   TYPE       fhempy
   eventCount 82079
   READINGS:
     2022-12-05 00:18:52   active_time     1670189824
     2022-12-05 00:18:52   biz_type        18
     2022-12-05 00:18:52   category        dj
     2022-12-05 00:18:52   create_time     1670189824
     2022-12-05 00:18:52   icon            smart/icon/ay1525830333575gYi61/d9a5f9bcc5fa2d6c047b8a56b2e691b0.png
     2022-12-05 00:18:52   id              DEVID
     2022-12-05 00:18:52   ip              62.143.15.132
     2022-12-06 23:10:08   lat             50.1441
     2022-12-05 00:18:52   local_key       locKey
     2022-12-08 18:43:39   lon             8.6033
     2022-12-05 00:18:52   name            M-TCV1
     2022-12-09 12:38:40   online          0
     2022-12-05 00:18:52   owner_id        72805765
     2022-12-05 00:18:52   product_id      zhuhhc9hdwibjz6v
     2022-12-05 00:18:52   product_name    M-TCV1
     2022-12-09 12:29:11   state           Initializing...
     2022-12-05 00:18:52   sub             0
     2022-12-05 00:18:52   time_zone       +01:00
     2022-12-05 00:18:52   uid             eu1669756723579ISkWj
     2022-12-08 18:43:39   update_time     1670440222
     2022-12-05 00:18:52   uuid            8243228dfa810dd7
   args:
     tuya_local_DEVID
     fhempy
     tuya
     zhuhhc9hdwibjz6v
     DEVID
     192.168.178.47
     locKey
     3.4
     APIKEY
     APISECRET
   argsh:
Attributes:
   alias      M-TCV1
   group      tuya
   room       fhempy
   tuya_spec_functions [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}, 'desc': 'switch led'}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}, 'desc': 'work mode'}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'bright value v2'}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'temp value v2'}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}, 'desc': 'colour data v2'}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, 'desc': 'scene data v2'}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}, 'desc': 'countdown 1'}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'music data'}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'control data'}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'rhythm mode'}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'sleep mode'}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'wakeup mode'}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}, 'desc': 'power memory'}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}, 'desc': 'do not disturb'}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}, 'desc': 'cycle timing'}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}, 'desc': 'random timing'}]
   tuya_spec_status [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}}]


Hi Klaus,

Dominik arbeitet derweil an einem Fix.. Ich habe die Version 504 für eine Weile getestet, in der dieser Bug noch nicht enthalten ist, aber leider ein anderer ;-) (https://github.com/fhempy/fhempy/issues/106)

Gruss Jan

thburkhart

Zitat von: satprofi am 09 Dezember 2022, 17:10:35
die readings auswerten und dementsprechend verwerten?

oh ja!! deshalb habe ich es auch seit einigen Monaten installiert, um vor allem den Stromverbrauch auszuwerten. Dazu betreibe ich ca. 35 Gosund Steckdosen und habe 16 JCA301 rausgeschmissen. Dies in der Hoffnung, dass TUYA die Verbrauchswerte auch teges- und monats-kumuliert liefert. Diese hat Tuya ja; gibt sie aber nur über SmartLife preis :-(

Aber Tuya liefert ja immer noch aus der Cloud nur die aktuellen Werte.
Ich schreibe diese auch in meine extra auf SSD aufgerüstete DbLog. Mir fehlen die Kenntnisse, um diese readings dann in Tages-Werte in kWh zu kumulieren.
Hat jemand sowas gemacht und könnte die entsprechen Skripte mitteilen?
Dann ware ich super happy.
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

sash.sc

Schaue die mal das statistic Modul an
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

thburkhart

Zitat von: sash.sc am 10 Dezember 2022, 17:32:41
Schaue die mal das statistic Modul an
Min|Avg|Max Minimum, average and maximum of instantaneous values:
over a period of day, month and year:
current, energy_current, humidity, luminosity, temperature, voltage
over a period of hour, day, month and year:
brightness, wind, wind_speed, windSpeed

Tendency over 1h, 2h, 3h und 6h: pressure

Delta between start and end values - over a period of hour, day, month and year:
count, energy, energy_total, power, total, rain, rain_rate, rain_total

Duration (and counter) of the states (on, off, open, closed...) over a period of day, month and year:
lightsensor, lock, motion, Window, window, state (if no other reading is recognized)


da gibt es aber wohl keine Summierung ?
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

ich meine eine solche Darstellung wie in der App

Das könnte man mit GPLOT darstellen ,wenn man die die entsprechenden readings hätte ..

@dominik
Wäre das sehr schwierig/aufwändig, die Aufsummierung in deinem Modul vorzunehmen und die entsprechenden readings power_cum-YYYY-MM, hinzuzuerzeugen?

Du kriegst doch ca. alle Sekunde mit, welche cur_power anliegt und könntest z.B. bei jedem neuen Auslesen dies in power_cum-2022-12 mit x*cur-power einfach aufsummieren [Watt], wenn x das Delta zum letzten Lesevorgang [sec] ist.

Ich vermute mal, dass das über Userreadings oder so auch geht; in deinem Modul ginge es ja sozusagen "in einem Rutsch" und würde die dbLog entlasten, da man nur noch die Summenwerte monatlich in die Datenbank schreiben müsste.
Und wir wären von der Cloud noch unabhängiger ;-)
Mir wäre es eine anständige Spende wert ;-)


Momentan notiere ich mir die Monatswerte von ca. 30 Geräten händisch in einer EXCEL-Tabelle.
Den Gesamtstromverbrauch hole ich mir über PowerFox.
Einige Stromverbräuche hole ich mir über SmarteStromesser durch monatliches Ablesen. Dafür habe ich rund 200€ investiert.
Bei einem Invert von rund 750€ könnte ich auf TuYa WIfi Strommesser umstellen, wes mir zu teuer ist.

beste 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

Mazz78

Ich hab mein Problem/Fehler gefunden !

In der Tuya Handy App war als Zeitzone BERLIN eingetragen.

In der Tuya App unter https://iot.tuya.com/cloud/ -> Development -> <Projekt> hatte ich bei Data Center intuitiv West Europe ausgewählt.

Bei der Fehlersuche hab ich dann auf der Seite https://developer.tuya.com/en/docs/iot/Data_Center_Introduction?id=Kav2hlac2ppnw gesehen, dass Berlin (-> Germany) aber auf dem Data Center Central Europe läuft.

Nach der Änderung auf Central Europe konnte ich die Handy App erfolgreich koppeln/einscannen (Pkt. 9 in der Anleitung)


Zitat von: Mazz78 am 19 November 2022, 16:56:50
Hallo zusammen,

Ich hänge irgendwo bei der Ersteinrichtung...  :-\

....

RaPi 4 / Buster / FHEM 6
CUL868 / JeeLink868
Banana M1 (Bananian) + ser2net + Stiebel Eltron LWZ403
FIRMATA -> Gartenbewässerung /-licht
ALEXA

thburkhart

auf jeden Fall möchte nun von tuya_cloud auf tuya_lokal umsteigen.

fhempy  ist ja identisch ?

also nur noch wie in der Install-Anleitung :
FHEM
update add https://raw.githubusercontent.com/fhempy/fhempy/master/controls_pythonbinding.txt
update
shutdown restart
define fhempy_local BindingsIo fhempy

?
wie müsste ich meine bisherige DEF

# TUYA Cloud ####################################################################################

## TUYAFHEM
## Integration in FHEM
## https://iot.tuya.com/cloud/basic?id=p16199838266334apucq&region=AY&toptab=related&deviceTab=all&sourceType=4&sourceId=eu1548823829280mLHX1
## Project Type: Smart HomeIndustry: Smart HomeCreate Time : 2021-05-02 21:30:63
## Authorization Key
## Access ID/Client ID: qcephkpvajw1rn0qzrij    ea8453wdazquzfl08l0e
## Access Secret/Client Secret: c975081e74f34b2fbafcad20058c7488     8a4b27dd759d4c6a9456aa8155d2a0ea

##define TUYA fhempy tuya_cloud setup <CLIENT_ID>         <CLIENT_SECRET>                  <USERNAME> <PASSWORD> <APPTYPE> <REGION>
define TUYA fhempy tuya_cloud setup yyyyyyyyyyyy xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx@gmx.net xxxxxxxx smartlife Europe
setuuid TUYA 6160933e-f33f-21fb-4a78-6f28e312ea5b9f44
attr TUYA group TUYA
attr TUYA room TUYA
attr TUYA verbose 1


umstellen verändern, damit meine bisherigen Devices erhalten bleiben können:

define JL08 fhempy tuya_cloud TUYA 22230808807d3a231039
setuuid JL08 616325a2-f33f-21fb-f48e-f87abe3628a251bd
attr JL08 alias PC Schreibtisch NAS
attr JL08 group Schalter NAS
attr JL08 room THOMAS,TUYA,Thomas Schreibtisch



kann ich die erste DEFine  einfach "fhempy tuya_cloud" auf lokal umdefinieren

also so beginnnend:
define TUYA fhempy tuya_cloud setup ..
mit welchen Argumenten/ Syntax?

Dominik hatte das schon mal geschrieben... finde es allerdings nicht mehl


ich danke euch sehr

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

Zitat von: dominik am 30 April 2022, 20:38:47
Der Cloud Zugang bei diesem Plugin dient nur dafür, dass man die Spezifikation der einzelnen Datenpunkte (DPs) erhält.

Du kannst deine tuya_cloud Devices sogar parallel dazu nutzen. Daher einfach das hier anlegen:

define tuya_system fhempy tuya setup API_KEY API_SECRET DEVICE_ID
set tuya_system start_scan


Du kannst dann die einzelnen Devices über das set create_device Command anlegen.
Wenn dann alles funktioniert, kannst du die tuya_cloud Devices löschen.

habe es also doch gefunden...

nur woher bekomme ich:
API_KEY
API_SECRET ??

DEVICE_ID ist ja je Device

im Tuya-Konto habe ich ja folgendes:
Authorization Key
Access ID/Client ID: ****************************
Access Secret/Client Secret: ********************************
Project Code: ************
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