Der Bugfix in #10 verhindert die Crashes.
Warum $arr manchmal kein Array ist - ist allerdings unklar - die änderung forciert das $arr immer als array angelegt wird.
Daher kein Fehler - kein restart mehr.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Edomi-reboots
Einklappen
X
-
Melde mich mal erfolgreich zurück. Hab jetzt seit 5 Tagen keinen ungewollten restart.
Ein großes DAAAAAAANKE an philipp900
- Likes 2
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Hast du denn meinen Bugfix von oben nicht probiert? Dort kommt das Array nämlich her.
Einen Kommentar schreiben:
-
Hi
so... reboot hat gerade stattgefunden
Fehler ist in Zeile 411:
Die Zeile 411 ist die letzte hier - in der Funktion "checkMessage"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!
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:
Irgendeine idee wie ich die Variable zielicher als array aufbaue?Code:{ foreach ($msg as $arr) { if (!$this->checkMessage($clientId, $arr)) { $this->disconnectClient($clientId); break; } } }
Dieses "foreach" scheint es ja zu sein, oder?
Zuletzt geändert von ThorstenGehrig; 06.05.2022, 19:16.
Einen Kommentar schreiben:
-
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!
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Versuch mal json_decode($decodedData) durch json_decode($decodedData,true) zu ersetzen.Zitat von ThorstenGehrig Beitrag anzeigenvielleicht 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?
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.
Einen Kommentar schreiben:
-
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?
Einen Kommentar schreiben:
-
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 :-(
Da ich keine Idee habe wie ich dem Handshake einfange - vielleicht eine Idee wie ich den Fehler in proc_visu.php abfange?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!
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
Einen Kommentar schreiben:
-
Also der reverse proxy ist es nicht... trotzdem ist das hier das Auffälligste was ich in den Logs finde:(gerade eben wieder passiert - dabei ist der reverse Proxy derzeit abgeschaltet)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
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
Einen Kommentar schreiben:
-
keine Besserung.
auch in /var/log/messages sehe ich nichts.
Das einzig auffällige sind die Visu-meldungen vor dem abbruch:Kann es sein das eine unstabile WS / reverse-Proxy Verbindung das ganze Edomi wegreist? :-(VISU 5369 Handshake failed with Client-ID 1 ERROR
Gruß
Thorsten
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:


Einen Kommentar schreiben: