Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi Yeelight

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Ja das sieht ganz danach aus. Liegt vermutlich an einem Fehler beim Restore des Errorhandlers, denn das findet in der Function applicationPing() nicht statt.

    Du kannst mal die Function applicationPing() ersetzen mit:

    PHP-Code:
        function applicationPing()
        {
            global 
    $id;
            static 
    $i 0$j 0;
            
    error_off();
            
    $j ++;
            
    $cmd '{"id":' $j ',"method":"get_prop","params":["power"]}';
            
    $result fwrite($this->socket$cmd "\r\n");
            
    logging($id"Sent PING: $cmd");
            
    usleep(500000);
            while (
    $line fgets($this->socket1024)) {
                
    logging($id"Recv PONG: $line");
                
    $read json_decode($line);
                if (isset(
    $read) && is_object($read) && property_exists($read'id') && $read->id == $j) {
                    
    logging($id"PING OK");
                    
    $i 0;
                    
    logic_setOutput($id161);
                    
    logic_setOutput($id17date("d.m.Y - H:i:s"));
                    
    error_on();
                    return 
    true;
                }
            }
            
    $i ++;
            
    logging($id"PING FAIL ($i)");
            if (
    $i >= 5)
                
    logic_setOutput($id160);
            
    error_on();
            return 
    false;
        } 
    Wie lange ist Edomi denn bei dir gelaufen bis der Fehler aufgetaucht ist? Bei mir ist der Fehler nämlich bislang nicht aufgetreten, obwohl mein Production System bestimmt auch mal 2 Wochen ohne Restart durchläuft.

    Kommentar


      Hi André,

      werd ich tun, allerdings etwas schwierig fuer mich rauszufinden ob das hilft - war naemlich auch hier das erste Mal, dass ich drauf gestossen bin.
      Letzter Systemstart war der 16.11.2018, wann genau der Fehler da erste Mal aufgetaucht ist kann ich nicht sagen, ich vermute aber der war schon laenger da (ich nutze zZ die Visu nicht, nur die Logik, deswegen ist mir das nicht aufgefallen).

      Kommentar


        Ok, verstehe. ich werde das in den nächsten Tagen mal offline testen und prüfen ob ein set_error_handler() in einer Schleife ohne ein restore_error_handler() zu einem memory exhausted führt. Ich vermute mal, dass dies der Fall ist. Danke aber schon mal für den Bugreport.

        Kommentar


          Es war tatsächlich das o.g. error_handler Problem. Wenn sichergestellt ist, dass nach einem error_off() auch auf jeden Fall wieder ein error_on() aufgerufen wird, dann bleibt die Speichernutzung konstant. Daher sollte das Problem mit o.g. Änderung behoben sein. Ist beim nächsten Update mit dabei.

          Kommentar


            Zitat von jonofe Beitrag anzeigen
            Ist beim nächsten Update mit dabei.

            Kommentar


              Besteht eigentlich Interessa an der Integration der Yeelight Candela? Geht natürlich nur über Bluetooth (ähnlich wie die Gigaset Keeper BLE Tags). Bei mir läuft es seit 4 Wochen halbwegs stabil, müsst nur mal den LBS dokumentieren. Den BT Server Teil findet man schon in meinem github Account.



              Kommentar

              Lädt...
              X