fhempy: Bluetooth Fragen

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

Vorheriges Thema - Nächstes Thema

dominik

Kommt auch kein connected? Wenn dem so ist, dann kann die Verbindung nicht aufgebaut werden.
Kannst du Mal versuchen den Sensor direkt neben dem RPi zu positionieren?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Das habe ich bereits getan.

Es ist sehr seltsam. Mittlerweile versuche ich meine 2 Sensoren an 3 verschiedenen Raspis. Meine beiden Raspi 4 Versionen haben ein "Kodi"-Gehäuse aus Alu. Also dachte ich vielleicht ist das der Grund für die permanenten Disconnects.
Deshalb habe ich vorhin einen Sensor zum Raspi 3 mit Plastikgehäuse gestellt. Prompt bekam ich mit MiTemperature2 kaum Disconnects. Im fhempy Device blieb es aber bei den Fragezeichen.

Und nun bekomme ich mit MiTemperature2 plötzlich auch keine einzige Verbindung mehr  ???
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Nutzt du onboard Bluetooth? Ich würde Mal mit einem Bluetooth USB Dongle mit Verlängerung probieren, das onboard BT ist nicht immer das beste.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Ja, nur onboard.
Das das nichts taugt habe ich auch gelesen. Ich denke bereits über Dongle nach. Mein Anwendungsfall wäre fhempy (die beiden Sensoren und ggf. Presence). Ich bin nur noch nicht ganz überzeugt, dass das zuverlässig funktionieren wird (Reichweite, etc.). Ich frage mich allerdings auch, ob irgend etwas grundsätzlich mit Bluetooth nicht passt (z.B. Konfiguration im Raspian). Ich bin in Linux nicht soo fit und muss mir alles googeln.
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 habe auf meinem RPi 2 Dongles dran und mache inkl. onboard Bluetooth damit 4 Thermostate, 1 Bewässerung + Überwachung von 6 Smartphones. Das klappt mittlerweile sehr zuverlässig, dabei muss ich aber auch sagen, dass es erst mit dem RPi4 richtig rund läuft. Davor musste ich die hci Devices oft resetten weil die sich aufgehängt haben.
sudo hciconfig hci0 reset
Kannst mal probieren, vielleicht hilft es. Oder dmesg anschauen, da sind auch manchmal hci Fehler drin.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Der Reset löst es tatsächlich. Auf beiden Raspis, neben denen die beiden Sensoren stehen. Sicherlich nur temporär. In den fhempy-Devices bleibt es allerdings bei den Fragezeichen.

Warum hast du mehrere Dongles an einem RPi?

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

dominik

Mach mal den Reset und starte dann fhempy neu (fhempyserver_15733 restart). Vielleicht klappt dann die Verbindung.

Mehrere Dongles da ein Dongle nicht unendlich viele Verbindungen halten kann und damit ich alle Thermostate erreichen kann - Dongles sind unterschiedliche ausgerichtet.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

RockFan

Jetzt stehe ich gerade auf dem Schlauch. Wie mache ich den Reset?
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Du meinst Pythonbinding_15733 im Raum "hidden"?

Hab ich gerade gemacht und bekomme nun in einigen fhempy Devices folgendes:

Failed to execute function Define: Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 413, in _onMessage
    fct_timeout,
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/mitemp2/mitemp2.py", line 12, in Define
    await super().Define(hash, args, argsh)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 148, in Define
    functools.partial(self._get_readme_content)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 33, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 126, in _get_readme_content
    readme_str = markdown.markdown(readme_md)
  File "/opt/fhem/.local/lib/python3.7/site-packages/markdown/core.py", line 387, in markdown
    return md.convert(text)
  File "/opt/fhem/.local/lib/python3.7/site-packages/markdown/core.py", line 268, in convert
    newRoot = treeprocessor.run(root)
  File "/opt/fhem/.local/lib/python3.7/site-packages/markdown/treeprocessors.py", line 397, in run
    element.insert(i, newChild)
TypeError: insert() argument 2 must be xml.etree.ElementTree.Element, not Element
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

dominik

Mit reset meinte ich
sudo hciconf hci0 reset

Ah, das ist noch der README Fehler. Moment, den schau ich mir gleich an...
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Ich kann den Fehler leider nicht nachstellen, mach bitte mal folgendes
sudo -u fhem bash
cd
cd .local/lib/python3.9/site-packages/fhempy/lib/mitemp2
python3
import markdown
f = open("README.md", "r")
markdown.markdown(f.read())

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

RockFan


'<h1>Xiaomi Mi Bluetooth Low Energy Temperature / Humidity Sensor v2</h1>\n<p>This module is used to get data from the Xiaomi BLE temperature / humidity sensor version 2.</p>\n<h2>Installation</h2>\n<p>Add the following settings to <code>/etc/dbus-1/system.d/bluetooth.conf</code>\n<code>&lt;policy user="fhem"&gt;\n    &lt;allow own="org.bluez"/&gt;\n    &lt;allow send_destination="org.bluez"/&gt;\n    &lt;allow send_interface="org.bluez.GattCharacteristic1"/&gt;\n    &lt;allow send_interface="org.bluez.GattDescriptor1"/&gt;\n    &lt;allow send_interface="org.freedesktop.DBus.ObjectManager"/&gt;\n    &lt;allow send_interface="org.freedesktop.DBus.Properties"/&gt;\n  &lt;/policy&gt;</code>\nSet the user to the one which runs fhempy. On FHEM installations it\'s fhem, on remote peers it\'s normally pi.\nRestart dbus afterwards: <code>sudo systemctl restart dbus</code></p>\n<h2>Usage</h2>\n<p><code>define mi_temphum fhempy mitemp2 &lt;MAC&gt;</code></p>'


Info: Ich musste für den Wechsel in das Python-Verzeichnis allerdings python3.9 auf python3.7 ändern
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Mir ist gerade noch etwas im syslog auf zwei der RPis aufgefallen. Ich habe jeweils ein ble_presence fhempy Device definiert und bei beiden kommen folgende ähnliche Fehlermeldung im syslog:


Dec 13 00:03:21 MediaNAS fhempy[28611]: 2021-12-13 00:03:21,126 - ERROR    - da_Temp_Pesence: Failed to scan: Failed to execute management command 'le on' (code: 12, error: Not Supported)



Raspi-Wohnzimmer fhempy[14340]: 2021-12-13 21:17:46,798 - ERROR    - wz_Temp_Pesence: Failed to scan: Failed to execute management command 'scanend' (code: 11, error: Rejected)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

#58
Hallo dominik!

Erstmal ein gutes neues Jahr :)

Hattest du Gelegenheit meine Rückmeldungen mal anzuschauen?

Da ich noch eine Woche Urlaub habe, würde ich mich gerne wieder mit dem Thema befassen. Wenn das grundsätzlich funktioniert, werde ich mir auch externe Bluetooth Dongles anschaffen.

UPDATE 02.01.:
Seit ich das onboard WLAN der Raspis deaktiviert habe, ist das onboard Bluetooth stabiler. ble_presence zeigt nun (fast) durchgehend "present", MiTemperature2 liefert durchgehend Werte.

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

Spät aber doch....Thema erledigt, oder ist noch eine Frage offen? :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik