fhempy: Meross

Begonnen von dominik, 29 September 2021, 21:26:01

Vorheriges Thema - Nächstes Thema

thburkhart

Zitat von: heiko am 06 Februar 2023, 15:22:34
Andere Geräte sowie einen Wechselrichter überwache ich mit Shelly-Komponenten (shelly 1pm) und im FHEM mit dem SHELLY-Modul. Die übermittelten Werte sind dabei die aktuelle Leistung sowie ein kumulierter Wert "energy". Diesen Werte ich mit DBrep (diff) für die verschiedenen Zeiträume aus.

Zur MEROSS310 würde mir zunächst der aktuelle Leistungswert reichen, um bestimmte Aktionen auszulösen. Im IO-Broker kann dieser Wert ausgelesen werden.

Gruß Heiko.

der aktuelle Leistungswert kommt doch in den EP2's mit:

setstate TUYA_JL33 2023-02-06 12:06:57 cur_power 776.0


(ein Wert, der mir erschrecken hoch vorkommt für 1 PC, Großer Monitor)



@dominik ein einfacher kumulierter Wert würde zunächst auch reichen...

[code]define TUYA_JL33 fhempy tuya wifvoilfrqeo6hvu 8877821724a160151069 192.168.9.63 c57e219a20d5e0bf 3.3 ea8453wdazquzfl08l0e 8a4b27dd759d4c6a9456aa8155d2a0ea
attr TUYA_JL33 DbLogExclude .*
attr TUYA_JL33 alias JL33 Schreibtisch Thomas
attr TUYA_JL33 dp_01 switch_1
attr TUYA_JL33 dp_02 countdown_1
attr TUYA_JL33 dp_03 add_ele
attr TUYA_JL33 dp_04 cur_current
attr TUYA_JL33 dp_05 cur_power
attr TUYA_JL33 dp_06 cur_voltage
attr TUYA_JL33 group Schalter (T)
attr TUYA_JL33 room fhempy
attr TUYA_JL33 tuya_spec_functions [{'code': 'switch_1', 'dp_id': 1, 'type': 'Boolean', 'values': {}, 'desc': 'switch 1'}, {'code': 'countdown_1', 'dp_id': 2, 'type': 'Integer', 'values': {'min': 0, 'scale': 0, 'unit': '秒', 'max': 86400, 'step': 1}, 'desc': 'countdown 1'}]
attr TUYA_JL33 tuya_spec_status [{'code': 'switch_1', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'countdown_1', 'dp_id': 2, 'type': 'Integer', 'values': {'min': 0, 'scale': 0, 'unit': '秒', 'max': 86400, 'step': 1}}, {'code': 'add_ele', 'dp_id': 3, 'type': 'Integer', 'values': {'min': 0, 'scale': 0, 'unit': '度', 'max': 500000, 'step': 100}}, {'code': 'cur_current', 'dp_id': 4, 'type': 'Integer', 'values': {'min': 0, 'scale': 0, 'unit': 'mA', 'max': 30000, 'step': 1}}, {'code': 'cur_power', 'dp_id': 5, 'type': 'Integer', 'values': {'min': 0, 'scale': 0, 'unit': 'W', 'max': 50000, 'step': 1}}, {'code': 'cur_voltage', 'dp_id': 6, 'type': 'Integer', 'values': {'min': 0, 'unit': 'V', 'scale': 0, 'max': 2500, 'step': 1}}]
#   DEF        tuya wifvoilfrqeo6hvu 8877821724a160151069 192.168.9.63 c57e219a20d5e0bf 3.3 ea8453wdazquzfl08l0e 8a4b27dd759d4c6a9456aa8155d2a0ea
#   DEVICEID   8877821724a160151069
#   FHEMPYTYPE tuya
#   FUUID      63a21417-f33f-fd5f-1683-f2d64f403f4fb812
#   IODev      local_pybinding
#   NAME       TUYA_JL33
#   NR         1760
#   PYTHONTYPE tuya
#   STATE      on
#   TYPE       fhempy
#   eventCount 4
#   READINGS:
#     2023-01-30 07:59:30   countdown_1     0.0
#     2023-02-06 12:06:57   cur_current     336.0
#     2023-02-06 12:06:57   cur_power       776.0
#     2023-02-06 12:06:57   cur_voltage     230.7
#     2023-01-30 07:59:30   dp_07           0
#     2023-02-06 12:06:57   online          1
#     2023-02-06 12:07:06   state           on
#     2023-01-30 07:59:30   switch_1        on
#   args:
#     TUYA_JL33
#     fhempy
#     tuya
#     wifvoilfrqeo6hvu
#     8877821724a160151069
#     192.168.9.63
#     c57e219a20d5e0bf
#     3.3
#     ea8453wdazquzfl08l0e
#     8a4b27dd759d4c6a9456aa8155d2a0ea
#   argsh:
#   helper:
#     bm:
#       fhempy_Get:
#         cnt        1
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        06.02. 16:14:01
#         max        0.00242114067077637
#         tot        0.00242114067077637
#         mAr:
#           HASH(0x542a920)
#           ARRAY(0x5daf940)
#           HASH(0x4f28eb0)
#       fhempy_Set:
#         cnt        8
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        06.02. 12:42:52
#         max        0.0104739665985107
#         tot        0.0278832912445068
#         mAr:
#           HASH(0x542a920)
#           ARRAY(0x6252d38)
#           HASH(0x6234df8)
#
setstate TUYA_JL33 on
setstate TUYA_JL33 2023-01-30 07:59:30 countdown_1 0.0
setstate TUYA_JL33 2023-02-06 12:06:57 cur_current 336.0
setstate TUYA_JL33 2023-02-06 12:06:57 cur_power 776.0
setstate TUYA_JL33 2023-02-06 12:06:57 cur_voltage 230.7
setstate TUYA_JL33 2023-01-30 07:59:30 dp_07 0
setstate TUYA_JL33 2023-02-06 12:06:57 online 1
setstate TUYA_JL33 2023-02-06 12:07:06 state on
setstate TUYA_JL33 2023-01-30 07:59:30 switch_1 on

[/code]

setstate TUYA_JL33 2023-02-06 12:06:57 cur_current 336.0
setstate TUYA_JL33 2023-02-06 12:06:57 cur_power 776.0


was ist da der Unterschied?

im übrigen fehlen die readings wie "productid" etc, seit tuya_cloud parallel läuft. Schönheitsfehler?

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

mike1969bln

Hallo Dominik,

ich habe mehrer MS315 Matter. Du hattest ja schon die Readings power, current und voltage ergänzt. Leider werden die nur selten in FHEM aktualisiert. Woran kann das liegen?

P.S.: weißt du, ob es eine Möglichkeit gibt mit einem MQTT-Explorer auf den Meross-MQTT zuzugreifen?

Vielen Dank und viele Grüße aus Berlin

thymjan

Versuche die mss620 zu integrieren.

Habe fhempy wie auf der github-Seite beschrieben installiert.

Nun steht das Meross-modul auf "connecting" und es passiert nichts weiter.
Im log steht:
2024-11-18 19:16:00,740 - INFO     - meross_iot.http_api: Login successful against https://iotx-eu.meross.com
2024-11-18 19:16:00,740 - ERROR    - meross_integration: Exception raised by task: <Task finished name='Task-90' coro=<FhemModule._run_coro() done, defined at /opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/fhempy/lib/generic.py:216> exception=KeyError('mfaLockExpire')>
Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/fhempy/lib/generic.py", line 224, in _handle_task_result
    task.result()
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/fhempy/lib/generic.py", line 218, in _run_coro
    await coro
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/fhempy/lib/meross/meross_setup.py", line 28, in run_setup
    http_api_client = await MerossHttpClient.async_from_user_password(
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/meross_iot/http_api.py", line 119, in async_from_user_password
    creds = await cls.async_login(email=email,
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.9/site-packages/meross_iot/http_api.py", line 280, in async_login
    mfa_lock_expire=response_data["mfaLockExpire"],
KeyError: 'mfaLockExpire'

Da werde ich nicht so richtig schlau draus.
Hat mir jemand einen Tipp?

dusti64

Ich habe auch nach einer Neu-Installation den Fehler "KeyError: 'mfaLockExpire'"

Besteht die Möglichkeit, dass dieser Fehler darauf basiert, weil Meross die Login API geändert hat?
In diesem Beitrag geht es um ein ähnliches Problem:

https://github.com/albertogeniola/MerossIot

Vielleicht kann jemand mit Ahnung sich das mal anschauen?

Gruß Dusti
2x Debian virtualisiert auf QNAP mit FHEM, 2x HMLAN, VCCU, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Instar, Merros, Shelly

dusti64

Als Notlösung klappt folgendes bei mir:

Änderung folgender Datei:
/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/meross/manifest.json
Dort Zeile 3 in:
"meross-iot==0.4.7.5",ändern und den Server neu starten, dann werden die neuen Abhängigkeiten per Update bei "meross_integration" installiert und es werden alle Meross Geräte gefunden...jedenfalls bei mir.

Es wäre schön, wenn der Entwickler sich das mal anschaut und ändert...

Gruß Dusti o/
2x Debian virtualisiert auf QNAP mit FHEM, 2x HMLAN, VCCU, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Instar, Merros, Shelly

thymjan

Danke für den Tipp!
Hat bei mir auch funktioniert, trotz dass ich noch python3.9 habe.

heinzfo

Danke, das hat geholfen!
Nach einer defekten HDD musste ich FHEM und den Rpi4 neu aufsetzen, und bin von Bullseye auf Bookworm-32bit umgestiegen.

Jetzt:
Python 3.11.2