Ankündigung

Einklappen
Keine Ankündigung bisher.

Wiregate sendet keine Telegramme 23:35 bis 0:10

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Wiregate sendet keine Telegramme 23:35 bis 0:10

    Hallo Makki,

    In der Nacht von Freitag auf Samstag hat mein Wiregate sich in irgendeiner Weise aufgehängt. Gemerkt habe ich es daran, dass die Plugins keine Telegramme mehr gesendet haben (z.B. Nach-Dimmen oder Radio an im Bad bei PM Meldung).
    Schön zu sehen ist es am Graph vom "EIB Telegrammverkehr" - Screenshot anbei. Genauer sind das die beiden aufeinanderfolgenden Telegramme in eib.log
    Code:
    2012-08-03 23:42:46.917,A_GroupValue_Write,1.1.19,3/1/80,0C 65,22.5,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
    2012-08-04 00:08:28.029,A_GroupValue_Write,1.1.19,3/1/81,00,0,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    20
    Ich hab mal das VPN angemacht (wiregate248), bevor ich jetzt alle Logs hier poste. Vielleicht magst Du ja mal schauen?

    Herzlichen Glückwunsch!

    Vielen Dank und Gruß,
    Moritz
    Angehängte Dateien

    #2
    Kannst Du das Diagramm mal von wiregated-mem machen ? Sollte auch in drraw auftauchen, ansonsten eben den Diagrammgenerator von Makki.
    Falls drraw wäre auch die Speicherauslastung mal interessant die der Collection als Diagramm sammelt.
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      Hi,

      das sieht "interessant" aus. Der wiregated scheint öfter mal auszusteigen...

      Gruß
      Angehängte Dateien

      Kommentar


        #4
        Hast Du auch das Squeezebox-Plugin?
        Das scheint ordentlich Speicher zu fressen
        Guck mal auf die Plugin-Seite im Webmin was da die meisten MBi hat.
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          Jepp, hab ich.

          Immer noch in meiner einfachsten Variante von vor ca. einem Jahr. Du hast Recht: MBi ist grad bei 22.7

          So richtig verstehen tue ich das aber nicht. Wir schreiben doch nur auf ein Socket - und das nur eher selten...

          Das ist das Plugin:
          Code:
          # Steuern der Squeezeboxen
          # socat notwendig
          # V0.1 2011-12-17
          
          ### Im WG muss eine Socketverbindung mit folgenden Parametern erstellt werden
          # Socket1: tcp-connect, Socket: IP_OF_SqueezeServer:9090
          # Socket2: udp-datagram, Socket: localhost:50105, Optionen: bind=localhost:50106,reuseaddr
          
          ### Definitionen 
          
          my $power_ga = "1/3/0";  # Gruppenadresse
          my $player_id = "00%3A04%3A20%3A29%3Acc%3A63";   # Player ID
          my $cmd = "power";   # Kommando, dass an die Box gesendet werden soll
          
          my $socknum = 121; # Eindeutige Nummer des Sockets +1
          my $send_ip = "localhost"; # Sendeport (UDP, siehe in Socket-Einstellungen)
          my $send_port = "50106"; # Sendeport (UDP, siehe in Socket-Einstellungen)
          my $recv_ip = "localhost"; # Empfangsport (UDP, siehe in Socket-Einstellungen)
          my $recv_port = "50105"; # Empfangsport (UDP, siehe in Socket-Einstellungen)
          
          ### Ende Definitionen
          
          # Eigenen Aufruf-Zyklus setzen
          $plugin_info{$plugname.'_cycle'} = 0;
          
          # Plugin an Gruppenadresse "anmelden"
          $plugin_subscribe{$power_ga}{$plugname} = 1;
          
          # Socket erstellen
          if (!$socket[$socknum]) {
                  $socket[$socknum] = IO::Socket::INET->new(LocalPort => $recv_port,
                                            Proto => "udp",
                                            LocalAddr => $recv_ip,
                                            PeerPort  => $send_port,
                                            PeerAddr  => $send_ip,
                                            ReuseAddr => 1
                                             )
              or plugin_log($plugname, "open of $recv_ip : $recv_port failed: $!");
              $socksel->add($socket[$socknum]); # add socket to select
              $plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
              plugin_log($plugname, "opened Socket $socknum");
          } 
          
          # Nur bei einem Wert auf GA reagieren
          if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $power_ga && defined $msg{'value'}) {
              my $command = $player_id . " " . $cmd . " " . $msg{'value'};
              my $return_val = sendCommand($command);
              plugin_log($plugname, $return_val);
          }
          
          # Log
          return 0;
          
          sub sendCommand {
              #my $command = $_[0];
              my $command = $_[0]."\n";
              plugin_log($plugname, $command);
              syswrite($socket[$socknum], $command);
          }

          Kommentar


            #6
            Das Plugin läuft im wiregated und treibt den Speicher in die Höhe.
            Dann kommt irgendwann monit und zieht den Stecker. Ich hatte da noch ein paar andere Probleme und bin daher grad aktuell im Thema .

            Warum das bisschen Socket schreiben so einen Mist macht weiß ich auch nicht.
            Läuft der Squeezebox Server auch auf dem Wiregate?
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #7
              Zitat von JuMi2006 Beitrag anzeigen
              Läuft der Squeezebox Server auch auf dem Wiregate?
              Nein, der läuft auf einem separaten Server. Ich hab Deinen anderen Thread bzgl. Speicher gesehen. Hatte es aber so interpretiert, dass es im Wesentlichen um den SqeezeServer auf dem Wiregate ging...

              Danke und Gruß

              Kommentar


                #8
                Ja das war mein Ausgangspunkt. Mittlerweile bin ich da ein bisschen schlauer. Bei Dir wäre der Speicherverlauf den collectd aufgezeichnet hat noch ganz interessant.
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  #9
                  hier mal collectd - memory_used:
                  Angehängte Dateien

                  Kommentar


                    #10
                    Das sieht ja noch ganz human aus. Zumindest nicht bis ans Limit ausgereizt. Scheint monit also wirklich nur den wiregated zu killen.

                    Die Frage an die Experten wäre also was macht dieses kleine Plugin so "böse"
                    Umgezogen? Ja! ... Fertig? Nein!
                    Baustelle 2.0 !

                    Kommentar


                      #11
                      Zitat von JuMi2006 Beitrag anzeigen
                      Die Frage an die Experten wäre also was macht dieses kleine Plugin so "böse"
                      Hier vermutlich primär die sub - möglicherweise in Kombination mit sehr vielen Aufrufen; aber die memleaks von Perl sind teilw. unergründlich, so richtig schlau bin ich da noch nicht geworden..
                      Ist im Regelfall ja auch kein Riesen-problem, der monit sieht zu das sich alle benehmen und wenn nicht wird eben nachgeholfen, saubere Plugins müssen einen restart eh sauber über die Bühne bringen können..

                      Makki
                      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                      -> Bitte KEINE PNs!

                      Kommentar


                        #12
                        Hi Makki,

                        die Plugins überstehen jeden Neustart auch problemlos! Nur fällt halt für eine halbe Stunde der EIB auf dem Wiregate aus. Wenn ich zu der Zeit schlafe, ist das ja kein so großes Problem. Wenns aber mittendrin passiert, finde ich das eher schlecht.

                        Das Squeezebox plugin wird im Moment max 20 mal am Tag aufgerufen - das ist nicht häufig denke ich.

                        Hast Du eine Idee das sub zu umgehen, ohne den Code mehrfach reinzukopieren?

                        Gruß Moritz

                        Kommentar


                          #13
                          Ich hatte das Problem auch einmal mit PL32. Ursache unbekannt. Ist seitdem nicht mehr vorgekommen.

                          Kommentar

                          Lädt...
                          X