fhempy: Tuya Cloud

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

Vorheriges Thema - Nächstes Thema

dominik

Zitat von: fhem@supergut am 25 November 2021, 09:58:49
Moin,

ich habe hier eine Deckenlampe per Wifi und Tuya eingebunden. Kann mir jemand einen Denkanstoß gegen wie die desse jetzt über fhem / fhempy schalten kann? Per tuya-mqtt habe ich schon mal 3 Werte, aber mir fehlt einfach der Ansatz wo ich beginnen muss um das in fhem / fhempy zu integrieren? Danke. Gesund bleiben!

on/off
pi@fhem-pi4:~ $ mosquitto_pub -t 'tuya/baby/DPS/20/command' -m 'true'
pi@fhem-pi4:~ $ mosquitto_pub -t 'tuya/baby/DPS/20/command' -m 'false'

dimmer
pi@fhem-pi4:~ $ mosquitto_pub -t 'tuya/baby/DPS/22/command' -m '10'
pi@fhem-pi4:~ $ mosquitto_pub -t 'tuya/baby/DPS/22/command' -m '400'
pi@fhem-pi4:~ $ mosquitto_pub -t 'tuya/baby/DPS/22/command' -m '1000'


defmod tuya_baby_1 PythonModule tuya 2mdih0ds0q8wzncp bfc079fb02a1dc6664zrqn 172.31.100.16 5f5879c706e3d34a
attr tuya_baby_1 IODev local_pybinding
attr tuya_baby_1 room zTuya

setstate tuya_baby_1 online
setstate tuya_baby_1 2021-11-25 09:42:46 dp_20 1
setstate tuya_baby_1 2021-11-25 08:49:44 dp_21 white
setstate tuya_baby_1 2021-11-25 09:43:34 dp_22 10
setstate tuya_baby_1 2021-11-25 09:40:08 dp_23 1
setstate tuya_baby_1 2021-11-25 08:42:09 dp_24 000003e803e8
setstate tuya_baby_1 2021-11-25 08:49:44 dp_25 FF5f5f01000003E803E8000000005f5f01001E03E803E8000000005f5f01003C03E803E8000000005f5f01007803E803E8000000005f5f0100B403E803E8000000005f5f0100F003E803E8000000005f5f01012C03E803E800000000
setstate tuya_baby_1 2021-11-25 08:42:09 dp_26 0
setstate tuya_baby_1 2021-11-25 08:42:09 dp_34 0
setstate tuya_baby_1 2021-11-25 09:20:47 state online


Ich empfehle tuya_cloud statt tuya zu nutzen, hier die Anleitung:
https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/tuya_cloud/README.md
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

bewa58

ZitatHabt ihr auch sicher bei tuya iot die Notifications aktiviert?

Ja, natürlich. Hat doch eine Zeit lang funktioniert.

fhem@supergut

Zitat von: dominik am 25 November 2021, 22:15:10
Ich empfehle tuya_cloud statt tuya zu nutzen, hier die Anleitung:
https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/tuya_cloud/README.md

Jau, danke.

defmod Baby_bfc079fb02a1dc6664zrqn PythonModule tuya_cloud tuya_cloud_connector bfc079fb02a1dc6664zrqn
attr Baby_bfc079fb02a1dc6664zrqn IODev local_pybinding
attr Baby_bfc079fb02a1dc6664zrqn alias Baby
attr Baby_bfc079fb02a1dc6664zrqn group tuya_cloud
attr Baby_bfc079fb02a1dc6664zrqn room fhempy

setstate Baby_bfc079fb02a1dc6664zrqn on
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 active_time 1637760821
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 biz_type 0
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 bright_value 10.0
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 category xdd
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 colour_data ff0000
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 countdown 0.0
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 create_time 1637757837
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 do_not_disturb off
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 icon https://images.tuyaeu.com/smart/icon/ay15302565619159aD9o/82fa8dc5a0ff1f44788060dcc4b3acea.png
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 id bfc079fb02a1dc6664zrqn
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 ip 92.116.12.212
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 lat 52.1918
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 local_key 5f5879c706e3d34a
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 lon 8.7143
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 model D36C-WIFI
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 name Baby
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 online off
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 owner_id 28686958
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 product_id 2mdih0ds0q8wzncp
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 product_name Baby
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 scene_data {"scene_num":256,"scene_units":[{"bright":0,"h":0,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":30,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":60,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":120,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":180,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":240,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000},{"bright":0,"h":300,"s":1000,"temperature":0,"unit_change_mode":"jump","unit_gradient_duration":95,"unit_switch_duration":95,"v":1000}]}
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 state on
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 sub off
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 temp_value 0.0
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 time_zone +01:00
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 uid eu161760599381547022
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 update_time 1637827601
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:17 uuid 31c22c3ba8ef21a1
setstate Baby_bfc079fb02a1dc6664zrqn 2021-11-26 09:17:18 work_mode white



ChrisA4

Zitat von: dominik am 25 November 2021, 21:34:43
Habt ihr auch sicher bei tuya iot die Notifications aktiviert?
Punkt 6: https://github.com/tuya/tuya-home-assistant/wiki/Tuya-IoT-Platform-Configuration-Guide

Ja und ich hab auch nochmal das ganze komplett neu gemacht und weiterhin selbiges problem mit der Status aktualisierung

juergen012

Auch bei mir, wie bei den Anderen..

Gruß
Fhem unter Proxmox

dominik

Ich habe gerade 0.1.176 released und dort wieder eine alte Version der tuya Library (0.4.1) eingebaut. Bitte mal damit testen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

bewa58

jetzt tauchen im LOG Meldungen auf!  (vor dem update auf 0.1.176)

Habe 2 neue Devices angelegt. Set Befehle werden nicht angenommen, oder mal doch.
Neustart fhempyserver_15733 muss ich dann machen und die Readings werden aktualisiert.

hier mal der LOG dazu:
Zitat2021-11-26 19:45:42,316 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.351 seconds
2021-11-26 19:50:45,135 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2021-11-26 19:50:45,807 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.358 seconds
2021-11-26 19:53:09,539 - INFO     - tuya_cloud_connectorNEU: add_device received for 53557412c82b960cbbd0
2021-11-26 19:53:11,840 - INFO     - tuya_cloud_connectorNEU: create: Smart_light__4_53557412c82b960cbbd0 PythonModule tuya_cloud tuya_cloud_connectorNEU 53557412c82b960cbbd0
2021-11-26 19:54:04,131 - DEBUG    - tuya_cloud_connectorNEU: update_device received for 53557412c82b960cbbd0
2021-11-26 19:54:04,225 - ERROR    - Smart_light__4_53557412c82b960cbbd0: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/tuya_cloud/tuya_cloud_device.py", line 292, in update_readings_dict
    st_name, json.loads(status_dic[st_name])
  File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2021-11-26 19:54:54,557 - DEBUG    - tuya_cloud_connectorNEU: update_device received for 41518006f4cfa25b52db
2021-11-26 19:55:48,353 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2021-11-26 19:55:49,016 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.343 seconds
2021-11-26 20:00:51,789 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2021-11-26 20:00:52,763 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.349 seconds
2021-11-26 20:04:44,447 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-11-26 20:04:44,473 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-11-26 20:04:44,566 - WARNING  - asyncio: Executing  wait_for=<_GatheringFuture pending cb=[()] created at /usr/lib/python3.7/asyncio/tasks.py:615> cb=[_run_until_complete_cb() at /usr/lib/python3.7/asyncio/base_events.py:158] created at /usr/lib/python3.7/asyncio/base_events.py:563> took 0.119 seconds
2021-11-26 20:04:44,569 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-11-26 20:04:52,300 - INFO     - websockets.server: connection open
2021-11-26 20:04:52,303 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-11-26 20:04:56,427 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.359 seconds
2021-11-26 20:04:57,882 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2021-11-26 20:04:59,967 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.335 seconds
2021-11-26 20:09:09,590 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-11-26 20:09:09,616 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-11-26 20:09:09,691 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-11-26 20:09:17,121 - INFO     - websockets.server: connection open
2021-11-26 20:09:17,124 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-11-26 20:09:22,496 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.338 seconds
2021-11-26 20:09:24,421 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2021-11-26 20:09:25,709 - WARNING  - asyncio: Executing () created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.414 seconds

dominik

Teste das bitte nochmals mit 0.1.176.

Der gepostete Fehler sollte nur colour_data nicht aktualisieren, der Rest sollte dennoch klappen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ChrisA4

Hab jetzt die 177 drauf
in der App werden die Status aktualisiert aber unter fhem nur wenn man fhempy updatet, ansonsten von 10 schaltungen ca 1/1min ca 2 von 10 werden aktualisiert.
Hoffe es hilft weiter

juergen012

Bei mir ebenso wie bei ChrisA4
Fhem unter Proxmox

bewa58

dito

1x klappt es, dann wieder nicht.

Auch die Schaltungen per Smartlive App werden nur sporadisch in FHEM angezeigt.
Wenn es mal funktioniert dauert readings update bis zu 1ner Minute !
kann da keine Regelmäßgigkeit erkennen.

Noch etwas:

webCmd :
colour_data_v2:colour_data_v2 ff0000:colour_data_v2 F24CE7:colour_data_v2 38FF05:colour_data_v2 DEFF26:colour_data_v2 0000ff:toggle:on:off

beim anklicken auf das Lampen-Icon
kommt Fehlermeldung:  Command not available for this device !

??? fehlt da noch eine Implementierung ?



dominik

Ok, ich werde heute auf die letzte Version der Library aktualisieren. Diese ist aber erst ab Python 3.8 nutzbar, habt ihr 3.8 oder noch 3.7?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Update auf 0.1.178 ist da. Bitte beachten, Python 3.8 oder höher ist notwendig! Ich empfehle ein Update auf Bullseye wer es noch nicht gemacht hat, dort ist Python 3.9 standard. Von einer manuellen Installation von Python würde ich absehen.

Ein paar Tests mit Thermostaten liefen bei mir jetzt ohne Aussetzer.

@bewa58, wegen colour_data_v2, hat das Device auch sicher ein set Command mit colour_data_v2? Eventuell ohne _v2?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

juergen012

Habe Python 3.7. Kann nicht auf Bullseye upgraden, da fhem im LXC unter Proxmox läuft. Dort bekomme ich eine Fehlermeldung, wenn ich  den Test zum Update laufen lasse..
Fhem unter Proxmox

bewa58

Zitat@bewa58, wegen colour_data_v2, hat das Device auch sicher ein set Command mit colour_data_v2? Eventuell ohne _v2?

Danke für den Tipp (hatte falsches devstateIcon drin !

Hiermit funktioniert es: 
ZitatdevStateIcon
{(Color::HUEDevice_devStateIcon($name,"rgb","colour_data_v2","state"),"toggle")}


UPGRADE erst kommende Woche Zeit! Melde mich dann.