Raspi - Problem mit bluetooth Modul

Hallo zusammen,

ich habe IP-Symcon auf dem Raspi laufen und verwende das Modul SymconBTP, um die Anwesenheit von 2 Beacons (Gigaset G-tag) festzustellen. Für jedes Beacon habe ich eine separate Instanz laufen. Die Instanzen für das Modul habe ich so konfiguriert, das alle 30 Sekunden je ein LEScan durchgeführt wird. In einem separaten PHP Skript frage ich die Anwesenheit der Beacons ab und entscheide dann, ob die Anwesenheitssimulation (Lichtsteuerung) aktiv sein soll, oder nicht.

PHP-Code:
<?

$Request1 = GetValue(57770);
$Request2 = GetValue(40123);

//echo $Request1;
//echo $Request2;

if ($Request1 == false and $Request2 == false) {
echo „Anwesenheitssimulation soll aktiviert werden“;
AS_SetSimulation(21128, true);
}

else {
echo „Anwesenheitssimulation soll nicht aktiviert werden“;
AS_SetSimulation(21128, false);
}
echo " - done";

Dies klappt eine gewisse Zeit zuverlässig (ca. 1 Tag) ganz gut, aber dann passiert es immer wieder, dass sich das Scannen der Beacons „aufhängt“. In diesem Zusatand funktioniert der Scan nicht mehr. Wenn ich per Terminal auf den Raspi zugreife und ein

hcitool lescan

absetze, kommt folgender Fehler:

„Set scan parameters failed: Input/output error“.

Erst wenn ich den Raspi neu boote, klappt der Scan wieder und das SymconBTP Modul erkennt die Beacons und liefert entsprechende Rückgabewerte.

Mein bluetoothmodul ist per sudo apt get…auf dem folgenden Stand:

pi@raspberrypi:~ $ sudo apt-get install bluetooth bluez-hcidump bluez blueman
Reading package lists… Done
Building dependency tree
Reading state information… Done
blueman is already the newest version (2.0.4-1+b4).
bluetooth is already the newest version (5.43-2+rpt2+deb9u2).
bluez is already the newest version (5.43-2+rpt2+deb9u2).
bluez-hcidump is already the newest version (5.43-2+rpt2+deb9u2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Hat vielleicht jemand eine Idee, wie ich das Problem loswerde und der Bluetooth LEScan dauerhaft zuverlässig funktioniert?

Viele Grüße
Uwe

Mittlerweile habe ich mal das interne Bluetooth am Raspi deaktiviert und stattdessen einen USB Bluetooth Stick in Einsatz gebracht. Hat leider keinen Erfolg gebracht. Nach wie vor hängt sich der Bluetooth Scan nach einer gewissen Zeit auf. Der Bluetooth Stick leuchtet dauerhaft blau, was vermutlich bedeutet, dass der Scan ununterbrochen läuft und nicht nach ein paar Sekunden gekillt wird.
Ist wirklich niemand da, der eine Idee hat?

Ratlose Grüße
Uwe

In meiner Beschreibung des „Parallelmodus“ gibt es ein Skript HCIconfig.sh.

Das rufe ich von IPS zu Beginn und zu Ende jedes Loops auf:



// Beim Start
                switch ($_IPS['GenEv']) :
                    case 'Execute':
                    case 'ErstStart':
                        $handle = HciConfig ('hci0', 'reset');  // Reset HCI device
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                        $handle = HciConfig ('hci0', 'up');     // Interface öffnen
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                        break;
                    case 'BLE-WatchDog':
                        $handle = HciConfig ('hci0', 'reset');  // Reset HCI device
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                        $handle = HciConfig ('hci0', 'up');     // Interface öffnen
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                        break;
                    case 'Revolving':
                        $handle = HciConfig ('hci0', 'up');     // Interface öffnen
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                        break;
                    default:
                        $handle = HciConfig ('hci0', 'up');     // Interface öffnen
                        IPS_Sleep (100);   //  Wartezeit in Millisekunden
                endswitch;





// am Ende
                if ($Scanausfall) {
                    $BeatObj = HciConfig ('hci0', 'reset');  // Reset HCI device
                } else {
                    $BeatObj = HciConfig ('hci0', 'down');     // Interface schließen
                }


function HciConfig ($Dev, $Cmd = '', $Par = '', $SubPar = '') {     // hciconfig [-a] hciX [command [command parameters]]
    global $SkriptDir, $DatenDir, $lSem;
    SetIPSsem ('BluHci');     // sudo hciconfig $1 $2 $3 $4 $5;
    exec ('sh ' . $SkriptDir . 'HCIconfig.sh' . " $Dev" . " $Cmd" . " $Par" . " $SubPar " . '> ' . $DatenDir . $Dev . '.txt');
    if ($lSem & Trace) {
        echo ("
sh " . $SkriptDir . 'HCIconfig.sh -> sudo hciconfig' . " $Dev" . " $Cmd" . " $Par" . " $SubPar " . '> ' . $DatenDir . $Dev . '.txt');
//        echo ("
/*
" );
//        echo (file_get_contents (($DatenDir . $Dev . '.txt')));
//        echo ("
*/
" );
    }
    unSetIPSsem ('BluHci');

    $handle = @fopen ($DatenDir . $Dev . '.txt', "r");
    return $handle;
}




Ich hab mal auf die Schnelle alles aus meinem funktionierenden Skript rauskopiert. Was nicht in Deine Applikation paßt mußt Du eben rauslöschen.

Mit diesem Öffnen zu Beginn und Schließen von hciconfig treten bei meinen Raspis keine Probleme auf, die laufen schon seit Wochen problemlos.

Viele Grüsse
Harald

Ich habe auch Probleme mit dem SymconBTP Modul - hängt immer wieder.

Aktuell teste ich gerade statt:

$handle = popen("stdbuf -oL hcitool -i hci0 lescan", "r");

folgendes:

$handle = popen("stdbuf -oL timeout -s SIGINT 5s hcitool -i hci0 lescan --passive","r");

Mal sehen, was die Zeit bringt. Vielleicht hat ja noch jemand Verbesserungen für das Modul.

Hier mal eine kurze Zwischenmeldung…

Seit der Änderung hatte ich keinen einzigen Hänger mehr.

Grüße

Hatte die Hänger auch und teste gerade Deine Änderung.

Ich hätte grosses Interesse am Parallelmodus, aber leider ist der Thread sehr unübersichtlich geworden und mit Buster ist die Anleitung nicht mehr kompatibel.

Sebastian

Ist das schon im aktuellen Modul umgesetzt? Oder muss das in Symcon angepasst werden?

Gesendet von meinem VOG-L29 mit Tapatalk

Ich glaube nicht, dass das eingepflegt ist.
Das musst du in der modul.php ändern.

Grüße
Stefan

Habs im Modul angepasst und es läuft aktuell schon viel zuverlässiger als vorher. Seit der Änderung noch keinen Absturz.

Sollen wir das noch an den Entwickler weiterleiten? Dann könnte man das gleich im Modul mit einpflegen.

Danke für die Hilfe! Echt super dass das jetzt klappt.

Jetzt folgen noch ein paar Test Tage und vergleiche mit dem IPS Tracker und wenn alles gut läuft werden die IPS Tracker ausgemustert.

Gesendet von meinem VOG-L29 mit Tapatalk

Bei mir läuft inzwischen der Quasselmodus. Perfekt. Schnell. Stabil. Beliebig erweiterbar auf vielen Scanner Pis. Ohne Symcon auf den Scannern.
DarthWeber hat die meisten Komponenten geliefert. Danke dafür!
Ich werde das in einem eigenen Thread zusammenfassen sobald ich Zeit finde.

Sebastian

Das wäre auch interessant. Sonst müsste ich zwei Symcon Systeme laufen lassen. Wäre schön wenn du hierzu nen Link zum Thema Posten kannst

Gesendet von meinem VOG-L29 mit Tapatalk

Das wäre total Interessant, mein Symcon läuft im Keller im Serverschrank, eine Lösung bei der ich PIs an Interessanten stellen als Bluetooth empfänger verteilen kann ist das was jch suche, habe mich bisher aber nicht rangetraut obwohl die g-tags seit nem halben Jahr hier rumliegen …

Gesendet von iPhone mit Tapatalk Pro

Hier meine Zusammenfassung:

Raspberry Pi als Beacon Scanner für Gigaset G-Tags - Reloaded

Also Symcon läuft jetzt mit den Änderungen total stabil! Bin voll und ganz zufrieden!

Danke danke

Die Änderung sollte ins Modul. Ich schreib Mal den Entwickler an und würde auf deine super Anpassung verweisen.

Gesendet von meinem VOG-L29 mit Tapatalk

Freut mich sehr, dass es jetzt klappt.

Ich hatte auch das Problem, dass sich Symcon nicht mehr ordentlich ‚Stoppen‘ lies, da im Hintergrund noch ein lescan aktiv war.
Hat aber ewig gedauert, bis ich das rausgefunden habe. Dachte schon es liegt an IPS aber dem war nicht so.

Grüße