Ankündigung

Einklappen
Keine Ankündigung bisher.

Homeserver immer wieder "tot" bzw. abgestürzt

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

    HS/FS Homeserver immer wieder "tot" bzw. abgestürzt

    Ich habe immer wieder das Problem, dass sich mein Gira Homeserver "aufhängt" bzw. nicht mehr auf KNX-Objekte reagiert. Auch die Logiken scheinen Infos mehr auf den Bus zu schicken. Eben ging mein Garagentor nicht mehr auf. Ich habe schon verschiedenstes versucht, aber komme nicht weiter. Daher schreibe ich heute.

    Die Debug-Seite des Homeserver lässt sich aufrufen, und dort sind auch Exceptions ersichtlich. Schuld muss einer der untern drei von heute sein.

    Aber was bedeuten sie bzw. was kann ich dagegen tun?

    Tatsächlich erholt sich der Homeserver irgendwann auch wieder - ich bekomme natürlich weder vom Moment des Ausstiegs, noch wann er wieder läuft genau mit. Tatsächlich läuft er auch jetzt (19:02 Uhr) wieder.

    28.07.2024 17:29:04 (1)
    File "hs_remanent.py", line 1777, in __store
    File "/usr/lib/python2.7/ftplib.py", line 488, in storbinary
    return self.voidresp()
    File "/usr/lib/python2.7/ftplib.py", line 231, in voidresp
    resp = self.getresp()
    File "/usr/lib/python2.7/ftplib.py", line 217, in getresp
    resp = self.getmultiline()
    File "/usr/lib/python2.7/ftplib.py", line 203, in getmultiline
    line = self.getline()
    File "/usr/lib/python2.7/ftplib.py", line 188, in getline
    line = self.file.readline(self.maxline + 1)
    File "/usr/lib/python2.7/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
    timeout: timed out
    28.07.2024 21:03:29 (3)
    File "hs_remanent.py", line 1667, in __store
    File "/usr/lib/python2.7/ftplib.py", line 488, in storbinary
    return self.voidresp()
    File "/usr/lib/python2.7/ftplib.py", line 231, in voidresp
    resp = self.getresp()
    File "/usr/lib/python2.7/ftplib.py", line 217, in getresp
    resp = self.getmultiline()
    File "/usr/lib/python2.7/ftplib.py", line 203, in getmultiline
    line = self.getline()
    File "/usr/lib/python2.7/ftplib.py", line 188, in getline
    line = self.file.readline(self.maxline + 1)
    File "/usr/lib/python2.7/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
    timeout: timed out
    29.07.2024 07:15:56 (2)
    File "hs_remanent.py", line 1717, in __store
    File "/usr/lib/python2.7/ftplib.py", line 488, in storbinary
    return self.voidresp()
    File "/usr/lib/python2.7/ftplib.py", line 231, in voidresp
    resp = self.getresp()
    File "/usr/lib/python2.7/ftplib.py", line 217, in getresp
    resp = self.getmultiline()
    File "/usr/lib/python2.7/ftplib.py", line 203, in getmultiline
    line = self.getline()
    File "/usr/lib/python2.7/ftplib.py", line 188, in getline
    line = self.file.readline(self.maxline + 1)
    File "/usr/lib/python2.7/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
    timeout: timed out
    31.07.2024 16:33:21 (2655)
    File "hs_logik.py", line 233, in calc
    File "formula", line 1, in <module>
    IndexError: list index out of range
    [5012L, 10042L, 0L, '((EI==1) or OC[1]) and (SN[3]<=SN[4])', "__import__('string').strip(SN[2][int(SN[3])])", '', 1L, 0L, 0L, 0L]
    31.07.2024 18:40:38 (45)
    File "hs_remanent.py", line 1661, in __store
    File "/usr/lib/python2.7/ftplib.py", line 135, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
    File "/usr/lib/python2.7/socket.py", line 557, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
    gaierror: [Errno -2] Name or service not known
    31.07.2024 18:45:47 (108)
    File "hs_logik.py", line 233, in calc
    File "formula", line 1, in <module>
    IndexError: list index out of range
    [5012L, 10006L, 0L, '((EI==1) or OC[1]) and (SN[3]<=SN[4])', "__import__('string').strip(SN[2][int(SN[3])])", '', 1L, 0L, 0L, 0L]

    Kann mir evtl. jemand weiterhelfen, was ich tun kann oder wo ich am besten weitersuche?

    Danke schon mal!
    Matthias

    #2
    Unsaubere externe Logik Bausteine, wäre eine Möglichkeit. Oder eine Logik die sich selbst immer wieder anstoßt. Sind die beiden häufigsten Ursachen.

    Kommentar


      #3
      Wenn er abgestürzt ist was steht denn unter Queues? Da kann man dann schon mal eingrenzen...

      Kommentar


        #4
        Genau, wenn das Problem wieder auftritt, schau mal auf die Queues. Insbesondere die SetWertQueue sollte nahe 0 bleiben. Hatte das Problem auch schon mit einer unsauberen Logik und auch mit einer Schleife, die die Logik immer wieder selbst anstößt. Die SetWertQueue lief dann hoch bis auf den Max-Wert von 5.000 und wenn der HS das einmal erreicht hat, erholt er sich meist nicht mehr. Da Dein HS sich irgendwann wieder erholt, denke ich mal, die Queue läuft nicht ganz so hoch...

        Wenn wirklich die Queue hochläuft, dann müsstest mit dem EIB-Monitor (Listenschlüssel "eibmon" statt "debug") schauen, ob irgendein Objekt vielfach auftaucht. Bei einer Schleife solltest das sofort sehen (als ich meine Schleife drin hatte, war unter den letzten 500 beschriebenen Objekten über 300 mal das gleiche innerhalb einer Minute!)

        Um im eibmon alles zu sehen, musst Du natürlich vorher für alle internen KO's eine Gruppenadresse vergeben (im Dialog Kommunikationsobjekte => Extras => Gruppenadressen vergeben) und dann neu übertragen.
        Möchte den Komfort meiner Installation nicht mehr missen!

        Kommentar


          #5
          Top, werde ich das nächste Mal schauen! Danke schon mal. Ich gebe Rückmeldung.

          Kommentar


            #6
            Hier eine Rückmeldung aus aktuellem Anlass!

            Die oben Beschriebenen Werte waren durchgängig bei "0", auch als der Fehler wieder aufgetreten war. Tatsächlich war offenbar ein ganz anderes Gerät im Haus-Netzwerk das Problem. Ich habe eine Lenovo-Dockingstation für meinen Laptop. Diese hängt per LAN im Netzwerk. Wenn der Fehler aufgetreten ist war er genau so lange existent, bis der Laptop, der an der Dockingstation hängt, angeschaltet wurde. Und prompt ging wieder alles. Seit ich den Laptop per WLAN betreibe, und das LAN-Kabel abgezogen habe, ist der Fehler nicht mehr aufgetreten.

            IMG_1551.jpg
            Angehängte Dateien

            Kommentar


              #7
              Bis heute.... ich bin gerade am herausfinden, was der Fehler ist.

              Die Queues und Counter sind alle bei "0".

              Der EIB-Monitor sieht so aus:

              image.png

              Im Netzwerk ist sowohl der KNX IP-Router als auch der Homeserver per HTTP problemlos erreichbar. Aber offenbar können sie sich Gegenseitig​ nicht erreichen?

              Ich starte den Server jetzt mal neu.

              Kommentar


                #8
                Jetzt ist wieder Action auf dem Bus und der Homeserver schickt wieder KOs.

                Und nochmal 2 Erkenntnisse:
                1. Der EIB-Monitor hat gar nicht aufgezeichnet... 🙈
                2. Ich habe vorher im Abstand von 10 Minute 2x die Ausgabe der Debug-Liste abgespeichert:
                  • KNX -> Driver communication -> Outgoing.Count: vorher 2657135 / nachher 2657657
                  • KNX -> Driver communication -> Incoming.Count: vorher und nachher 3902308 (hat sich also nicht geändert)
                Zuletzt geändert von MatzederZweite; 22.11.2024, 22:41.

                Kommentar


                  #9
                  Zitat von MatzederZweite Beitrag anzeigen
                  Ich habe eine Lenovo-Dockingstation für meinen Laptop. Diese hängt per LAN im Netzwerk. Wenn der Fehler aufgetreten ist war er genau so lange existent, bis der Laptop, der an der Dockingstation hängt, angeschaltet wurde. Und prompt ging wieder alles.
                  Das wäre ein absolut untypischer Fehler. Die Dockingstation wird wahrscheinlich das LAN einfach nur durchschleusen, wenn es also geht, wenn der Laptop *eingeschalten* ist, und du deshalb das LAN-Kabel *aussteckst*, macht das keinen Sinn. Du kannst deinen Laptop gerne weiter am LAN betreiben


                  Kenn mich beim HomeServer nicht aus, die Socket-Fehler scheinen eher nicht ursächlich zu sein, weil bei einem recv schon mal ein Timeout auftreten, und bei einem getaddrinfo schon mal eine Auflösung nicht klappen kann.

                  Würd mich eher auf diese Exceptions fokussieren:

                  File "hs_logik.py", line 233, in calc
                  File "formula", line 1, in <module>
                  IndexError: list index out of range
                  [5012L, 10042L, 0L, '((EI==1) or OC[1]) and (SN[3]<=SN[4])', "__import__('string').strip(SN[2][int(SN[3])])", '', 1L, 0L, 0L, 0L​
                  wobei ich nicht weiß, ob das beim HomeServer untypische Exceptions sind. Wenn ja, dann ist das eine heiße Spur. Wenn nein, weitersuchen...

                  Kommentar


                    #10
                    Guten Abend!

                    Die Exception kommt vom Logikbaustein 19037 "Listen-Ausgang dynamisch" (https://service.knx-user-forum.de/?c...nload&id=19037). Leider bin ich noch nicht hinter den Auslöser gekommen.

                    Da das Auftreten der Exceptions und der Zeitpunkt des Ausfalls aber weit auseinander liegen, würde ich aktuell einen Zusammenhang ausschließen.

                    Das Phänomen mit der Dockingstation hatte ich gestern früh wieder, da ich zum Testen die Station wieder ins LAN genommen hatte. Es hat keinen halben Tag gedauert, und da war der Fehler wieder. Direkt nach Anschalten des Laptops lief wieder alles.

                    Das war beim o.g. Fehler aber nicht so, da half nur ein Restart des Homeservers.

                    Die Dockingstation habe ich übrigens heute gegen ein anderes Modell ausgetauscht... schauen wir mal :-)

                    Aber danke erst mal für die Tipps.... bin gespannt, wie es sich in Zukunft verhält.

                    Kommentar


                      #11
                      Ich denke nicht, dass es die Dockingstation ist, sondern das einzige andere Gerät (der Laptop) der dann über LAN Multicast kann, was über WLAN wegen inkompatibel (eingestellter) Hardware nicht geht. Weil aber der Switch auch nicht korrekt konfiguriert ist, zieht sich dann der Laptop anstatt des KNX-IP Routers oder des Homeservers über ICMP den KNX-Traffic.

                      Kommentar

                      Lädt...
                      X