fhempy: xiaomi_gateway3 (Xiaomi Gateway V3)

Begonnen von dominik, 11 Dezember 2020, 19:04:20

Vorheriges Thema - Nächstes Thema

dominik

Für alle die den Xiaomi Gateway V3 mit Bluetooth Mesh Funktion nutzen, gibt es über fhempy ein Modul dazu: xiaomi_gateway3

Die Basis dafür bildet die Implementierung der Kollegen von Home Assistant, daher großer Dank an AlexxIT
https://github.com/AlexxIT/XiaomiGateway3

Ich habe diese Implementierung verwendet um ein fhempy Modul dafür zu schreiben. Um dieses nutzen zu können, muss zuerst fhempy installiert werden, siehe die Anleitung hier:
https://github.com/dominikkarall/fhempy

Wenn man ein Gerät mit neuere Firmware hat, muss man es zuerst downgraden. Infos dazu ebenfalls hier:
https://github.com/AlexxIT/XiaomiGateway3#supported-firmwares

Ist das Gerät vorbereitet, braucht man noch den Xiaomi Token den man mit dem Xiaomi Login beziehen kann
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username asdf@asdf.com
set xiaomi_tokens password asdfasdfasdf
set xiaomi_tokens get_tokens


Als nächstes definiert man das Gateway
define xiaomi_gw3 PythonModule xiaomi_gateway3 IP TOKEN

Das Modul stellt eine Verbindung via MQTT zum Xiaomi Gateway her und erhält daher die Ergebnisse von den Sensoren sofort. Es benötigt auch keine Verbindung zur Xiaomi Cloud.
Die erkannte Geräte am Gateway werden automatisch in FHEM angelegt.

Bluetooth Geräte werden aktuell noch nicht angelegt, wenn viele Leute Interesse haben, kann ich das integrieren.

Viel Spaß damit, bei Fragen gerne hier melden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zur Info, ich habe gerade erfolgreich ein neues Gateway mit zu hoher Firmware erhalten.

Wenn man diese Anleitung befolgt, kann man das Gerät problemlos downgraden:
https://github.com/serrj-sv/lumi.gateway.mgl03/tree/main/uart_recovery

Die schwierigste Aufgabe ist das Gerät aufzumachen, das geht nicht ohne Spuren durch den Schraubenzieher (beim Aufdrücken) zu hinterlassen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

chris_kmn

Hi Dominik,

schöne Arbeit. Ich habe jetzt auch ein V3 Gateway und werde morgen das Modul testen. Ich hatte es schon einmal am Laufen, aber ich glaube es gab ein paar Probleme mit dem 72_XiaomiSmartHome Modul. Irgendwie kommt es mir so vor als wäre es relativ instabil unter Debian Buster. Ich hatte ständig FHEM restart loops.

Ich werde berichten.

VG, Chris

chris_kmn

#3
So, alles installiert und es scheint zu laufen. Allerdings verstehe ich eins nicht:

Wenn ich das Gateway anlege: define XiaomiGW3 PythonModule xiaomi_gateway3 192.168.0.3 xyzabc
Wird dieses auch erzeugt, aber gleichzeitig kommt folgendes Device mit dazu: lumigatewaymgl03_ 0xbc33acfffe7e7890

Es sieht also so aus als würde das Gateway sich selbst als neues Device anlegen:

defmod lumigatewaymgl03_0xbc33acfffe7e93b5 PythonModule xiaomi_gateway3_device XiaomiGW3 lumi.0xbc33acfffe7e7890

Letzteres ist offline und geht erst online, wenn ich das erste Gateway lösche, was aber glaube ich auch nicht korrekt ist. Bei erneuter Definition des ersten bleibt dieses dann offline.

Mache ich etwas falsch oder verstehe ich da etwas nicht richtig ?



Update: ich habe beide nochmal gelöscht und das erste erneut angelegt. Beide sind wieder erschienen aber jetzt auch beide online. Ist das zweite Gateway die Zigbee und/oder BLE bridge ?

dominik

Hi,

die 2 Gateways sind richtig :)

Das 1. Device stellt die Verbindung zum Gateway her. Das ist das, welches du definierst.

Das 2. Device ist das Gateway selbst. Das kann nämlich auch Commands verarbeiten und daher ist das 1. Device eher wie eine "Verbindung" zu sehen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Danke für das Modul, ich hätte großes Interesse daran das es auch Bluetooth Geräte angelegt werden,
würde das Bluetooth Gateway für meine Pflanzen Sensoren benutzen, wenn man zuviele einzeln einbindet ende das in chaos aufm nem raspberry;)

dominik

Eigentlich sollten schon jetzt Bluetooth Devices mit übertragen werden. Kannst du mal verbose auf 5 stellen und dann fhempy (oder komplett FHEM) neu starten? Poste dann bitte das fhempy Log.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

alles auf Verb 5 gesetzt und FHEM neu gestartet:

2021-10-03 11:05:56,773 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-10-03 11:05:56,785 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-10-03 11:05:56,830 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-10-03 11:06:18,232 - INFO     - websockets.server: connection open
2021-10-03 11:06:18,234 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-10-03 11:06:18,913 - WARNING  - asyncio: Executing <Task finished coro=<xiaomi_gateway3.connect_gw() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py:73> result=None created at /usr/lib/python3.7/asyncio/tasks.py:325> took 0.112 seconds
2021-10-03 11:06:19,442 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists
2021-10-03 11:06:19,455 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists
2021-10-03 11:06:19,464 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists

dominik

ok, dann muss ich wohl nochmals den Code von XiaomiGateway3 aktualisieren, wahrscheinlich ist der Bug dort behoben.

Mach ich die nächsten Tage.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 03 Oktober 2021, 11:21:18
ok, dann muss ich wohl nochmals den Code von XiaomiGateway3 aktualisieren, wahrscheinlich ist der Bug dort behoben.

Mach ich die nächsten Tage.


Super, danke dir ;)

dominik

Update gestern Abend gemacht :)

Kannst du bitte Mal mit der neuen Version testen?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 08 Oktober 2021, 18:31:23
Update gestern Abend gemacht :)

Kannst du bitte Mal mit der neuen Version testen?

ok hab geupdated und FHEM neugestartet:
bis jetzt keine devices aufgetaucht

2021-10-09 16:27:22,719 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-10-09 16:27:22,733 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-10-09 16:27:22,778 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-10-09 16:27:44,459 - INFO     - websockets.server: connection open
2021-10-09 16:27:44,461 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-10-09 16:27:45,196 - WARNING  - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0xb3a57a90>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.222 seconds
2021-10-09 16:27:46,108 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-09 16:27:47,130 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-09 16:27:48,158 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists

dominik

Was für ein Device ist das genau welches du verbunden hast? Bluetooth hast du gemeint, oder? Welcher Typ?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 09 Oktober 2021, 18:14:57
Was für ein Device ist das genau welches du verbunden hast? Bluetooth hast du gemeint, oder? Welcher Typ?


ja genau Blueoooth meine ich, es sind zwei Flowercare sensoren und zwei arten von Temp/Hum Sensoren hab mal ein Bild angehängt wie das Gateway sie mir angezeigt.

dominik

Zitat von: xs3bt am 10 Oktober 2021, 10:10:59

ja genau Blueoooth meine ich, es sind zwei Flowercare sensoren und zwei arten von Temp/Hum Sensoren hab mal ein Bild angehängt wie das Gateway sie mir angezeigt.
Stell bitte mal beim xiaomi_gateway Device (das mit dem MQTT Logo) verbose auf 5 und mach dann einen Neustart von fhempy. Danach poste bitte das fhempy Log.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 10 Oktober 2021, 20:16:23
Stell bitte mal beim xiaomi_gateway Device (das mit dem MQTT Logo) verbose auf 5 und mach dann einen Neustart von fhempy. Danach poste bitte das fhempy Log.

Habe bereits vorher alle Devices die was damit zutun haben auf verbose 5 gestellt, der log bleibt gleich.

Zitat2021-10-11 08:10:37,555 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-10-11 08:10:37,568 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-10-11 08:10:37,607 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-10-11 08:10:47,360 - INFO     - websockets.server: connection open
2021-10-11 08:10:47,364 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-10-11 08:10:48,029 - WARNING  - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0xb3b53f10>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.317 seconds
2021-10-11 08:10:48,791 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-11 08:10:49,810 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-11 08:10:50,831 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists

dominik

Mach bitte mal folgendes
telnet IP_GATEWAY
login: admin
cat /data/miio/mible_local.db


Poste dann mal den Inhalt hier, da sollten die Devices ersichtlich sein (auch wenn es etwas kryptisch aussieht).
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Vorhand

Hi dominik,
hab beim Gateway 03 Version 02LM nach deiner Anleitung ein downgrad vorgenommen. Funktioniert soweit. Außer, dass mein Lichtsensor lumisenillmgl01_0x54ef441000035650 nur "online" anzeigt, aber keine Lichtwerte anbietet.
Muss ich noch was tun?
Danke
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Vorhand

Ach so ... mit der Handy App funktioniert die Lichtanzeige.
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

xs3bt

Zitat von: dominik am 12 Oktober 2021, 20:21:14
Mach bitte mal folgendes
telnet IP_GATEWAY
login: admin
cat /data/miio/mible_local.db


Poste dann mal den Inhalt hier, da sollten die Devices ersichtlich sein (auch wenn es etwas kryptisch aussieht).

Hallo,

hier die Ausgabe:

# cat /data/miio/mible_local.db
SQLite format 3@
▒▒▒▒




q       M
6▒      ▒▒▒O▒%''▒       tablemesh_group_v3mesh_group_v3CREATE TABLE mesh_group_v3(did CHAR(20) PRIMARY KEY, group_addr INTEGER, pdid INTEGER,templete_id INTEGER))▒ctablemesh_device_v3mesh_device_v3CREATE TABLE mesh_device_v3(did CHAR(20) PRIMARY KEY, mac CHAR(12),pdid INTEGER, uni_addr INTEGER, element_num INTEGER,group_addr INTEGER, retrans INTEGER, static_oob CHAR(40), device_key CHAR(40),netkey_id CHAR(4), appkey_id CHAR(20));O)indexsqlite_autoindex_mesh_device_v3_1mesh_device_v3▒%
         33▒qtablemesh_format_rule_v3mesh_format_rule_v3
CREATE TABLE mesh_format_rule_v3(vid CHAR(20) PRIMARY KEY, pdid INTEGER, siid INTEGER, piid INTEGER,model_id INTEGER, ack_opcode INTEGER, element_index INTEGER, format INTEGER,interval INTEGER, delta INTEGER, templete_id INTEGER, ttl INTEGER)E
▒f      ''▒te_autoindex_mesh_format_rule_v3_1mesh_format_rule_v3
           tablemesh_model_v3mesh_model_v3
CREATE TABLE mesh_model_v3(vid CHAR(20) PRIMARY KEY, pdid INTEGER,element_index INTEGER, model_id INTEGER, elements_num INTEGER,device_type INTEGER, adv_interval INTEGER, adv_timeout INTEGER)9
M'indexsqlite_autoindex_mesh_model_v3_1mesh_model_v3
                                                    %%▒)tablemesh_pdid_v3mesh_pdid_v3   CREATE TABLE mesh_pdid_v3(pdid INTEGER PRIMARY KEY, product_name VARCHAR(255))▒%%▒Gtablemesh_info_v3mesh_info_vCREATE TABLE mesh_info_v3(uni_addr INTEGER PRIMARY KEY, default_group INTEGER NOT NULL,iv_index INTEGER NOT NULL, iv_flags INTEGER NOT NULL,key_id CHAR(4) NOT NULL, netkey CHAR(40) NOT NULL, netkey_index INTEGER NOT NULL)▒5))▒%tablemesh_appkey_v3mesh_appkey_v3CREATE TABLE mesh_appkey_v3(key_id CHAR(20) PRIMARY KEY, netkey_id CHAR(4) NOT NULL,appkey CHAR(40) NOT NULL, appkey_index INTEGER NOT NULL);O)indexsqlite_autoindex_mesh_appkey_v3_1mesh_appkey_v3▒'11▒ytablegateway_rule_tablegateway_rule_tableCREATE TABLE gateway_rule_table(objid INTEGER PRIMARY KEY NOT NULL, interval INTEGER NOT NULL, delta INTEGER NOT NULL)▒)//▒tablegateway_pid_tablegateway_pid_tableCREATE TABLE gateway_pid_table(pid INTEGER PRIMARY KEY NOT NULL, objnum INTEGER NOT NULL, obj0 INTEGER NOT NULL, obj1 INTEGER NOT NULL, obj2 INTEGER NOT NULL, obj3 INTEGER NOT NULL, obj4 INTEGER NOT NULL, obj5 INTEGER NOT NULL, obj6 INTEGER NOT NULL)▒v55▒tablegateway_authed_tablegateway_authed_tableCREATE TABLE gateway_authed_table(macpid CHAR(16) PRIMARY KEY NOT NULL, mac CHAR(12) NOT NULL, pid INTEGER NOT NULL, token CHAR(24) NOT NULL, did CHAR(20) NOT NULL, beaconkey CHAR(40) NOT NULL)G[5i▒▒exsqlite_autoindex_gateway_authed_table_1gateway_authed_table
▒-%=3]269231342d5801aa269231342d58▒d8261b25e0807e0c8cb2cbecblt.3.17taeo9vge800b30100fbb1e212f63fcc1767b264db5550x▒-%=3]11f3daa8654c01aa11f3daa8654c▒fa8e8199888febea1b65effdblt.3.17tanciske80022d3580aa4ed309e93b26950b264db55debd16a0x▒-%=3]269231342d5801aa269231342d58▒d8261b25e0807e0c8cb2cbecblt.3.17taeo9vge800b30100fbb1e212f63fcc1767b264db55506fb08bw▒-%=1]65bfd2a8654c01aa65bfd2a8654c▒0a962f56e5957cb45cf39500blt.3.sg1od1bs4k004a1478b927c8e0a807ffb122b264db559e4a689bx▒-%=3]ddd9608d7cc40098ddd9608d7cc4▒e2d2f00734ba1c42e09a92a3blt.3.182e677bg5g0040be680d5ffba08dbd2d7470b264db5584a4e01dx▒-%=3]3468628d7cc400983468628d7cc4▒8d6b9eaa9d8ad2c08ec3d5c7blt.3.182g6l6aolo0040be680d5ffba08dbd2d7470b264db5584a4e01dx▒-%=3]7fce9138c1a4055b7fce9138c1a4[a24609bf3996008db142f67ablt.3.17skmoq90ls01a857f554b39ee359defdce64f440094281103fb9
||▒▒▒▒▒▒(ddd9608d7cc40-11f3daa8654c01a▒-ddd9608d7cc4009▒-65bfd2a8654c01a▒-7fce91▒▒▒▒▒[055▒-269231342d5801a▒-3468628d7cc4009▒
▒                                                                                      !
▒*                                                                             X▒▒?-000000000000000000c33322b25444c3dc7853095b28dd041cbec4b9b2  XX▒            X
▒▒007d0b60e1b4b0a64dc4eec464c9e180b659df6b38
PuTTYPuTTY

PuTTYPuTTYPuTTY
# PuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTY


dominik

Ein Inhalt ist zumindest da. Kannst du das File mal kopieren und hochladen, dann kann ich es bei mir drauf speichern und damit testen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 15 Oktober 2021, 22:39:46
Ein Inhalt ist zumindest da. Kannst du das File mal kopieren und hochladen, dann kann ich es bei mir drauf speichern und damit testen.

Hey,

argh jetzt ist mir Mist passiert habe beim versuch die file mible_local.db zu laden, se aus versehen überschrieben, ich setzte die tage das ganze Gateway nochmal zurück.
Danke dir

RockFan

#22
Hallo dominik,

ich habe jetzt auch eine Gateway V3, da ich hoffentlich in Bälde 2 Rauchmelder, die nur noch über Bluetooth funktionieren bekommen werde. Aus dem anderen Post (https://forum.fhem.de/index.php/topic,117689.msg1197299.html#msg1197299) ist Dir ja vielleicht noch in Erinnerung, dass ich auch 2 Mitemp2 Sensoren habe. Nach einigen Anstrengungen, telnet über den Umweg Home Assistent auf dem Gateway aufzumachen, habe ich das Gateway nun in fhem.

Im fhempy Log bekomme nun folgende Fehlermeldungen zu den Sensoren:


2022-02-06 13:31:56,228 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: ble/a4c1388a5024 b'{"humidity":37,"temperature":22.3,"battery":100}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 663, in on_message
    await self.process_ble_retain(topic[4:], msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 449, in process_ble_retain
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 145, in create_device
    "".join(filter(str.isalnum, device["model"])) + "_" + device["mac"]
TypeError: 'int' object is not iterable
2022-02-06 13:31:56,235 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: ble/a4c138aa0cc5 b'{"temperature":23.5,"battery":100,"humidity":34}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 663, in on_message
    await self.process_ble_retain(topic[4:], msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 449, in process_ble_retain
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 145, in create_device
    "".join(filter(str.isalnum, device["model"])) + "_" + device["mac"]
TypeError: 'int' object is not iterable
2022-02-06 13:32:25,670 - ERROR    - wz_Lampe: Failed to send_command: status
2022-02-06 13:32:54,484 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: log/ble b'{"did":"blt.3.199eag0985k00","eid":4102,"edata":"7a01","pdid":1371,"seq":78}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 650, in on_message
    await self.process_ble_event_fix(msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 399, in process_ble_event_fix
    await self.process_ble_payload(device, payload)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 414, in process_ble_payload
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 145, in create_device
    "".join(filter(str.isalnum, device["model"])) + "_" + device["mac"]
TypeError: 'int' object is not iterable


Fehlt noch die ein oder andere Aktion auf meiner Seite?

Update:
Im fhem-Log habe ich auch noch etwas gefunden:

2022.02.06 13:31:44 1: BindingsIo (local_pybinding): ERROR: Timeout while waiting for function to finish (id: 56211875)
2022.02.06 13:31:44 1:   args =>  ARRAY(0xb7b3aa8)
2022.02.06 13:31:44 1:   defargsh =>  HASH(0x81385c0)
2022.02.06 13:31:44 1:   PYTHONTYPE =>  xiaomi_tokens
2022.02.06 13:31:44 1:   msgtype =>  function
2022.02.06 13:31:44 1:   id =>  56211875
2022.02.06 13:31:44 1:   defargs =>  ARRAY(0x80f1c50)
2022.02.06 13:31:44 1:   argsh =>  HASH(0xa632b18)
2022.02.06 13:31:44 1:   NAME =>  xiaomi_tokens
2022.02.06 13:31:44 1:   function =>  FW_detailFn



Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Danke für die Info. Probiere es bitte mit der neuen Version: 0.1.213
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

#24
Ist offensichtlich schon Version 0.1.214  ;)

Jetzt steht folgendes im Log:
2022-02-06 21:19:03,338 - ERROR    - 1371_a4c138aa0cc5: 1371 not yet supported, please report an issue here: https://github.com/dominikkarall/fhempy/issues


Nachtrag:
Und es sind zwei unsupported Devices angelegt worden.
Bsp:

{
  "Arg":"1371_a4c1388a5024",
  "Results": [
  {
    "Name":"1371_a4c1388a5024",
    "PossibleSets":"",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5   IODev:fhempy_peer_192_168_178_77,fhempy_peer_192_168_178_88,local_pybinding event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DMX_B DMX_G DMX_R andFHEM_alias appOptions:textField-long assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_Dach fp_Eingang fp_Erdgeschoss fp_ErsterStock fp_Garten fp_Keller gassistantName:textField genericDeviceType:ac_unit,aircondition,airfreshener,airpurifier,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,coffeemaker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,fryer,garage,gate,grill,heater,hood,humidifier,kettle,light,lock,remotecontrol,mop,mower,microwave,multicooker,network,outlet,oven,pergola,petfeeder,pressurecooker,radiator,refrigerator,router,scene,securitysystem,settop,sensor,shutter,shower,smoke_detector,sousvide,sprinkler,standmixer,switch,tv,thermostat,vacuum,valve,washer,waterheater,waterpurifier,watersoftener,window,yogurtmaker,aircooler,audio_video_receiver,freezer,speaker,streaming_box,streaming_stick,streaming_soundbar,soundbar homebridgeMapping:textField-long icon lightSceneParamsToSave msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue realRoom:textField realtimePicker room_map sortby webCmd webCmdLabel:textField-long widgetOverride",
    "Internals": {
      "CFGFN": "",
      "DEF": "xiaomi_gateway3_device xiaomigw3_408874251 blt.3.199eag0985k00",
      "DID": "blt.3.199eag0985k00",
      "FHEMPYTYPE": "xiaomi_gateway3_device",
      "FUUID": "62002dfd-f33f-4546-2546-f0416bafea9173ca",
      "GATEWAY": "xiaomigw3_408874251",
      "IODev": "local_pybinding",
      "NAME": "1371_a4c1388a5024",
      "NR": "250315",
      "PYTHONTYPE": "xiaomi_gateway3_device",
      "STATE": "unsupported device: 1371",
      "TYPE": "PythonModule"
    },
    "Readings": {      "state": { "Value":"unsupported device: 1371", "Time":"2022-02-06 21:25:20" } },
    "Attributes": {
      "IODev": "local_pybinding",
      "group": "xiaomi_gateway3_device",
      "room": "fhempy"
    }
  }  ],
  "totalResultsReturned":1
}
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Was ist das für ein Gerät? Temperature/ Humidity Sensor?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Passt, sollte jetzt klappen. Version 0.1.215.

Beim Rauchmelder bekommst du dann wahrscheinlich auch die Meldung, bitte diese hier posten.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Danke für den Versuch!
Leider kommt mit der 215 noch die gleiche Meldung im Log und die Devices bleiben "unsupported"
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Jetzt ist es im Log wieder wie am Anfang:


2022-02-06 22:35:22,366 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: ble/a4c1388a5024 b'{"humidity":38,"temperature":22.2,"battery":100}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 663, in on_message
    await self.process_ble_retain(topic[4:], msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 449, in process_ble_retain
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 159, in create_device
    await self.fhempy_devices[did].initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/xiaomi_gateway3_device.py", line 107, in initialize
    await self._fhempy_device.initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 98, in initialize
    for attr in attr_settings[device["model"]]:
KeyError: 1371
2022-02-06 22:35:22,375 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: ble/a4c138aa0cc5 b'{"temperature":23.8,"battery":100,"humidity":32}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 663, in on_message
    await self.process_ble_retain(topic[4:], msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 449, in process_ble_retain
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 159, in create_device
    await self.fhempy_devices[did].initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/xiaomi_gateway3_device.py", line 107, in initialize
    await self._fhempy_device.initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 98, in initialize
    for attr in attr_settings[device["model"]]:
KeyError: 1371


Es kommt dann später etwas abgewandelt immer folgendes:


2022-02-06 22:37:04,061 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: log/ble b'{"did":"blt.3.199dtq7tclk00","eid":4102,"edata":"4101","pdid":1371,"seq":148}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 650, in on_message
    await self.process_ble_event_fix(msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 399, in process_ble_event_fix
    await self.process_ble_payload(device, payload)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 414, in process_ble_payload
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 159, in create_device
    await self.fhempy_devices[did].initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/xiaomi_gateway3_device.py", line 107, in initialize
    await self._fhempy_device.initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 98, in initialize
    for attr in attr_settings[device["model"]]:
KeyError: 1371
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Alles klar, weiß wo der Fehler liegt. Behebe es morgen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Fix ist ready, bitte mit 0.1.218 testen.

Ich glaube Bluetooth Devices hatte noch niemand (ich auch nicht), daher die Fehler... :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Yeah!

Sieht gut aus. Beide Sensoren werden jetzt mit Werten angezeigt. Vielen vielen Dank.

Sicherheitshalber noch ein Auszug aus dem Log, da ich Warnings und einen Error sehe. Zur Erklärung um Verwirrung zu vermeiden: LEDBuld1, LEDStrip un wz_Lampe verwende ich derzeit nicht mit fhempy (werden aber erkannt).


2022-02-07 18:55:08,363 - WARNING  - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0xb4845ad0>(<Future finis...events.py:396>) created at /opt/fhem/.local/lib/python3.7/site-packages/aiohttp/helpers.py:730> took 0.122 seconds
2022-02-07 18:55:09,658 - ERROR    - da_LEDBulb1: Annotation is not class: typing.Tuple[int, int, int]
2022-02-07 18:55:09,664 - ERROR    - da_LEDStrip: Annotation is not class: typing.Tuple[int, int, int]
2022-02-07 18:55:09,670 - ERROR    - wz_Lampe: Annotation is not class: typing.Tuple[int, int, int]
2022-02-07 18:55:10,833 - WARNING  - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0xb1743b30>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/futures.py:288> took 0.162 seconds
2022-02-07 18:55:14,736 - ERROR    - wz_Lampe: Failed to send_command: status
2022-02-07 18:55:14,744 - ERROR    - wz_Lampe: Failed to send_command: info
2022-02-07 18:56:19,605 - ERROR    - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsSingleUpdate($defs{'upnp'},'uuid.014c7500-4475-0074-094d-003844747c08_urn.schemas-upnp-org.device.MediaRenderer.1','TX-NR414',0)


Die Rauchmelder müssen erstmal in China abgeschickt werden. Kann also noch dauern ;)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Sieht soweit gut aus....


Zitat2022-02-07 18:56:19,605 - ERROR    - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsSingleUpdate($defs{'upnp'},'uuid.014c7500-4475-0074-094d-003844747c08_urn.schemas-upnp-org.device.MediaRenderer.1','TX-NR414',0)
Die NO RESPONSE stören mich. Kann aber vorkommen, wenn FHEM ziemlich überlastet ist und daher zu langsam reagiert.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Dann ist es soweit ja prima. Ich habe mal alle Logs durchsucht und nur ein weiteres NO RESPONSE gefunden.

Was mir noch bei den beiden Devices auffällt ist, dass sie immer nur eine ganz kurze Zeit (teilweise nur Sekunden) state=online haben und dann wieder auf offline gehen. Das wechselt immer wieder mal.
Ich glaube, dass wenn state auf online geht, sieht die Device Overview ein wenig seltsam aus:

23.9 °C, 34 %

Da schleicht sich dann dieses merkwürdige A mit Dach ein. Ich glaube, dass sobald state auf offline es wieder weg geht. Ich kann mich nach einer Weile des Beobachtens aber nicht 100% auf den Zusammenhang mit state festlegen.
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Hmm...den online/offline Wechsel kann ich noch nicht nachvollziehen. Geht das Device immer auf online wenn es Werte aktualisiert?

Wegen der Darstellung, das schau ich mir noch an. Das dürfte ein generisches fhempy Problem beim Encoding sein oder bei der Darstellung in FHEM.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Ja, es fühlt sich so an, als würde es beim Aktualisieren online gehen. Oft nur super kurz (vielleicht sogar weniger als eine Sekunde) manchmal aber auch etwas länger (ich hatte es mal mehr als eine Minute auf online stehen sehen).

Mir ist auch aufgefallen, das manchmal das xiaomi_gateway3_device für ein paar Momente (mehrere Sekunden) offline geht.

Das ist alles etwas schwer zu beobachten, da es unregelmäßig ist und verschiedene Devices - die beiden Sensoren und das Gateway - betroffen sind.

Ist aber alles nicht ganz so wichtig oder gar eilig. Für mich funktioniert das jetzt :)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Kannst du bitte mal einen Test machen wegen dem Celsius Zeichen. Änder bitte den Inhalt von
/opt/fhem/FHEM/10_BindingsIo.pm
Zeile 405 aktuell:   $response = Encode::encode("UTF-8", $response);
ändern in:   $response = Encode::encode("utf8", $response);

Danach bitte einen FHEM Restart machen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Änderung und Neustart haben erstaunlicherweise mehrere Auswirkungen:
- Das A mit Dach ist weg  :)
- In den beiden Devices steht state jetzt immer auf online  :)
- es steht eine Fehlermeldung im Log (siehe unten) und genau für diesen Sensor gibt es seit der Meldung keine Aktualisierung mehr (fhem Neustart war wenige Minuten zuvor)


2022-02-08 20:42:44,395 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: log/ble b'{"did":"blt.3.199dtq7tclk00","eid":4106,"edata":"64","pdid":1371,"seq":127}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 650, in on_message
    await self.process_ble_event_fix(msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 399, in process_ble_event_fix
    await self.process_ble_payload(device, payload)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 414, in process_ble_payload
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 177, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 159, in create_device
    await self.fhempy_devices[did].initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/xiaomi_gateway3_device.py", line 107, in initialize
    await self._fhempy_device.initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 119, in initialize
    await self.async_update(device["init"])
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 141, in async_update
    for reading in data:
RuntimeError: dictionary changed size during iteration

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Super, danke für den Test!

Update steht bereit, inkl. Fix für den Error.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Die BindingsIo Devices habe ich heute Morgen aktualisiert. Ich denke fhem-Update selbst kann bis zum Wochenende warten, da ja die gleiche Änderung in 10_BindingsIo.pm enthalten sein wird, die ich gestern manuell gemacht habe. Richtig?

Bisher sieht es jedenfalls gut aus. Das mit der Aussage, dass die Sensoren jetzt immer online anzeigen nehme ich zurück, aber das ist nicht so wichtig, da sie jedenfalls immer wieder (unregelmäßig) aktualisiert werden.

Vielen besten Dank für die Umsetzung und den tollen Support!

Jetzt bin ich auf die Rauchmelder gespannt, die gestern losgeschickt worden sein sollten - das wird aber bestimmt noch ein Weilchen dauern  ;)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Habe vor nun einer halben Stunde auch fhem aktualisiert und direkt zuvor auch die BindingsIo Devices auf den neuesten Stand (0.1.226) gebracht.
Bisher alles gut :)

Was allerdings sehr seltsam ist, ist die Tatsache, dass bis zu Aktualisierung vorhin seit gestern Abend das fhem-Log plötzlich mit folgenden Einträgen überschwemmt wurde (alle 1 bis 3 Sekunden):


2022.02.11 19:29:40 1: ERROR: empty name in readingsBeginUpdate
2022.02.11 19:29:40 1: stacktrace:
2022.02.11 19:29:40 1:     main::readingsBeginUpdate           called by (eval 1594220) (1)
2022.02.11 19:29:40 1:     (eval)                              called by ./FHEM/10_BindingsIo.pm (462)
2022.02.11 19:29:40 1:     main::BindingsIo_processMessage     called by ./FHEM/10_BindingsIo.pm (573)
2022.02.11 19:29:40 1:     main::BindingsIo_readWebsocketMessage called by ./FHEM/10_BindingsIo.pm (221)
2022.02.11 19:29:40 1:     main::BindingsIo_Read               called by fhem.pl (3898)
2022.02.11 19:29:40 1:     main::CallFn                        called by fhem.pl (776)
2022.02.11 19:29:40 1: readingsUpdate(,state,offline) missed to call readingsBeginUpdate first.
2022.02.11 19:29:40 1: stacktrace:
2022.02.11 19:29:40 1:     main::readingsBulkUpdate            called by fhem.pl (4930)
2022.02.11 19:29:40 1:     main::readingsBulkUpdateIfChanged   called by (eval 1594220) (1)
2022.02.11 19:29:40 1:     (eval)                              called by ./FHEM/10_BindingsIo.pm (462)
2022.02.11 19:29:40 1:     main::BindingsIo_processMessage     called by ./FHEM/10_BindingsIo.pm (573)
2022.02.11 19:29:40 1:     main::BindingsIo_readWebsocketMessage called by ./FHEM/10_BindingsIo.pm (221)
2022.02.11 19:29:40 1:     main::BindingsIo_Read               called by fhem.pl (3898)
2022.02.11 19:29:40 1:     main::CallFn                        called by fhem.pl (776)

Die Log-Datei ist damit mal eben auf 300MB angewachsen.

Das war natürlich noch mit meiner manuellen Änderung am Dienstag in 10_BindingsIo.pm. Seit dem Update vorhin ist hier wieder Ruhe.

Ich beobachte weiter.
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Kann es sein, dass du ein Device gelöscht oder umbenannt hast? Da ist fhempy noch sehr pingelig. daher nach einem rename/defmod/delete immer fhempy neu starten.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Ja, das stimmt tatsächlich. Ich hatte etwas "aufgeräumt".

Wie starte ich fhempy am besten? Ein Restart im PythonBinding-Device?
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

set fhempyserver_15733 restart

Danach FHEM für 1 Minute in Ruhe lassen, weil wenn man viele Device hat, tut sich da einige beim Starten.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Alles klar. Danke! Bei mir heißt das Device allerdings "Pythonbinding_15733"  ;)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

chris_kmn

#49
Moin moin,

wenn ich mein Xiaomi Gateway 3 abschalte wird das Logfile relativ schnell geflutet obwohl ich das Llogfile auf disable=1 und verbose=0 gesetzt habe.

2022-02-15 22:36:56,660 - WARNING  - fhempy.lib.xiaomi_gateway3.core.mini_miio: 192.168.0.3 | Device offline
2022-02-15 22:37:43,718 - WARNING  - fhempy.lib.xiaomi_gateway3.core.mini_miio: 192.168.0.3 | Device offline
2022-02-15 22:38:30,772 - WARNING  - fhempy.lib.xiaomi_gateway3.core.mini_miio: 192.168.0.3 | Device offline


Kann man das irgendwie unterbinden ? Ich nutze das Gateway nur gelegentlich, will es aber nicht komplett löschen...

Weiterhin kommt beim Restart von fhem immer diese Meldung:

Messages collected while initializing FHEM:configfile: fhempy_log already defined, delete it first

In der fhem config ist das logfile jedoch nur einmal definiert. Soll das so sein ?

dominik

disable wird bei dem Modul leider noch nicht unterstützt.
verbose = 0 sollte nur ERROR liefern, nur sind im xiaomi_gateway3 noch Codeteile die noch nicht den FHEM Logger verwenden und daher nicht beeinflusst werden. Ich werde das noch korrigieren, bitte aber nicht die nächsten Tage erwarten, das ist ein größere Aufwand.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

chris_kmn

Ok alles klar und danke für die schnelle Info

chris_kmn

#52
Könnte man bei dem gateway ein disable attribut einbringen und damit das logging stoppen ?

dominik

Ja, ich schau mir das noch an. Das Modul ist durchaus etwas komplex, daher dauert die Lösung ein paar Tage.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Gerade eine Idee gehabt wie ich disable womöglich doch einfach implementieren kann. Ist in paar Minuten online, bitte ausprobieren.

Du musst das disable beim xiaomi_gateway3 setzen, nicht beim xiaomi_gateway3_device. Probier es bitte aus und melde dich.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

chris_kmn


chris_kmn

Scheint noch Probleme zu geben:

2022-02-16 21:08:03,262 - WARNING  - fhempy.lib.xiaomi_gateway3.core.mini_miio: 192.168.0.3 | Device offline
/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py:201: RuntimeWarning: coroutine 'GatewayEntry.stop' was never awaited
Coroutine created at (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 507, in run
    asyncio.get_event_loop().run_forever()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
    self._run_once()
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
    handle._run()
  File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 158, in Attr
    return await utils.handle_attr(self._conf_attr, self, hash, args, argsh)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 69, in handle_attr
    return await fct_call(hash)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 100, in set_attr_disable
    self.gw.stop()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 201, in stop
    self.gw.stop()
  self.gw.stop()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
2022-02-16 21:08:50,329 - WARNING  - fhempy.lib.xiaomi_gateway3.core.mini_miio: 192.168.0.3 | Device offline

dominik

fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

chris_kmn

#58
Jetzt sieht es gut aus!

Mal wieder super Arbeit 😀😀😀

RockFan

Hallo dominik,

gestern sind endlich die beiden Rauchmelder angekommen, die ich über das Gateway 3 verbinden möchte (siehe Posts vom Februar in diesem Thread).
Nachdem ich sie erfolgreich mit dem Gateway verbunden habe, wurden auch automatisch Devices in FHEM erzeugt.

Beispiel (nach Rename):

{
  "Arg":"og_Rauchmelder",
  "Results": [
  {
    "Name":"og_Rauchmelder",
    "PossibleSets":"",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5   IODev:fhempy_peer_192_168_178_77,fhempy_peer_192_168_178_88,local_pybinding event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DMX_B DMX_G DMX_R andFHEM_alias appOptions:textField-long assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle gassistantName:textField genericDeviceType:ac_unit,aircondition,airfreshener,airpurifier,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,coffeemaker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,fryer,garage,gate,grill,heater,hood,humidifier,kettle,light,lock,remotecontrol,mop,mower,microwave,multicooker,network,outlet,oven,pergola,petfeeder,pressurecooker,radiator,refrigerator,router,scene,securitysystem,settop,sensor,shutter,shower,smoke_detector,sousvide,sprinkler,standmixer,switch,tv,thermostat,vacuum,valve,washer,waterheater,waterpurifier,watersoftener,window,yogurtmaker,aircooler,audio_video_receiver,freezer,speaker,streaming_box,streaming_stick,streaming_soundbar,soundbar homebridgeMapping:textField-long icon lightSceneParamsToSave msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue realRoom:textField realtimePicker room_map sortby webCmd webCmdLabel:textField-long widgetOverride",
    "Internals": {
      "CFGFN": "",
      "DEF": "xiaomi_gateway3_device xiaomigw3_408874251 blt.3.19vsonkj0lc01",
      "DID": "blt.3.19vsonkj0lc01",
      "FHEMPYTYPE": "xiaomi_gateway3_device",
      "FUUID": "6252ac28-f33f-4546-cb92-59fb2e160d61eaa7",
      "GATEWAY": "xiaomigw3_408874251",
      "IODev": "local_pybinding",
      "NAME": "og_Rauchmelder",
      "NR": "7005",
      "PYTHONTYPE": "xiaomi_gateway3_device",
      "STATE": "offline",
      "TYPE": "fhempy"
    },
    "Readings": {      "state": { "Value":"offline", "Time":"2022-04-10 13:12:34" } },
    "Attributes": {
      "IODev": "local_pybinding",
      "group": "xiaomi_gateway3_device",
      "room": "fhempy"
    }
  }  ],
  "totalResultsReturned":1
}


10-15 Minuten später beginnt eine endlose Flut mit folgender Meldungskette im FHEM-Log:

2022.04.10 12:18:59 1: ERROR: empty name in readingsBeginUpdate
2022.04.10 12:18:59 1: stacktrace:
2022.04.10 12:18:59 1:     main::readingsBeginUpdate           called by (eval 97791) (1)
2022.04.10 12:18:59 1:     (eval)                              called by ./FHEM/10_BindingsIo.pm (475)
2022.04.10 12:18:59 1:     main::BindingsIo_processMessage     called by ./FHEM/10_BindingsIo.pm (586)
2022.04.10 12:18:59 1:     main::BindingsIo_readWebsocketMessage called by ./FHEM/10_BindingsIo.pm (222)
2022.04.10 12:18:59 1:     main::BindingsIo_Read               called by fhem.pl (3929)
2022.04.10 12:18:59 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2022.04.10 12:18:59 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2022.04.10 12:18:59 1:     main::__ANON__                      called by fhem.pl (781)
Use of uninitialized value $d in hash element at fhem.pl line 4645.
Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4984.


Im fhempy-Log stehen nun durchgehend folgende Meldungen:

2022-04-10 12:06:45,379 - INFO     - fhempy.lib.pkg_installer: Successfully installed python-miio==0.5.8 update!
2022-04-10 12:07:02,047 - ERROR    - fhempy.lib.xiaomi_gateway3.core.gateway3: Processing MQTT: log/ble b'{"did":"blt.3.19vsonkj0lc01","eid":4106,"edata":"64","pdid":2455,"seq":5}'
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 650, in on_message
    await self.process_ble_event_fix(msg.json)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 399, in process_ble_event_fix
    await self.process_ble_payload(device, payload)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/gateway3.py", line 414, in process_ble_payload
    await self.add_entity(domain, device, k)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/core/helpers.py", line 66, in add_entity
    await self.setups[domain](self, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 190, in setup
    await handler(gw, device, attr)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py", line 172, in create_device
    await self.fhempy_devices[did].initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/xiaomi_gateway3_device.py", line 107, in initialize
    await self._fhempy_device.initialize(device)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3_device/devices/base.py", line 103, in initialize
    for attr in attr_settings[str(device["model"])]:
KeyError: '2455'


Würde mich freuen, wenn Du dir das ansehen könntest  :)

Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Hi,

mach mal einen Restart von fhempy. Rename kann fhempy noch nicht so gut verarbeiten, da ist meistens ein Restart danach sinnvoll.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Danke, dominik!

Deshalb also die Verzögerung im FHEM-Log. Den Rename hatte ich erst nach 10-15 Minuten gemacht, bevor ich den zweiten Rauchmelder connected hatte, um sie einfacher unterscheiden zu können.

Das FHEM-Log ist jetzt wieder "schön"  8)

Das fhempy-Log hat sich aber nicht verändert. Und die beiden FHEM-Devices haben nur ein "state"-Reading, das immer den Wert offline hat. Ich weiß zwar nicht, was hier genau zu erwarten wäre, aber ich vermute offline sollte nicht der dauerhafte Status sein und vielleicht sollte es noch ein paar Readings geben.

Wie siehst Du das?

Viele Grüße
Dieter   
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Ah, da war noch ein Fehler. Ich hatte nur auf das Rename geschaut :)

Update ist draußen, bitte damit testen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Super - Danke!

Jetzt sieht alles so aus, wie es wohl sein muss (Status online und Readings).
Ich habe zwar keine Ahnung, wie ich ohne Rauch testen soll, ob es auch funktioniert, da der Selbsttest nicht einmal in der Xiaomi-App angezeigt wird  ::) aber das ist auch nicht Dein Problem ;)

Falls es interessiert, so sieht das Device nun aus:

{
  "Arg":"og_Rauchmelder",
  "Results": [
  {
    "Name":"og_Rauchmelder",
    "PossibleSets":"",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5   IODev:fhempy_peer_192_168_178_77,fhempy_peer_192_168_178_88,local_pybinding event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DMX_B DMX_G DMX_R andFHEM_alias appOptions:textField-long assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle gassistantName:textField genericDeviceType:ac_unit,aircondition,airfreshener,airpurifier,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,coffeemaker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,fryer,garage,gate,grill,heater,hood,humidifier,kettle,light,lock,remotecontrol,mop,mower,microwave,multicooker,network,outlet,oven,pergola,petfeeder,pressurecooker,radiator,refrigerator,router,scene,securitysystem,settop,sensor,shutter,shower,smoke_detector,sousvide,sprinkler,standmixer,switch,tv,thermostat,vacuum,valve,washer,waterheater,waterpurifier,watersoftener,window,yogurtmaker,aircooler,audio_video_receiver,freezer,speaker,streaming_box,streaming_stick,streaming_soundbar,soundbar homebridgeMapping:textField-long icon lightSceneParamsToSave msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue realRoom:textField realtimePicker room_map sortby webCmd webCmdLabel:textField-long widgetOverride",
    "Internals": {
      "CFGFN": "",
      "DEF": "xiaomi_gateway3_device xiaomigw3_408874251 blt.3.19vsonkj0lc01",
      "DID": "blt.3.19vsonkj0lc01",
      "FHEMPYTYPE": "xiaomi_gateway3_device",
      "FUUID": "6252ac28-f33f-4546-cb92-59fb2e160d61eaa7",
      "GATEWAY": "xiaomigw3_408874251",
      "IODev": "local_pybinding",
      "NAME": "og_Rauchmelder",
      "NR": "7005",
      "PYTHONTYPE": "xiaomi_gateway3_device",
      "STATE": "online",
      "TYPE": "fhempy"
    },
    "Readings": {
      "action": { "Value":"0", "Time":"2022-04-10 16:15:45" },
      "battery": { "Value":"100", "Time":"2022-04-10 16:06:13" },
      "device_manufacturer": { "Value":"Honeywell", "Time":"2022-04-10 16:06:14" },
      "device_model": { "Value":"JTYJ-GD-03MI", "Time":"2022-04-10 16:06:14" },
      "device_name": { "Value":"Honeywell Smoke Alarm", "Time":"2022-04-10 16:06:14" },
      "did": { "Value":"blt.3.19vsonkj0lc01", "Time":"2022-04-10 16:06:13" },
      "mac": { "Value":"54ef44e3809b", "Time":"2022-04-10 16:06:13" },
      "model": { "Value":"2455", "Time":"2022-04-10 16:06:13" },
      "online": { "Value":"1", "Time":"2022-04-10 16:06:13" },
      "seq": { "Value":"117", "Time":"2022-04-10 16:28:58" },
      "smoke": { "Value":"0", "Time":"2022-04-10 16:06:28" },
      "state": { "Value":"online", "Time":"2022-04-10 16:28:58" },
      "type": { "Value":"ble", "Time":"2022-04-10 16:06:13" }
    },
    "Attributes": {
      "IODev": "local_pybinding",
      "group": "xiaomi_gateway3_device",
      "icon": "secur_smoke_detector",
      "room": "fhempy"
    }
  }  ],
  "totalResultsReturned":1
}



Nochmals besten Dank und schönen restlichen Sonntag

Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Super! Danke für die Info, sieht gut aus :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Hallo Dominik,

leider weiß ich nicht wohin ich am besten mein aktuelles Problem poste, damit du es auch siehst, deshalb nehme ich einfachen diesen alten Thread hier  :-\

Gestern wollte ich mal wieder fhempy aktualisieren und habe somit jeweils auf das Aktualisierungssymbol von fhempy_local und meine beiden Peers geklickt. Die Peers ließen sich auch wunderbar aktualisieren, aber fhempy_local blieb disconnected. Im Log ist mir dann aufgefallen, dass offensichtlich der Speicher (die SD-Karte) voll war:


2022-10-08 22:16:28,832 - ERROR    - __main__: Unable to install package fhempy>=0.1.12: Could not install packages due to an EnvironmentError: [Errno 28] Auf dem Gerät ist kein Speicherplatz mehr verfügbar


Daraufhin habe ich eine Menge Logs gelöscht. Das hatte aber nichts gebracht. Letztendlich habe ich entschlossen auf heute zu vertagen und FHEM auch mal wieder zu aktualisieren.

Nun habe ich weiter analysiert und mehr Probleme, die auch schon vor dem fehlenden Speicher aufgetaucht sind gefunden:


2022-10-08 22:15:52,591 - INFO     - fhempy.lib.fhem_pythonbinding: Start update...
2022-10-08 22:15:52,592 - INFO     - fhempy.lib.pkg_installer: Attempting install of fhempy
2022-10-08 22:16:06,630 - ERROR    - fhempy.lib.pkg_installer: Unable to install package fhempy: python-miio 0.5.8 has requirement click<8,>=7, but you'll have click 8.1.3 which is incompatible.
python-miio 0.5.8 has requirement croniter<1,>=0, but you'll have croniter 1.3.7 which is incompatible.
python-miio 0.5.8 has requirement cryptography<4,>=3, but you'll have cryptography 37.0.4 which is incompatible.
python-miio 0.5.8 has requirement importlib_metadata<2,>=1; python_version <= "3.7", but you'll have importlib-metadata 4.8.1 which is incompatible.
Could not install packages due to an EnvironmentError: [Errno 28] Auf dem Gerät ist kein Speicherplatz mehr verfügbar: '/opt/fhem/.local/lib/python3.7/site-packages/cryptography-3.4.8.dist-info'
2022-10-08 22:16:06,654 - INFO     - fhempy.lib.fhem_pythonbinding: Restart initiated...
2022-10-08 22:16:06,689 - INFO     - fhempy.lib.fhem_pythonbinding: All modules successfully undefined!
2022-10-08 22:16:06,691 - INFO     - websockets.server: server closing
2022-10-08 22:16:16,706 - INFO     - websockets.server: connection closed
2022-10-08 22:16:16,707 - INFO     - websockets.server: server closed
2022-10-08 22:16:16,720 - INFO     - fhempy.lib.fhem_pythonbinding: Exit 1
2022-10-08 22:16:17,640 - ERROR    - __main__: Failed to load fhempy
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 100, in <module>
    import fhempy.lib.fhem_pythonbinding as fpb
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 16, in <module>
    from . import fhem, pkg_installer, utils, version
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 10, in <module>
    from cryptography.fernet import Fernet
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/fernet.py", line 14, in <module>
    from cryptography.hazmat.primitives import hashes, padding
ModuleNotFoundError: No module named 'cryptography.hazmat.primitives'
2022-10-08 22:16:17,641 - INFO     - __main__: Attempting install of fhempy>=0.1.12
2022-10-08 22:16:28,832 - ERROR    - __main__: Unable to install package fhempy>=0.1.12: Could not install packages due to an EnvironmentError: [Errno 28] Auf dem Gerät ist kein Speicherplatz mehr verfügbar
2022-10-08 22:16:28,833 - ERROR    - __main__: Failed to install fhempy, exit now...


Die Fehlermeldung mit dem Cryptographie-Modul loopt seither im Minutentakt.

Ich dachte zunächst, dass fhempy_local das Problem ist, habe das Device gelöscht und neu angelegt, bis mir klar wurde, dass fhempyserver permanent stoppt und startet. Das steht im fhem-Log im Minutentakt:


2022.10.09 12:40:16 3: fhempyserver_15733: read: end of file reached while sysread
2022.10.09 12:40:16 3: fhempyserver_15733: stopped
2022.10.09 12:40:16 3: fhempyserver_15733: starting
2022.10.09 12:40:16 3: fhempyserver_15733: using logfile: ./log/fhempy-2022-10-09.log



sudo -u fhem bash
pip3 install --upgrade fhempy

habe ich bereits versucht.

Auch googeln nach dem Crypto-Fehler hat mich nicht weitergebracht.

Ich komme nicht weiter. Hast du noch eine Idee, was ich machen kann?


Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Ich bin mir gerade nicht sicher ob es mit Python 3.7 zusammenhängt - kann durchaus sein.

Probier bitte folgendes:
- Upgrade des RPi auf bullseye
- Danach ist Python 3.9 Standard
- Dann nochmals fhempy mit
sudo -u fhem bash
pip3 install -U fhempy
installieren.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Hi Dominik,

vor einem Upgrade auf bullseye hab ich ein wenig Respekt, da bei mir erheblich viele verschiedenste Module in FHEM laufen. Ich befürchte, dass es nicht ganz glatt laufen wird. Das muss ich erstmal noch gegen entsprechende Erfahrungen hier im Forum checken und auch ein wenig mehr Zeit freischaufeln, um mich um die Folgen kümmern zu können.

Wie ist Deine Erfahrung mit dem Upgrade?

Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Zeit sollte man beim Upgrade auf alle Fälle einplanen - Sonntag Abend ist da meistens schlecht ;)

Ich hatte mit dem bullseye Upgrade auf 4 verschiedenen RPi nur wenig (oder gar keine) Probleme, aber das mag nichts heißen, weil die Konfigurationen natürlich sehr individuell sind.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Hi Dominik,

ich habe heute den Schritt auf Bullseye gewagt. Das scheint bisher auch soweit geklappt zu haben. Python ist nun auf 3.9.
fhempy möchte aber immer noch nicht. Ich bin, wie du es beschrieben hast vorgegangen:

sudo -u fhem bash
pip3 install -U fhempy


Beim ersten Versuch kam dann am Ende folgende Ausgabe:


Installing collected packages: cryptography
  Attempting uninstall: cryptography
    Found existing installation: cryptography 3.4.8
    Uninstalling cryptography-3.4.8:
      Successfully uninstalled cryptography-3.4.8
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
python-miio 0.5.8 requires cryptography<4,>=3, but you have cryptography 37.0.4 which is incompatible.
Successfully installed cryptography-37.0.4


Allerdings sind die Logausgaben nun andere als zuvor. Ich habe es nach einem Reboot nochmals mit der Installation versucht; diesmal ohne Fehlermeldung.
fhempy_local sagt durchgehend "Installing fhempy (15min)..."

Im Log steht nun alle 10 Sekunden:


2022-10-23 15:17:23,837 - ERROR    - fhempy_og_BT_PocophoneF1: BleakScanner failed
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/bt_presence/bt_presence.py", line 46, in run_bt_scan
    rssi = await utils.run_blocking(
  File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/utils.py", line 35, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.9/site-packages/bt_proximity/bt_rssi.py", line 55, in request_rssi
    self.prep_cmd_pkt()
  File "/opt/fhem/.local/lib/python3.9/site-packages/bt_proximity/bt_rssi.py", line 27, in prep_cmd_pkt
    handle = struct.unpack(b'8xH14x', request.tostring())[0]
AttributeError: 'array.array' object has no attribute 'tostring'


Was könnte ich noch versuchen?

Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Kommando zurück  8)
Es hat sich wohl durch ein Update von FHEM erledigt :)

Was ein wenig seltsam ist oder bleibt, ist die Tatsache, dass ich auf einem der beiden Peers trotz Update andere Versionen habe, als auf der FHEM-Instanz:
Statt 0.1.508 nur 0.1.501
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...