+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Jan 2019
    Beiträge
    15

    Standard 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

    Code:
    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

  2. #2
    Registriert seit
    Jan 2019
    Beiträge
    15

    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

  3. #3
    Registriert seit
    Dec 2011
    Ort
    am Ende des Internets
    Beiträge
    329

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

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

    PHP-Code:

    // 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 (
    "\nsh " $SkriptDir 'HCIconfig.sh -> sudo hciconfig' $Dev$Cmd$Par$SubPar " '> ' $DatenDir $Dev '.txt');
    //        echo ("\n/*\n" );
    //        echo (file_get_contents (($DatenDir . $Dev . '.txt')));
    //        echo ("\n*/\n" );
        
    }
        
    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

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    90

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

    Aktuell teste ich gerade statt:
    Code:
    $handle = popen("stdbuf -oL hcitool -i hci0 lescan", "r");
    folgendes:
    Code:
    $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.

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    90

    Hier mal eine kurze Zwischenmeldung....

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

    Grüße

Ähnliche Themen

  1. [Modul] Bluetooth Presence (Linux Only)
    Von traxanos im Forum PHP-Module
    Antworten: 31
    Letzter Beitrag: 09.10.19, 10:01
  2. Problem mit Alexa Modul + Szenen
    Von dermarc im Forum Amazon Alexa
    Antworten: 10
    Letzter Beitrag: 07.01.19, 19:03
  3. Raspberry Pi + Python + MQTT + Bluetooth = Bluetooth Scanner
    Von drapple im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 30
    Letzter Beitrag: 07.10.18, 11:41
  4. Problem mit IPS TCM310 Modul
    Von ThomasD im Forum EnOcean
    Antworten: 0
    Letzter Beitrag: 05.09.14, 17:14
  5. Problem mit ISDN Modul
    Von holli10 im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 0
    Letzter Beitrag: 01.11.11, 10:31