fhempy: Bluetooth Fragen

Begonnen von RockFan, 11 Januar 2021, 23:31:47

Vorheriges Thema - Nächstes Thema

RockFan

Installiert habe ich fhempy wie in deiner Anleitung für peers beschrieben.
Sollte somit unter pi laufen.
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Ich habe es jetzt scheinbar hinbekommen, indem ich fhempy auf diesem Raspi deinstalliert und nochmals installiert habe. Verstehen kann ich das zwar nicht wirklich, aber ist jetzt auch egal. Hauptsache es hat letztendlich geklappt  :)
Vielen Dank für die Unterstützung!

Noch spiele ich damit nur rum, aber ich würde gerne demnächst Temperatursensoren mit LCD Anzeige von Xiaomi einbinden.

Was mir v.a. bezüglich "normaler" (nicht LE) Bluetooth Geräte durch Definition von 3 Smartphones für alle drei Raspis (somit 9 PythonModule-Devices in FHEM) aufgefallen ist:
Ich sehe alle eigentlich sogut wie ausschließlich im Status "absent".

Das kann natürlich an dem schlechten OnBoard Bluetooth der Raspis liegen. Was mich allerdings ein wenig verwirrt, ist die Tatsache, dass ich mit einem Scan mit bluetoothctl im Terminal nicht das identische Ergebnis bekomme und zwar in beide Richtungen (das gilt auch für BLE). Gerät wird im PythonModule in FHEM als "present" gezeigt, taucht aber nicht im Terminal auf und umgekehrt.
Kannst du dir das erklären?

Nochmals vielen Dank für deinen Support!

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

So schlecht ist das onboard BT Modul nicht, dass es keine Smartphones erkennt. Was hast du für ein Smartphone? Android oder iOS?
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

Kommen im Log dazu Fehler? Probier mal nur ein Device, dann kann man zumindest ausschließen, dass der Adapter zu viele Verbindungen offen hat. Und probier Mal nur BT, kein BLE.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Ich habe jetzt mal alle anderen Bluetooth Devices gelöscht und nur noch mein eigenes Smartphone übrig gelassen. Allerdings habe ich noch 3 Devices - je eines pro Raspi - definiert gelassen, um das Verhalten pro Raspi zu erkennen.
Tatsächlich funktioniert nun die Erkennung deutlich besser.
Einzig von dem Raspi auf dem FHEM läuft, wird es gar nicht erkannt (BLEs wurden hier vor dem Löschen gefunden).

Im Binding-Log finde ich keine passenden Meldungen. Folgende wiederkehrende Einträge unterscheiden sich zu früheren Logs. Die Warnung wird ca. alle 10 Minuten geschrieben.

2021-01-30 10:59:08,154 - INFO     - asyncio: poll 8943.151 ms took 2597.344 ms: 1 events
2021-01-30 10:59:10,534 - INFO     - asyncio: poll 6341.217 ms took 2375.259 ms: 1 events
2021-01-30 10:59:11,772 - INFO     - asyncio: poll 3789.468 ms took 1060.982 ms: 1 events
2021-01-30 10:59:14,503 - INFO     - asyncio: poll 2667.888 ms took 2670.780 ms: timeout
2021-01-30 10:59:24,525 - INFO     - asyncio: poll 9999.465 ms took 10010.236 ms: timeout
2021-01-30 10:59:26,648 - INFO     - asyncio: poll 2112.814 ms took 2115.215 ms: timeout
2021-01-30 10:59:26,965 - WARNING  - asyncio: Executing <Handle callWithLogger(<twisted.inte...at 0xb30bd1d0>, <bound method...t 0xb2efe4b0>>, <twisted.inte...at 0xb30bd1d0>, True) at /opt/fhem/.local/lib/python3.7/site-packages/twisted/python/log.py:90 created at /usr/lib/python3.7/asyncio/selector_events.py:249> took 0.251 seconds
2021-01-30 10:59:32,620 - INFO     - asyncio: poll 4999.467 ms took 5005.073 ms: timeout
2021-01-30 10:59:44,552 - INFO     - asyncio: poll 9999.663 ms took 10010.097 ms: timeout
2021-01-30 10:59:48,924 - INFO     - asyncio: poll 9999.457 ms took 4360.749 ms: 1 events
2021-01-30 10:59:54,567 - INFO     - asyncio: poll 5436.498 ms took 5440.192 ms: timeout
2021-01-30 11:00:03,003 - INFO     - asyncio: poll 9492.740 ms took 7920.106 ms: 1 events
2021-01-30 11:00:04,578 - INFO     - asyncio: poll 1332.068 ms took 1334.421 ms: timeout
2021-01-30 11:00:08,009 - INFO     - asyncio: poll 3571.040 ms took 3421.249 ms: 1 events
2021-01-30 11:00:10,687 - INFO     - asyncio: poll 2521.564 ms took 2524.438 ms: timeout
2021-01-30 11:00:13,009 - INFO     - asyncio: poll 3056.328 ms took 1478.216 ms: 1 events


Gestern hatte ich FHEM aktualisiert und alle 3 fhempy-Instanzen sind auf Version 0.1.37.
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Hallo Dominik,

leider muss ich nochmal nerven  ::)

Ich habe diese Woche Temperatur/Luftfeuchtigkeitssensoren von Xiaomi bekommen und bekomme leider keine Readings angezeigt.
Nach der ersten Definition in FHEM (vorgestern) wurde von fhempy wie erwartet erstmal nachinstalliert. Das sah auch noch gut aus. Aber dann ist nichts mehr passiert. In den Logs ist nicht viel zu finden. Das habe ich mir jetzt mal genauer angeschaut. Bei einem Logeintrag war ich mir bzgl. der Zuordnung nicht ganz sicher. Deshalb habe ich das Device gerade nochmal gelöscht unf nochmal neu angelegt ... und es kommt doch eine Zeile im Bindings-Log nach dem Anlegen:


2021-02-19 19:26:14,610 - ERROR    - fhempy.lib.fhem: Failed to set result, received: {"result":"2021-02-19 19:26:14","awaitId":26567220,"error":0}


Später finde ich dann noch folgendes:

2021-02-19 19:28:15,837 - ERROR    - og_Temperatur: Failed to get updates from mitemp A4:C1:38:8A:50:24


Ich dachte mir dann, dass ich das Update Intervall runtersetzte um schneller ggf. Logeinträge zu bekommen. Ich bin mir nicht sicher, ob ich beim Setzen des Intervall-Attributes nun ein anderes Problem ausgelöst habe oder ob das zeitgleich von alleine gekommen ist. Der Status steht jetzt auf "PythonBinding Timeout", im FHEM-Log kommt mit ein wenig Abstand dreimal

2021.02.19 19:43:44 1: BindingsIo: ERROR: Timeout while waiting for function to finish (id: 61051995)

und im Binding-Log leicht versetzt

2021-02-19 19:43:52,076 - ERROR    - fhempy.lib.fhem_pythonbinding: Function execution >10s, cancelled: og_Temperatur - Attr(id: 61051995)


Das Attribut update_interval habe ich dann wieder gelöscht. Der Zustand bleibt aber unverändert.

Die von Dir beschriebenen Zeilen in der bluetooth.conf habe ich natürlich (schon vor längerer Zeit) hinzugefügt.

Hast du eine Idee?

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,

welchen Temp/Humidity Sensor hast du? Ich glaub da gibt es mehrere Varianten.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Ja, da gibt es inzwischen einige und es ist gar nicht so einfach ihn eindeutig zu benennen. Es ist der quadratische und heisst "Xiaomi Mijia Bluetooth Digital Thermometer 2" (Modell: LYWSD03MMC).

Aber der Link zum Store ist hier vielleicht sinvoller:
https://de.aliexpress.com/item/4000791321918.html?spm=a2g0s.12269583.0.0.35324974FZeiJ6
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

ToKa

Hallo Dominik,

Ich hatte Dir ja schon mal den Link für ein Python-Script für diesen Typ geschickt.
https://github.com/JsBergbau/MiTemperature2/

Wäre toll, wenn das mit fhempy auch funktionieren würde.

Viele Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ReneH87

Ich würde mich mal hier anhängen. Versuche gerade meine Mi Flora BLE Sensoren zu verbinden. Leider klappt das gar nicht.

Auf dem ext. raspi finde ich die Sensoren mit dem hcitool, das Modul discover_ble findet jedoch gar nichts.

Wenn ich dann versuche das Modul miflora in fhem zu definieren, passiert einfach nichts. Die Installation am Anfang ist zwar durchgelaufen, fhem konnte den Status jedoch nie abfragen. Auch Löschen von dem Device hat nicht geholfen. Ab und an sehe ich im fhempy Log ein "mi_plant: Failed to get updates from miflora XX:XX:XX:XX:XX:XX" - das wars dann allerdings. Hast du eine Idee woran das liegen könnte?

dominik

Ich habe mir mal den Code hier angeschaut:
https://github.com/JsBergbau/MiTemperature2/blob/master/LYWSD03MMC.py

Sollte kein Problem sein das zu integrieren. Am Wochenende bereite ich da mal was zum Testen vor.

@ReneH87
Hast du die dbus Konfiguration angepasst? => https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/mitemp/README.md
Findet discover_ble überhaupt keine Devices? Wenn dem so ist, dann dürfte noch etwas bei der Bluetooth Config nicht passen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ReneH87

Zitat von: dominik am 04 März 2021, 20:33:35
@ReneH87
Hast du die dbus Konfiguration angepasst? => https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/mitemp/README.md
Findet discover_ble überhaupt keine Devices? Wenn dem so ist, dann dürfte noch etwas bei der Bluetooth Config nicht passen.

Ja, Config habe ich angepasst. Im Anhang hab ich einen Screenshot vom discover_ble Device angehängt, aber er findet nichts - auch wenn man explizit auf die Lupe klickt.

Was könnte ich denn noch falsch gemacht haben? Die Verbindung zur Nespresso Kaffeemaschine über das entsprechende Modul funktioniert nämlich einwandfrei...

dominik

Bei deinem IODev steht remote_..., hast du eh auf dem Remote Device die Anpassung vorgenommen? Oder sollte IODev vielleicht local_pybinding sein?

Wegen MiTemp2 bin ich gerade dabei was vorzubereiten. Melde mich sobald es bereit zum Testen ist.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ReneH87

Zitat von: dominik am 08 März 2021, 20:31:52
Bei deinem IODev steht remote_..., hast du eh auf dem Remote Device die Anpassung vorgenommen? Oder sollte IODev vielleicht local_pybinding sein?

Nach meinem Verständnis passt das so? fhem läuft auf dem NAS weit weg von den BLE Devices. Habe auf einem raspi fhempy laufen und auch dort alle Anpassungen gemacht.

Gibts die Möglichkeit die relevanten Code Schnipsel mal manuell auf der Konsole auszuführen, um zu schauen was da kommt?