fhempy: attr keep_connected?

Begonnen von OiledAmoeba, 11 Oktober 2022, 13:32:23

Vorheriges Thema - Nächstes Thema

OiledAmoeba

Moin,

ich habe jetzt schon mehrere Foreneinträge gefunden, in denen das Attribut keep_connected aufgeführt war.
Mein fhempy (laut "update list" aktuell) kennt dieses Attribut scheinbar nicht, zumindest ist es weder in Bestands-Devices noch in neuen Devices auswählbar, egal ob das Device lokal oder als Cloud-Device angelegt wird.

Warum juckt mich dieses Attribut? Egal ob tuya local oder tuya_cloud, irgendwann hört fhem auf, die Readings zu aktualisieren. Das lässt sich nur über einen fhem-Neustart beheben. Die Geräte zeigen aber weiterhin Daten in der App an. Daher gehe ich davon aus, dass die Verbindung von/zu fhem irgendwann geschlossen wird. Ich hoffe, dass das Attribut das macht, wo der Name nach klingt: Zu verhindern, dass die Verbindung geschlossen wird.

Richtig nervig ist der Datenpunkt add_ele (müsste dp_17 sein). Den liest tuya local scheinbar gar nicht und tuya_cloud nur am Tag des Neustarts. Am nächsten Tag wird der Punkt nicht mehr aktualisiert. tuya_cloud scheint auch nachts die Verbindung insgesamt zu verlieren, denn lokal zeigen die Steckdosen am nächsten Tag noch Daten an und tuya_cloud ist stumm...

Und noch was komisches ist mir aufgefallen: "Device specific help" zeigt nur ###README_HELP_STRING###

Long story short: Wie komme ich an "keep_connected" und ist es das, was ich hoffe?
Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+

dominik

Hi,

keep_connected gibt es bei tuya_cloud und tuya nicht.

tuya_cloud: Leider ist die Verbindung zur tuya Cloud sehr schlecht. Es passiert immer wieder, dass die Werte nicht aktualisiert werden. Das Problem liegt in dem Fall aber nicht an fhempy, das müsste tuya mal in Griff bekommen. Die Kollegen beim Home Assistant haben das gleiche Problem.

tuya: Ich empfehle die Verwendung von diesem Modul und nicht die tuya_cloud Variante! add_ele wird auch bei tuya_local ausgelesen, besser gesagt, es werden alle DPs ausgelesen die zur Verfügung stehen. Die Aktualisierung ist bei mir auch über Wochen stabil. Poste mal das list von dem Device (bitte API KEY/SECRET mit xxx ersetzen).

###README_HELP_STRING### ist vorübergehend, da ich Probleme mit der Websocket Verbindung zwischen fhem und fhempy hatte. Sobald das behoben ist, gibt es auch wieder die Help.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

OiledAmoeba

Moin,

danke, dass Du dich dem so schnell annimmst.
Zitat von: dominik am 11 Oktober 2022, 19:35:31
Hi,

keep_connected gibt es bei tuya_cloud und tuya nicht.

Aber gab es mal.
Changelog:
v0.1.31 (2021-01-27)
Feature
tuya: Add keep_connected attr (b2c1ca4)

Deswegen bin ich nur drauf gekommen.

Zitat von: dominiktuya_cloud: Leider ist die Verbindung zur tuya Cloud sehr schlecht. Es passiert immer wieder, dass die Werte nicht aktualisiert werden. Das Problem liegt in dem Fall aber nicht an fhempy, das müsste tuya mal in Griff bekommen. Die Kollegen beim Home Assistant haben das gleiche Problem.

tuya: Ich empfehle die Verwendung von diesem Modul und nicht die tuya_cloud Variante! add_ele wird auch bei tuya_local ausgelesen, besser gesagt, es werden alle DPs ausgelesen die zur Verfügung stehen. Die Aktualisierung ist bei mir auch über Wochen stabil. Poste mal das list von dem Device (bitte API KEY/SECRET mit xxx ersetzen).

tuya_cloud hab ich nur, so ist meine Planung, um einfacher an den local_key zu kommen, weil ich keine Lust habe, jedesmal dafür die tuya-Wolke aufzumachen. Oder ich guck es in hass nach, aber in fhem ists einfacher ;-) (In hass hab ich auch tuya_local, das holt wenigstens die Verbrauchswerte, denn das offizielle Cloud-Modul liefert die Daten nicht. Egal, geloggt wird es eh in fhem, hass ist nur für den WAF)

Hier mal eins der Devices, die immer wieder aufhören:

Internals:
   DEF        tuya bhqkxecq6o5qkc52 bfe8435163de9e6864jnts 10.23.103.2 local_key 3.3 xxx xxx
   DEVICEID   bfe8435163de9e6864jnts
   FHEMPYTYPE tuya
   FUUID      63431d57-f33f-2b54-50ef-160e5493cc2e07c7
   FVERSION   10_fhempy.pm:0.182830/2019-01-16
   IODev      pyBinding
   NAME       tuya_local_bfe8435163de9e6864jnts
   NR         516
   PYTHONTYPE tuya
   STATE      on
   TYPE       fhempy
   CHANGED:
     cur_voltage: 230.6
     online: 1
   Helper:
     DBLOG:
       cur_voltage:
         logdb:
           TIME       1665505426.75438
           VALUE      229.4
   READINGS:
     2022-10-11 15:22:20   active_time     1665154938
     2022-10-11 16:23:42   add_ele         0.047
     2022-10-11 15:22:20   biz_type        0
     2022-10-11 15:22:20   category        cz
     2022-10-11 15:22:20   countdown_1     0.0
     2022-10-11 15:22:20   create_time     1665154938
     2022-10-11 15:23:46   cur_current     0.0
     2022-10-11 15:23:46   cur_power       0.0
     2022-10-11 19:23:46   cur_voltage     230.6
     2022-10-11 15:22:20   dp_21           1
     2022-10-11 15:22:20   dp_22           630
     2022-10-11 15:22:20   dp_23           31437
     2022-10-11 15:22:20   dp_24           17991
     2022-10-11 15:22:20   dp_25           2310
     2022-10-11 15:22:20   dp_26           0
     2022-10-11 15:22:20   icon            smart/icon/bay1603247053327gtRW/f0615f7985374fe0bb0504e3f34bfb42.png
     2022-10-11 15:22:20   id              bfe8435163de9e6864jnts
     2022-10-11 15:22:20   ip              xxx
     2022-10-11 15:22:20   lat             xxx
     2022-10-11 15:22:20   light_mode      relay
     2022-10-11 15:22:20   local_key       local_key
     2022-10-11 15:22:20   lon             xxx
     2022-10-11 15:22:20   model           F1s202-EU
     2022-10-11 15:22:20   name            Waschmaschine
     2022-10-11 19:23:46   online          1
     2022-10-11 15:22:20   owner_id        42820982
     2022-10-11 15:22:20   product_id      bhqkxecq6o5qkc52
     2022-10-11 15:22:20   relay_status    on
     2022-10-11 18:11:39   state           on
     2022-10-11 15:22:20   sub             0
     2022-10-11 15:22:20   time_zone       +02:00
     2022-10-11 15:22:20   uid             eu1637841506751N6VpJ
     2022-10-11 15:22:20   update_time     1665154950
     2022-10-11 15:22:20   uuid            uuid
   args:
     tuya_local_bfe8435163de9e6864jnts
     fhempy
     tuya
     bhqkxecq6o5qkc52
     bfe8435163de9e6864jnts
     10.23.103.2
     local_key
     3.3
     xxx
     xxx
   argsh:
Attributes:
   DbLogExclude .*
   DbLogInclude cur_voltage,cur_current,cur_power,add_ele
   alias      Waschmaschine
   devStateIcon {my $light = ReadingsVal($name,"state","off"); my $power = ReadingsVal($name,"cur_power","unknown"); my $current = ReadingsVal($name,"cur_current","unknown"); my $voltage = ReadingsVal($name,"cur_voltage","-100"); "<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $power W / Strom: $current mA / Spannung: $voltage V</div>"}
   dp_01      switch_1
   dp_09      countdown_1
   dp_17      add_ele
   dp_18      cur_current
   dp_19      cur_power
   dp_20      cur_voltage
   dp_38      relay_status
   dp_39      light_mode
   group      tuya
   icon       scene_washing_machine
   room       Küche,fhempy
   tuya_spec_functions [{'code': 'switch_1', 'dp_id': 1, 'type': 'Boolean', 'values': {}, 'desc': 'switch 1'}, {'code': 'countdown_1', 'dp_id': 9, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}, 'desc': 'countdown 1'}, {'code': 'relay_status', 'dp_id': 38, 'type': 'Enum', 'values': {'range': ['power_off', 'power_on', 'last']}, 'desc': 'relay status'}, {'code': 'light_mode', 'dp_id': 39, 'type': 'Enum', 'values': {'range': ['relay', 'pos', 'none']}, 'desc': 'light mode'}]
   tuya_spec_status [{'code': 'switch_1', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'countdown_1', 'dp_id': 9, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}}, {'code': 'add_ele', 'dp_id': 17, 'type': 'Integer', 'values': {'unit': 'kwh', 'min': 0, 'max': 50000, 'scale': 3, 'step': 100}}, {'code': 'cur_current', 'dp_id': 18, 'type': 'Integer', 'values': {'unit': 'mA', 'min': 0, 'max': 30000, 'scale': 0, 'step': 1}}, {'code': 'cur_power', 'dp_id': 19, 'type': 'Integer', 'values': {'unit': 'W', 'min': 0, 'max': 50000, 'scale': 1, 'step': 1}}, {'code': 'cur_voltage', 'dp_id': 20, 'type': 'Integer', 'values': {'unit': 'V', 'min': 0, 'max': 5000, 'scale': 1, 'step': 1}}, {'code': 'relay_status', 'dp_id': 38, 'type': 'Enum', 'values': {'range': ['power_off', 'power_on', 'last']}}, {'code': 'light_mode', 'dp_id': 39, 'type': 'Enum', 'values': {'range': ['relay', 'pos', 'none']}}]


Das Listing ist, mit bearbeiten und diesen Text tippen, etwa 10 Minuten alt. Man beachte, dass da seit 19:23:46 keine Daten mehr kommen, übrigens (zufällig?) genau vier Stunden, nachdem die Spülmaschine ausgeschaltet wurde (vergleiche 15:23:46   cur_power).

add_ele kann nicht stimmen, denn seit 15:23 ist der Verbraucher aus. Es sei denn, die Steckdose misst sich selbst mit, denn der Wert kam eine Stunde nach der Ausschaltung...

Das gleiche Gerät aus der Cloud zeigt, dass es durchaus neuere Daten für add_ele und curr_.* gibt:
Internals:
   DEF        tuya_cloud tuya_cloud_connector bf8b92a1674a161e3d7taa
   DEVICEID   bf8b92a1674a161e3d7taa
   FHEMPYTYPE tuya_cloud
   FUUID      63406de8-f33f-2b54-deda-a34bfe22a5d167cb
   FVERSION   10_fhempy.pm:0.182830/2019-01-16
   IODev      pyBinding
   NAME       Spuelmaschine_bf8b92a1674a161e3d7taa
   NR         512
   PYTHONTYPE tuya_cloud
   STATE      on
   TYPE       fhempy
   Helper:
     DBLOG:
       add_ele:
         logdb:
           TIME       1665506930.84879
           VALUE      0.001
       cur_current:
         logdb:
           TIME       1665506930.84879
           VALUE      0.0
       cur_power:
         logdb:
           TIME       1665506930.84879
           VALUE      0.0
       cur_voltage:
         logdb:
           TIME       1665520508.27624
           VALUE      232.2
   READINGS:
     2022-10-11 17:08:49   active_time     1665155011
     2022-10-11 18:48:50   add_ele         0.001
     2022-10-11 17:08:49   biz_type        0
     2022-10-11 17:08:49   category        cz
     2022-10-11 18:48:50   countdown_1     0.0
     2022-10-11 17:08:49   create_time     1665155011
     2022-10-11 18:48:50   cur_current     0.0
     2022-10-11 18:48:50   cur_power       0.0
     2022-10-11 22:35:08   cur_voltage     232.2
     2022-10-11 17:08:49   icon            https://images.tuyaeu.com/smart/icon/bay1603247053327gtRW/f0615f7985374fe0bb0504e3f34bfb42.png
     2022-10-11 17:08:49   id              bf8b92a1674a161e3d7taa
     2022-10-11 17:08:49   ip              xxx
     2022-10-11 17:08:49   lat             xxx
     2022-10-11 18:48:50   light_mode      relay
     2022-10-11 17:08:49   local_key       xxx
     2022-10-11 17:08:49   lon             xxx
     2022-10-11 17:08:49   model           F1s202-EU
     2022-10-11 17:08:49   name            Spuelmaschine
     2022-10-11 17:08:49   online          on
     2022-10-11 17:08:49   owner_id        xxx
     2022-10-11 17:08:49   product_id      bhqkxecq6o5qkc52
     2022-10-11 17:08:49   product_name    Antela Smart Plug
     2022-10-11 18:48:50   relay_status    power_on
     2022-10-11 18:48:50   state           on
     2022-10-11 17:08:49   sub             off
     2022-10-11 17:08:49   time_zone       +02:00
     2022-10-11 17:08:49   uid             eu1637841506751N6VpJ
     2022-10-11 17:08:49   update_time     1665155063
     2022-10-11 17:08:49   uuid            xxx
   args:
     Spuelmaschine_bf8b92a1674a161e3d7taa
     fhempy
     tuya_cloud
     tuya_cloud_connector
     bf8b92a1674a161e3d7taa
   argsh:
Attributes:
   DbLogExclude .*
   DbLogInclude cur_voltage,cur_current,cur_power,add_ele
   alias      Spülmaschine
   devStateIcon {my $light = ReadingsVal($name,"state","off"); my $power = ReadingsVal($name,"cur_power","unknown"); my $current = ReadingsVal($name,"cur_current","unknown"); my $voltage = ReadingsVal($name,"cur_voltage","-100"); "<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $power W / Strom: $current mA / Spannung: $voltage V</div>"}

   group      tuya_cloud
   icon       scene_washing_machine
   room       fhempy


Wenn man z.B. die Spannung in ein SVG loggt, fällt auf, dass das Device scheinbar in eine Art "hibernate" fällt, wenn der Verbraucher ausgeschaltet ist. Kurz nachdem die Spülmaschine ausgeschaltet wurde, werden die Abstände zwischen der Messwerten deutlich länger, siehe anliegendes Bild. Rot ist power und grün ist voltage. Durchgezogen ist local, gepunktet ist cloud.

Zitat von: dominik###README_HELP_STRING### ist vorübergehend, da ich Probleme mit der Websocket Verbindung zwischen fhem und fhempy hatte. Sobald das behoben ist, gibt es auch wieder die Help.
Gut zu wissen, denn soweit ich weiß, gibt es sonst soweit keine Doku, oder?
Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+