Ankündigung

Einklappen
Keine Ankündigung bisher.

Feature SHNG1.6 ?

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

    Feature SHNG1.6 ?

    Hallo, wäre es denkbar, in einer der nächsten Versionen eine Variable oder Item einzuführen welches die Internetverbindung prüft?
    Diese Variable könnte man dann in Plugins verwenden, die ständig auf Daten aus dem Netz zugreifen (Wetter, Indego etc...), um den Aufruf bei keiner Verbindung zum INet zu unterbinden.

    Hintergrund: Wenn die Verbindung ins Netz verloren geht, füllt sich das Log arg schnell mit diversen Fehlern, die aber nur daraus resultieren, dass keine Verbindung vorhanden ist. Sicherlich nur ein kosmetischer Punkt aber schöner wäre es schon

    #2
    schuma und Du baust das dann in alle Plugins ein? ;-P

    Kommentar


      #3
      Ich könnte es versuchen...
      Mal gucken ob das dann klappt.

      Kommentar


        #4
        einfach nur ein item, was eine URL pingt, kannst du auch selber machen.. die hauptarbeit kommt danach.. das meinte ich damit

        Kommentar


          #5
          Aber es macht ja schon Sinn, wenn es bei allen gleich genannt ist.
          Beim Wetter dachte ich auch schon daran...

          Kommentar


            #6
            Die Frage ist, ob es was besseres als einen doofen Ping gibt? Das Netzwerk Interface von Linux könnte die Info doch auch haben? Ideen wie man das vernünftig umsetzt?! Idealerweise auch so, dass SHNG direkt beim Ausfall die Info kriegt und nicht zyklisch irgendwas ausführen muss.

            Kommentar


              #7
              https://stackoverflow.com/questions/...ork-connection
              sieht recht komplett aus.

              Ich denke, eine bessere Lösung finden wir nicht.

              Gruß,
              Hendrik
              Zuletzt geändert von henfri; 17.07.2018, 17:35.

              Kommentar


                #8

                >​
                Code:
                 >>> import socket >>> >>> def internet(host="8.8.8.8", port=53, timeout=3): ...   """ ...   Host: 8.8.8.8 (google-public-dns-a.google.com) ...   OpenPort: 53/tcp ...   Service: domain (DNS/TCP) ...   """ ...   try: ...     socket.setdefaulttimeout(timeout) ...     socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port)) ...     return True ...   except Exception as ex: ...     print ex.message ...     return False ...
                Oder ​​​​​​​
                Code:
                   
                 import socket  try:     from urllib2 import urlopen, URLError     from urlparse import urlparse except ImportError:  # Python 3     from urllib.parse import urlparse     from urllib.request import urlopen, URLError  class InternetChecker(object):     conn_url = 'https://www.google.com/'      def __init__(self):         pass      def test_internet(self):         try:             data = urlopen(self.conn_url, timeout=5)         except URLError:             return False          try:             host = data.fp._sock.fp._sock.getpeername()         except AttributeError:  # Python 3             host = data.fp.raw._sock.getpeername()          # Ensure conn_url is an IPv4 address otherwise future queries will fail         self.conn_url = 'http://' + (host[0] if len(host) == 2 else                                      socket.gethostbyname(urlparse(data.geturl()).hostname))          return True  # Usage example checker = InternetChecker() checker.test_internet()

                Kommentar


                  #9
                  Wenn nur einzelne Dienste oder Teile des Internets ausfallen, bringt das auch nichts.
                  Ich würde eher darauf plädieren, dass die Plugins bzw. die network Lib einen schlauen reconnect Algorithmus implementieren (z.B. mit ansteigender Wiederholzeit) und nicht unnütz loggen.

                  Kommentar


                    #10
                    smai die meisten plugins nehmen mitlerweile das requests paket... wenn müsste das also jeder selber implementieren..

                    Kommentar


                      #11
                      Ja, müsste, oder eben eine Lib bauen und nutzen.
                      Das andere müsste ja auch jedes Plugin implementieren.

                      Kommentar


                        #12
                        Allerdings sollte man darauf achten, das die prüfung ohne internet laufen kann, da ja viele Netzwerkgeraete eingebunden werden können

                        Kommentar


                          #13
                          Bonze das widerspricht dann dem feature request. hier war gefragt, dass die INTERNETverbindung geprüft wird.

                          aus meiner sicht sollte aber jeglicher check dieser art plugin intern gehandelt werden - dann ist es auch egal ob ein LAN device oder das internet gecheckt wird.. eine start und stop methode gibt es sowieso in jedem plugin, ein item oder ein hilfsattribut kann das jew. plugin auch einführen. sonst wird die arbeit und das testing für dieses "kleine" feature ausweglos

                          Msinn wie siehst du das?

                          Kommentar


                            #14
                            Ich verstehe nicht, warum es besser ist, wenn jedes Plugin das selbst macht.
                            Die Funktion sollte einmal existieren im Kern.
                            Gerne mit optionalem Parameter (IP oder Domain).
                            Wenn jedes Plugin das selbst implemetiert wird es unterm Strich nicht einfacher

                            Kommentar


                              #15
                              Zitat von henfri Beitrag anzeigen
                              Ich verstehe nicht, warum es besser ist, wenn jedes Plugin das selbst macht.
                              Die Funktion sollte einmal existieren im Kern.
                              Gerne mit optionalem Parameter (IP oder Domain).
                              Wenn jedes Plugin das selbst implemetiert wird es unterm Strich nicht einfacher
                              Das sehe ich eher auch so. Einmal vorhanden alle können es nutzen.
                              Und vor allem nutzen dann alle das Gleiche.

                              Und, es ist evtl. besser nur eine Abfrage zu machen ob das INet vorhanden ist, als wenn das viele Plugin machen. - Denke ich...

                              Kommentar

                              Lädt...
                              X