Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi-reboots

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

    Edomi-reboots

    Hallo
    ich kämpfe seit ein paar Tagen mit regelmäßigen Reboots vom EDOMI.
    Getauschte Hardware bringt mich jetzt auch zum Reboot... also kein HW-Fehler.
    Ich habe folgende auffälligkeiten im Log:

    Datei: /usr/local/edomi/main/proc/proc_visu.php | Fehlercode: 0 | Zeile: 20 | Cannot use object of type stdClass as array EXCEPTION
    Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Couldn't fetch mysqli ERROR 2
    Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19002271.php | Fehlercode: 8 | Zeile: 66 | Undefined variable: json ERROR 2022-04-05 12:00:02 477102 ? 5892 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19002271.php | Fehlercode: 8 | Zeile: 74 | Undefined variable: array ERROR 2022-04-05 12:00:02 477243 ? 5892 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19002271.php | Fehlercode: 8 | Zeile: 74 | Trying to get property 'message' of non-object ERROR

    Im Syslog siehts so aus:
    2022-04-05 13:51:21 714530 VISU 5369 Handshake failed with Client-ID 1 ERROR
    2022-04-05 13:51:21 750766 VISU 5369 Handshake failed with Client-ID 1 ERROR
    2022-04-05 13:51:29 030729 MAIN 5342 Prozess VISU läuft nicht mehr! FATALERROR
    2022-04-05 13:51:29 276906 MAIN 5342 Prozess MAIN beenden... (Modus 1013) Ok

    19002271 ist forecast solar ... die hab ich jetzt nicht unbedingt in verdacht...
    Hat jemand eine idee? Irgend einen Vorschlag zur Eingrenzung?

    Gruß
    Thorsten
    Angehängte Dateien
    Zuletzt geändert von ThorstenGehrig; 05.04.2022, 18:41.

    #2
    Hallo Thorsten,

    deaktiviere mal den Pv Forecast LBS, dann sollten die Fehlermeldungen weg sein.
    Hast du dann immer noch reboots

    gruss Hartwig
    Gruß Hartwig

    Kommentar


      #3
      teste ich gerade... muss jetzt halt erstmal einen Tag warten.
      Würde mich aber wundern - bin ja nicht der einzige der diesen LBS einsetzt...

      Kommentar


        #4
        die Zeiten passen auch nicht....

        Kommentar


          #5
          Heute auch einige reboots. Bin jetzt wieder auf die ursprüngliche Hardware das es offensichtlich kein HW fehler ist.
          Hab jezt mal weitere Bausteine ausgeschaltet - inkl. MQTT u. go-E Wallbox und Home-Connect. Vielleicht läuft da was schief...
          Ich werde weiter beobachten.

          Gruß
          Thorsten

          Kommentar


            #6
            keine Besserung.
            auch in /var/log/messages sehe ich nichts.
            Das einzig auffällige sind die Visu-meldungen vor dem abbruch:
            VISU 5369 Handshake failed with Client-ID 1 ERROR
            Kann es sein das eine unstabile WS / reverse-Proxy Verbindung das ganze Edomi wegreist? :-(

            Gruß
            Thorsten

            Kommentar


              #7
              Also der reverse proxy ist es nicht... trotzdem ist das hier das Auffälligste was ich in den Logs finde:
              2022-04-16 07:46:19 617630 VISU 5630 Handshake failed with Client-ID 0 ERROR
              2022-04-16 07:46:19 638046 VISU 5630 Handshake failed with Client-ID 0 ERROR
              2022-04-16 07:46:26 197150 MAIN 5599 Prozess VISU läuft nicht mehr! FATALERROR
              (gerade eben wieder passiert - dabei ist der reverse Proxy derzeit abgeschaltet)
              gaert - hast du irgendeine Idee wie ich das troubleshooten kann?

              Kompletter Hardware-Tausch und neuaufbauen des Systems (unter CentOS 7) - mit anschließendem Restore - hat nicht geholfen.
              Abschalten von etlichen "verdächtigen" Bausteinen hat auch nicht geholfen...
              Abschalten reverse-Proxy hat auch nicht geholfen...

              Gruß
              Thorsten

              Kommentar


                #8
                Ich krieg die Reboots nicht weg :-(

                Das muster ist immer gleich: zuerst Handshake Failed with Client-ID 0 oder 1, dann die Meldung mit
                /usr/local/edomi/main/proc/proc_visu.php | Fehlercode: 0 | Zeile: 20 | Cannot use object of type stdClass as array
                und dann reist es das ganze system runter :-(
                2022-05-02 18:49:19 029691 VISU 5612 Handshake failed with Client-ID 1 ERROR
                2022-05-02 18:49:19 050431 VISU 5612 Handshake failed with Client-ID 1 ERROR
                2022-05-02 18:49:30 193605 ? 5612 Datei: /usr/local/edomi/main/proc/proc_visu.php | Fehlercode: 0 | Zeile: 20 | Cannot use object of type stdClass as array EXCEPTION
                2022-05-02 18:49:31 106822 MAIN 5585 Prozess VISU läuft nicht mehr! FATALERROR
                2022-05-02 18:50:32 334204 MAIN 5588 ACHTUNG: EDOMI wurde unerwartet beendet!
                Da ich keine Idee habe wie ich dem Handshake einfange - vielleicht eine Idee wie ich den Fehler in proc_visu.php abfange?
                Leider ist der php-code in dieser Datei ziemlich unhandlich für meine nicht vorhandenen PHP Kenntnisse :-(
                So generell würde ich mal auf die Idee kommen den PHP-code zu zerteilen - nach jedem ; eine neue Zeile?
                Das würde zumindest schonmal zeigen wo der Fehler "Cannot use object of type stdClass as array" herkommt, oder?

                Gruß
                Thorsten

                Kommentar


                  #9
                  Hi

                  Was hat sich denn geändert, was die Reboots vielleicht auslöst? Irgendwelche Updates gemacht? Passiert das auch, wenn Du alle Logiken deaktivierst? Hast Du mal mit einem jungfräulichen Edomi getestet? Also nur GAs importieren und eine minimale Visu, welche lediglich ein Status-GA sowie die Systemzeit anzeigt?
                  Kind regards,
                  Yves

                  Kommentar


                    #10
                    Zitat von ThorstenGehrig Beitrag anzeigen
                    vielleicht eine Idee wie ich den Fehler in proc_visu.php abfange?
                    Leider ist der php-code in dieser Datei ziemlich unhandlich für meine nicht vorhandenen PHP Kenntnisse

                    Das würde zumindest schonmal zeigen wo der Fehler "Cannot use object of type stdClass as array" herkommt, oder?
                    Versuch mal json_decode($decodedData) durch json_decode($decodedData,true) zu ersetzen.
                    Es gibt übrigens so genannte PHP Beautifier die dir die Files leserlich machen ;-)

                    Außerdem bitte Logs zukünftig als CODE posten, dann sind sie besser leserlich.


                    Kommentar


                      #11
                      Hallo Thorsten,

                      ich hatte ein ähnliches Problem an /usr/local/edomi/www/shared/php/base.php

                      Die base.php habe ich gesichert und dann mit einem php Editor neu formatieren lassen und wieder gespeichert.

                      Danach war die Zeilennummer aussagekräftig und ich konnte bei mir einen Fehler finden.
                      Bei mir war es dann ein utf8 Fehler, in einem eigenen Baustein, bzw. ein für mich nicht erkennbarer Fehler. Ich musste nur den Baustein löschen und neu hochladen, danach war das Problem weg.

                      Bei mir das "lesbar" machen des php Quellcode kein Problem und ich habe auch bislang nicht mehr auf die urspüngliche base.php umgestellt, da ich auch keine Nachteile dadurch erkennen konnte.

                      Das dürfte bei Dir der erste Step sein, das Problem einzugrenzen.

                      Gruß Hartwig
                      Gruß Hartwig

                      Kommentar


                        #12
                        Danke hartwigm und philipp900.
                        Ich hab erstmal "beautified" - als nächstes ist dann json_decodr drann.
                        Mit euren tips habe ich schonmal einiges mehr zu tun :-) DANKE!

                        Kommentar


                          #13
                          Hi
                          so... reboot hat gerade stattgefunden
                          Fehler ist in Zeile 411:
                          Code:
                          Datei: /usr/local/edomi/main/proc/proc_visu.php | Fehlercode: 0 | Zeile: 411 | Cannot use object of type stdClass as array // EXCEPTION
                          
                          Prozess VISU läuft nicht mehr! // FATALERROR
                          
                          ACHTUNG: EDOMI wurde unerwartet beendet!
                          Die Zeile 411 ist die letzte hier - in der Funktion "checkMessage"
                          Code:
                           private function checkMessage($clientId, &$arr)
                          {
                          $this->trace('Receive from Client-ID ' . $clientId . ': ' . implode('/', $arr));
                          if ($arr[0] == 'LOGIN')

                          Wo das jetzt herkommt kann ich mir nicht erklären... irgendwas übermittelt da wohl ein leeres array?
                          Kann man hier einfach was einbauen um den Fehler abzufangen? (hab da leider zu wenig Ahnung von PHP)

                          Gruß
                          Thorsten

                          Nachtrag:
                          ich denke in diesem Code-Schnipsel wird die fragliche Variable $msg gebaut:
                          Code:
                          {
                             foreach ($msg as $arr)
                             {
                              if (!$this->checkMessage($clientId, $arr))
                                  {
                                    $this->disconnectClient($clientId);
                                    break;
                                  }
                              }
                          }
                          Irgendeine idee wie ich die Variable zielicher als array aufbaue?
                          Dieses "foreach" scheint es ja zu sein, oder?
                          Zuletzt geändert von ThorstenGehrig; 06.05.2022, 19:16.

                          Kommentar


                            #14
                            Hast du denn meinen Bugfix von oben nicht probiert? Dort kommt das Array nämlich her.

                            Kommentar


                              #15
                              Ups... nein bisher nicht.
                              Ich hab erstmal das beautified PHP abgewartet wo es abstürzt um dann genauer zu schauen.
                              Ich hätte jetzt gedacht das das arr$ hier erzeugt wird: foreach ($msg as $arr) - aber da lag ich wohl falsch...
                              Jetzt hab ich den Bugfix mal eingebaut - und warte mal was jetzt passiert.
                              Danke nochmal
                              Gruß
                              Thorsten

                              Kommentar

                              Lädt...
                              X