fhempy: Meross

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

Vorheriges Thema - Nächstes Thema

dominik

Hi,

nachdem ich gefragt wurde Meross in fhempy zu integrieren, hab ich das mal schnell zumindest für die Basic Funktionen (on/off) umgesetzt:

https://github.com/dominikkarall/fhempy

fhempy installieren (siehe Link) und dann

define meross_integration PythonModule meross setup USERNAME PASSWORD


Die erkannten Devices werden dann automatisch angelegt. Es funktioniert bislang nur on/off!

Falls Interesse an weiteren Funktionen (Thermostat, Light, ...) besteht, bitte einfach melden, das sollte einfach möglich sein.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

barneybaer

Vielen lieben Dank. Funktioniert super.

barneybaer

#2
Hallo, wäre es noch möglich die Fehler im fhempy Log beim Update etwas zu kürzen, wenn das Gerät offline ist?

Hier der Auszug.


2021-10-01 06:51:52,758 - ERROR    - lilieslicht_Zimmer_19091949930985258h0948e1e9049416:
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/manager.py", line 956, in _async_send_and_wait_ack
    return await asyncio.wait_for(future, timeout, loop=self._loop)
  File "/usr/lib/python3.7/asyncio/tasks.py", line 423, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/meross/meross_device.py", line 38, in _init_device
    await self._setup_device()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/meross/meross_device.py", line 91, in _setup_device
    await self._device.async_update()
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/controller/mixins/system.py", line 27, in async_update
    timeout=timeout)
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/controller/device.py", line 289, in _execute_command
    mqtt_port=self.mqtt_port)
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/manager.py", line 880, in async_execute_cmd
    drop_on_overquota=drop_on_overquota)
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/manager.py", line 945, in async_execute_cmd_client
    timeout=timeout
  File "/opt/fhem/.local/lib/python3.7/site-packages/meross_iot/manager.py", line 971, in _async_send_and_wait_ack
    raise CommandTimeoutError(message=str(message), target_device_uuid=target_device_uuid, timeout=timeout)
meross_iot.model.exception.CommandTimeoutError

intelligenzbestie

Hallo und vielen Dank für die Integration,

hat bei mir sofort den Lichtstreifen (msl320cp / msl320cpr / msl320cr) und den Garagentoröffner (msg100) erkannt.

Wäre super, wenn du noch die Sache mit den Farben integrieren könntest, on/off funktioniert tadellos.

Danke nochmal, jetzt fehlt mir nur mehr die Integration der Midea/Comfee Entfeuchter.
Liebe Grüße
Richard

intelligenzbestie

#4
Hallo Dominik,
das Garagentor funktioniert klarerweise noch nicht (ist ja keine Lampe).
Für den Fall, dass du da was machen würdest stehe ich natürlich für Tests zur Verfügung.
Hier (https://github.com/albertogeniola/MerossIot) scheint auch Python Coding dafür vorhanden zu sein.
Den Öffner (MSG100) gibt es manchmal für knapp über 20 Euro bei Amazon.
Danke,
liebe Grüße
Richard

dominik

Hi,

sollte kein Problem sein. Kannst du mir das bitte wieder über einen Testaccount freigeben? Danke!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

intelligenzbestie

Hallo Dominik,

vielen Dank für die vorläufige Integration des Garagentoröffners, klappt prima!

Würde mich riesig freuen, wenn du auch noch die RGB Steuerung der Lichtstreifen hinbekommen könntest.

Danke,
liebe Grüße
Richard

intelligenzbestie

Hallo Dominik,

vielen Dank für die Integration der Farbeinstellungen, echt toll von dir dass du das in deiner Freizeit für uns machst!

RGB und Brightness funktioniert bei mir tadellos, die Farbtemperatur kann man bei meinen Lichtstreifen nicht einstellen.

Nochmal für die anderen die von mir eingesetzten Typen der Lichtstreifen: msl320cp, msl320cpr und msl320cr.
Den 5 Meter Meross Lichtstreifen (msl320) gibt es regelmäßig für ca. 30,- beim Onlinehändler mit dem großen A (10 Meter dann und wann für knapp über 40,-) - eine gute Alternative zum Hue Lichtstreifen (den ich auch zweimal im Einsatz habe) - zumal der um 30,- Apple Homekit fähig ist.
Mit dem Keepa Chrome Plugin kann man ja sehr schön die Preisentwicklung sehen und sich einen Alarm setzen.

Danke nochmal, jetzt fehlt mir nur mehr die Integration der Midea/Comfee Entfeuchter - für die scheint es auch eine Python Library zu geben (zumindest funktioniert das bei mir mit Home Assistant): https://github.com/barban-dev/homeassistant-midea-dehumidifier

Dann hat sich das mit Home Assistant bei mir wieder erledigt.

Danke,
Liebe Grüße
Richard

dominik

Super, danke für die Rückmeldung!

Wegen der Farbtemperatur noch eine Frage, wird das Command ct dennoch angezeigt, oder nicht? Sollte nämlich nicht erscheinen.

Die Comfee Integration sollte auch kein Problem sein, schau ich mir mal an.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

intelligenzbestie

Hallo Dominik,

vielen Dank nochmal.
ct taucht bei mls320cp und msl320cpr auf, bei msl320cr nicht.
Das ist so weit auch korrekt, denn diese beiden Lichtstreifen haben auch eigene weiße LEDs auf dem Streifen.
Die Steuerung reagiert allerdings nicht auf Änderungen des ct Wertes.
Mich stört es nicht wirklich, denn ich kann mir ja mit den RGB Werten ein helleres oder dunkleres Weiß einstellen.
Aber wenn du da noch was hinkriegen könntest, wäre es natürlich auch toll.
Wenn notwendig kann ich wieder ein Log erstellen.

Das mit den WiFi Entfeuchtern wäre echt super, ich habe aktuell zwei Stück am Laufen.
Zwei Xiaomi Lüfter habe ich auch (Standing Fan Pro), einen mit und einen ohne Akku.
Gibt es für die etwa auch Python Libraries?

Danke,
liebe Grüße
Richard


heinzfo

Hallo Dominik

Danke für Deine Arbeit an diesem Modul.

Die beiden Module BindingsIo und PythonModule sind in meinem FHEM vorhanden aber im state Python server offline.

Ist das normal?

Ich habe bisher nur ein meross device zuhause: Smart Wi-Fi Ambient Light MSL420
https://www.meross.com/Detail/22/Smart%20Wi-Fi%20Ambient%20Light

Hatte gehofft das es kompatibel zu MSL320 ist und ich es integrieren kann, evtl. kommt das ja noch.

Beste Grüße
Heinz

dominik

Hi,

schau mal im Log nach (sowohl fhem....log und fhempy.....log) und lass dann wissen was da steht.

Das Device sollte gehen denk ich.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

heinzfo

#12
Hallo Dominik

# update:

meross_integration geht in den state failed to connect

fhempy.log
2021-11-03 17:57:25,944 - ERROR    - meross_iot.manager: Timeout occurred while waiting a response for message b'{"header": {"from": "/app/1639611-994373bd2858630b6262cf5a74d14bc7/subscribe", "messageId": "687ce10c3baebcb39913585c70073289", "method": "GET", "namespace": "Appliance.System.Ability", "payloadVersion": 1, "sign": "d65b5e500fe22bbc5e71b6daab27d3ea", "timestamp": 1635958636}, "payload": {}}' sent to device uuid 2103020914478190843748e1e94f2cfa. Timeout was: 10.0 seconds. Mqtt Host: mqtt-eu-2.meross.com:443.Global manager stats (last minute): Issued -> 2, Delayed -> 0, Dropped -> 0
2021-11-03 17:57:25,950 - WARNING  - meross_iot.device_factory: Could not find any known device class for device type (msl420).
2021-11-03 17:57:25,951 - ERROR    - meross_iot.manager: Could not build statically device RGB meross 01 (2103020914478190843748e1e94f2cfa) as it's not a known type.



# obsolete

Ich habe die beiden Module gelöscht und nochmals angelegt.

Laut Github:
define pybinding BindingsIo fhempy

Laut Forum:
define meross_integration PythonModule meross setup USERNAME PASSWORD

Jetzt ist auch der fhemServer im room fhempy vorhanden der hatte bisher gefehlt.

BindingsIo ist jetzt im state opened
PythonModule meross_integration im state connecting
Aber der fhempyServer ist im state stopped

fhem.log
2021.11.03 16:19:30 3: fhempyserver_15733: starting
2021.11.03 16:19:30 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:19:32 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:19:32 3: fhempyserver_15733: stopped
2021.11.03 16:19:52 3: fhempyserver_15733: starting
2021.11.03 16:19:52 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:19:53 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:19:53 3: fhempyserver_15733: stopped
2021.11.03 16:20:13 3: fhempyserver_15733: starting
2021.11.03 16:20:13 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:20:18 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:20:18 3: fhempyserver_15733: stopped
2021.11.03 16:20:38 3: fhempyserver_15733: starting
2021.11.03 16:20:38 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:20:39 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:20:39 3: fhempyserver_15733: stopped
2021.11.03 16:20:59 3: fhempyserver_15733: starting
2021.11.03 16:20:59 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:21:00 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:21:00 3: fhempyserver_15733: stopped
2021.11.03 16:21:20 3: fhempyserver_15733: starting
2021.11.03 16:21:20 3: fhempyserver_15733: using logfile: ./log/fhempy-2021-11-03.log
2021.11.03 16:21:22 3: fhempyserver_15733: read: end of file reached while sysread
2021.11.03 16:21:22 3: fhempyserver_15733: stopped


fhempy.log
2021-11-03 16:29:27,369 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-11-03 16:29:27,382 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 113, in <module>
    fpb.run()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 538, in run
    asyncio.get_event_loop().run_until_complete(async_main())
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 531, in async_main
    pybinding, "0.0.0.0", port, ping_timeout=None, ping_interval=None
  File "/opt/fhem/.local/lib/python3.7/site-packages/websockets/legacy/server.py", line 1042, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use


List fhempyServer:
Internals:
   .FhemMetaInternals 1
   DEF        0
   FUUID      6182a059-f33f-b83d-10fd-627d413c5dbb57d7
   FVERSION   10_fhempyServer.pm:0.182830/2019-01-16
   LAST_START 2021-11-03 16:30:30
   LAST_STOP  2021-11-03 16:30:31
   NAME       fhempyserver_15733
   NR         989
   NTFY_ORDER 50-fhempyserver_15733
   STARTS     83
   STATE      ???
   TYPE       fhempyServer
   logfile    ./log/fhempy-%Y-%m-%d.log
   .attraggr:
   .attrminint:
   CoProcess:
     cmdFn      fhempyServer_getCmd
     name       fhempy
     state      stopped
   READINGS:
     2021-11-03 16:30:31   fhempy          stopped
Attributes:
   devStateIcon {      my $status_img = "10px-kreis-gruen";;      my $status_txt = "running";;      if (substr(ReadingsVal($name, "fhempy", "running"),0,7) ne "running") {        $status_img = "10px-kreis-rot";;        $status_txt = "stopped";;      }      "<div><a>".FW_makeImage($status_img, $status_txt)."</a><a  href=\"/fhem?cmd.dummy=set $name restart&XHR=1\" title=\"Restart\">".FW_makeImage("audio_repeat")."</a></div>"      }
   group      fhempy
   icon       python
   logfile    ./log/fhempy-%Y-%m-%d.log
   nrarchive  10
   room       fhempy

dominik

Hi,

gehe ich richtig davon aus, dass du nun
- fhempyServer running hast
- BindingsIo opened
- und ein fhempy meross Device hast?

Das define auf Github (BindingsIo) ist die Basisinstallation von fhempy, das benötigt man einmal. Danach nutzt man nur mehr die defines von den Devices (fhempy meross ....).

Kommt dieser Fehler beim Seutp und für alle Devices? Nachdem ich die MerossIot Library nutze, habe ich geschaut ob es ein Update davon gibt, leider liegt da nichts vor.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

heinzfo

#14
Hallo Dominik

Nach einem weiteren Rasperry reboot ist meross_integration im sate connected und die meross MSL420 wude automatisch angelegt.

Die LED Lampe lässt sich steuern :-)

CT geht leider nicht alle anderen set Werte funktionieren.

Beste Grüße
Heinz